//一下程序申请了2个从设备号
//#define MEMDEV_MAJOR 254
static mem_major = MEMDEV_MAJOR; //主设备号
module_param(mem_major, int, S_IRUGO);
struct cdev cdev;
static int __init XXX_init(void)//驱动程序的注册
{
dev_t devno = MKDEV(mem_major, 0);//mem_major=MEMDEV_MAJOR=254; 宏MKDEV的作用是生成设备号,将主从设备号连接起来;
//devno为设备类型的32位数
/* 静态申请设备号*/
if (mem_major)
result = register_chrdev_region(devno, 2, "memdev");//devno为设备类型的32位数 申请几个次设备号
else /* 动态分配设备号 */
{
result = alloc_chrdev_region(&devno, 0, 2, "memdev");//分配到的设备号将会存在devno
mem_major = MAJOR(devno);//如果想知道申请的主设备号是多少,可以用MAJOR()函数将主设备好提取出来
}
if (result < 0)
return result;
/*设备注册*/
/*由于我们定义了一个s
//#define MEMDEV_MAJOR 254
static mem_major = MEMDEV_MAJOR; //主设备号
module_param(mem_major, int, S_IRUGO);
struct cdev cdev;
static int __init XXX_init(void)//驱动程序的注册
{
dev_t devno = MKDEV(mem_major, 0);//mem_major=MEMDEV_MAJOR=254; 宏MKDEV的作用是生成设备号,将主从设备号连接起来;
//devno为设备类型的32位数
/* 静态申请设备号*/
if (mem_major)
result = register_chrdev_region(devno, 2, "memdev");//devno为设备类型的32位数 申请几个次设备号
else /* 动态分配设备号 */
{
result = alloc_chrdev_region(&devno, 0, 2, "memdev");//分配到的设备号将会存在devno
mem_major = MAJOR(devno);//如果想知道申请的主设备号是多少,可以用MAJOR()函数将主设备好提取出来
}
if (result < 0)
return result;
/*设备注册*/
/*由于我们定义了一个s