linux2.6版字符设备的注册与注销

 Linux 2.6 的版本中,用 dev_t 类型来描述设备号(dev_t  32 位数值类型,其中高 12 位表示主设备号,低 20 位表示次设备号)。用两个宏 MAJOR  MINOR分别获得 dev_t 设备号的主设备号和次设备号,而且用 MKDEV 宏来实现逆过程,即组合主设备号和次设备号而获得 dev_t 类型设备号。


 申请设备号     

int register_chrdev_region(dev_t first, unsigned int count, char *name);//手工申请

int alloc_chrdev_region(dev_t *dev, unsigned int firstminor, unsigned int count, char *nam );//自动申请

         

释放设备号

void unregister_chrdev_region(dev_t first, unsigned int count);


参数传入:

        first:要分配的设备号的初始值

        count:要分配(释放)的设备号数目

        name:要申请设备号的设备名称(在/proc/devices sysfs 中显示)

        dev:动态分配的第一个设备号

*********************************************************************************************

注册注销函数

#include<linux/cdev.h>

sturct cdev *cdev_alloc(void);          /*动态申请一个cdev内存*/

void cdev_init(struct cdev *cdev, struct file_operations *fops);/*初始化已分配的cdev,建立cdev与 file_operations的连接*/

int cdev_add (struct cdev *cdev, dev_t first,unsigned int count); /*向系统添加cdev,完成字符设备的注册,通常在模块加载时调用*/

void cdev_del(struct cdev *dev);/*向系统删除cdev,完成字符设备的注销,通常在模块卸载时调用*/


参数传入:

cdev :需要初始化 / 注册 / 删除的struct cdev 结构

fops :该字符设备的file_operations 结构

first:要分配的设备号的初始值

count:要分配(释放)的设备号数目


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值