首页 > 代码库 > linux内核头文件kdev_t.h 宏定义解析
linux内核头文件kdev_t.h 宏定义解析
kdev_t.h 宏定义解析
这个header file反正不多,直接原因是——遇到了,就搞定它!
dev_t 类型的变量定义在linux/types.h 用来保存设备编号——包括主设备号和次设备号。dev_t 是一个32位的数,其中12位用来表示设备号,其余20位用来表示次设备号。
始终不要对这32位是高12位是主设备号还是低2位是主设备号做出假定,不利于代码的可移植性,始终记得使用宏定义来处理dev_t !
都在这里了:
#define MINORBITS 20 //次设备号的占位数目 #define MINORMASK ((1U << MINORBITS) - 1)//低20位的掩码,相当于0xfffff #define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS)) //得到主设备号 #define MINOR(dev) ((unsigned int) ((dev) & MINORMASK)) //得到次设备号 #define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi)) //将主,次设备号重新“合成”为一个数,返回 #define print_dev_t(buffer, dev) sprintf((buffer), "%u:%u\n", MAJOR(dev), MINOR(dev)) //打印主次设备号 #define format_dev_t(buffer, dev) ({ \ //把主,次设备号写入到buffer指向的内存中 sprintf(buffer, "%u:%u", MAJOR(dev), MINOR(dev)); buffer; })
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。