MKDEV
查找MKDEV时,发现2个MKDEV。
//版本1
#ifndef __KERNEL__
/*
Some programs want their definitions of MAJOR and MINOR and MKDEV
from the kernel sources. These must be the externally visible ones.
*/
#define MKDEV(ma,mi) ((ma)<<8 | (mi))
#endif /* __KERNEL__ */
//版本2
#ifndef _LINUX_KDEV_T_H
#define _LINUX_KDEV_T_H
#include <uapi/linux/kdev_t.h>
#define MINORBITS 20
#define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))
观察第一个版本,这个宏定义是在linux内核外定义的(#ifndef KERNEL),所以开发驱动时看的是版本2.
ma是主设备号,mi是次设备号
主设备号由dev_t的高12位表示
次设备号是dev_t的低20位
MKDEV应该是把主设备号和次设备号合成dev_t

浙公网安备 33010602011771号