Linux 2.6 字符设备驱动程序分配和释放设备编号

(1)       静态分配主设备号:register_chrdev_region(dev_t from, unsigned count, const char *name),其中from包含了主、次设备号两个部分。需要静态分配的主设备号必须包含在from中,from的次设备号通常为0。使用该函数前,需要首先 查看Documentation/devices.txt 文件哪些主设备号没有被分配。

 

(2)       动态分配主设备号:alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name),其中dev是出口参数,保存了动态分配的主设备号。该函数是在insmod之后被调用的,也就是说我们不能事先创建设备文件(因为此时主设备号不知道),需要动态 查看/proc/devices 文件,可利用awk等工具。

 

(3)       register_chrdev_region()和alloc_chrdev_region()都是调用了static struct char_device_struct * __register_chrdev_region (unsigned int major, unsigned int baseminor, int minorct, const char *name)函数。

 

(4)        释放设备编号:无论是静态分配设备编号还是动态分配设备编号,释放调用的函数都是 void unregister_chrdev_region(dev_t from, unsigned count)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值