五金配件店 东莞网站建设,常德百度推广运营,没有域名怎么访问网站,重庆市建筑从业人员信息网自动创建设备节点udev机制实现过程#xff1a;
1.当插入设备#xff0c;内核会向udev发送一个事件#xff0c;其中包含着设备的信息。 2.udev会根据收到的设备信息匹配相应的规则文件。 3.udev会根据规则文件中的配置#xff0c;创建一个唯一的设备节点文件。通常存储在/d…自动创建设备节点udev机制实现过程
1.当插入设备内核会向udev发送一个事件其中包含着设备的信息。 2.udev会根据收到的设备信息匹配相应的规则文件。 3.udev会根据规则文件中的配置创建一个唯一的设备节点文件。通常存储在/dev/目录下。
实现自动创建设备节点的函数udev机制
class_create()函数
函数原型struct class * class_create(struct module *owner,const char *name ); 函数功能用于动态的为一个设备创建一个类会在/sys/class目录下创建一个新的文件夹用const char *name命名。 参数分析① owner–是一个结构体类型指针指向创建的类对象本身一般赋值为THIS_MODULE。② name–是一个char类型指针用于给struct class的创建出的目录命名。 返回值失败返回错误码指针成功返回申请的struct class对象的空间首地址。 函数示例 clsclass_create(THIS_MODULE,mychrdev);if(IS_ERR(cls)){printk(向上提交目录失败\n);return -PTR_ERR(cls);}class_destroy()函数
函数原型void class_destroy(struct class *cls) 函数功能用于删除clss_create()创建出来的设备类。 参数分析struct class结构体类型的变量代表设备的类。 函数示例
class_destroy(cls);device_create()函数
函数原型struct device *device_create(struct class *class, struct device *parent,dev_t devt, void *drvdata, const char *fmt, …); 函数功能动态拆功能键一个设备对象并且对该对象进行初始化。再将该对象加入Linux内核系统的设备驱动程序模型中。 参数分析① class代表需创建在那个类下。② parent代表设备的父设备。③ devt代表设备号。④ drvdata代表设备肯会使用到的一些数据。⑤ fmt代表设备节点名。 返回值失败返回错误码指针成功返回创建的设备对象。 函数示例 for(i0;i3;i){devdevice_create(cls,NULL,MKDEV(major,i),NULL,mychrdev%d,i);if(IS_ERR(dev)){printk(向上提交设备节点信息失败\n);return -PTR_ERR(dev);}}printk(向上提交设备节点信息成功\n);
device_destroy()函数
函数原型:void device_destroy(struct class *class, dev_t devt); 函数功能:用于删除由device_ccreate()创建出的设备对象。 参数分析① class代表需要销毁的设备类。② devt代表设备号。 返回值无返回值。 函数示例 int i;for(i0;i3;i){device_destroy(cls,MKDEV(major,i));}基本流程首先用class_create()函数创建一个设备类再用device_create()函数创建类下的设备由device_destroy()函数来销毁设备节点信息最后用class_destroy()函数小虎i目录信息。