struct cdev
linux中struct cdev来表示一个字符设备。cdev中包含几个重要成员,name、file_operations、dev_t。name用来表示字符设备名称,file_operations表示操作集向用户空间提供操作接口,dev_t代表设备号,前12位代表主设备号,后20位代表次设备号。
操作cdev的函数
cdev_init():用于初始化cdev,并将cdev与file_opeations绑定。
cdev_add():将cdev添加到系统。
分配设备号
register_chrdev_region():已知设备号的情况下申请设备号,用于指定设备号
alloc_chrdev_region():自动分配设备号
创建class、device
class_create():创建类
device_create():创建设备
__init函数中
- 分配设备号
- cdev_init():初始化cdev
- cdev_add():向系统添加cdev
- class_create:创建类
- device_create:创建设备
__exit函数中
cdev_del():删除cdev
unregister_chrdev_region():删除设备号
device_destroy():删除设备
class_destroy():删除类