Linux 驱动开发-字符设备驱动一些函数用法

unregister_chrdev_region | 释放设备号

在调用 cdev_del()函数从系统注销字符设备之后,unregister_chrdev_region()应该被调用以释放原先申请的设备号,其函数原型为:
引用
void unregister_chrdev_region ( dev_t first , unsigned int count );

register_chrdev_region && alloc_chrdev_region | 分配设备号

在调用 cdev_add()函数向系统注册字符设备之前,应首先调用 register_chrdev_region()或 alloc_chrdev_region() 函数向系统申请设备号,这两个函数在 <linux/fs.h>中可以找到,其原型是:
引用

int register_chrdev_region ( dev_t first , unsigned int count , const char * name );
int alloc_chrdev_region ( dev_t * dev , unsigned int firstminor , unsigned int count , const char * name );


register_chrdev_region() 函数用于已知起始设备的设备号的情况。
参数 first 表示起始设备号;
参数 count 表示从起始设备号开始连续的设备号数目,需要注意的是 count 不能过大,不然有可能溢出到下一个主设备号上;
参数 name 表示设备的名称,这个名称也会在 /proc/devices 文件以及sfsfs 中看到。

register_chrdev_region() 成功时返回 0 ,失败时返回负数。

......... ............... .............. ..................... .............. .............. ...........

alloc_chrdev_region() 用于设备号未知,向系统动态申请未被占用的设备号情况。

参数 dev ,在系统调用成功后,会把得到的设备号方到这个参数中;
参数 firstminor 是请求的第一个次设备号,一般为 0 ;
参数 count   表示一个范围值;
参数 name 表示设备名。


alloc_chrdev_region() 和 register_chrdev_region() 对比的优点在于它会自动避开设备号重复的冲突。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiang_dlut

你的鼓将是我创作的最大动力。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值