Clang has some new type safety attributes for fcntl() or ioctl(), which
lets the compiler know that an argument depends on another and also
tell the compiler which values are valid for such functions.
http://clang.llvm.org/docs/AttributeReference.html#type-safety-checking
The extra support requires that we annotate the (fcntl) declaration and
tag each of the valid values. Since attributes are associated with
variables, and you cannot set these on a #define, this requires changing
the fcntl() constants into static consts.
As an end result the compile will warn about suspicious values when
calling fcntl.
It would be really nice to do something similar with ioctls but that
involves changing the way we generate the tables and I don't have good
ideas on how to handle that.