/* * sys/sysmacros.h * * Constructs to create and pick apart dev_t. The double-underscore * versions are macros so they can be used as constants. */ #ifndef _SYS_SYSMACROS_H #define _SYS_SYSMACROS_H #include #include #define __major(__d) ((int)(((__d) >> 8) & 0xfffU)) __static_inline int _major(dev_t __d) { return __major(__d); } #define major(__d) _major(__d) #define __minor(__d) ((int)(((__d) & 0xffU)|(((__d) >> 12) & 0xfff00U))) __static_inline int _minor(dev_t __d) { return __minor(__d); } #define minor(__d) _minor(__d) #define __makedev(__ma, __mi) \ ((dev_t)((((__ma) & 0xfffU) << 8)| \ ((__mi) & 0xffU)|(((__mi) & 0xfff00U) << 12))) __static_inline dev_t _makedev(int __ma, int __mi) { return __makedev(__ma, __mi); } #define makedev(__ma, __mi) _makedev(__ma, __mi) #endif /* _SYS_SYSMACROS_H */