linux分配设备编号

本文介绍了Linux内核中如何管理设备编号,使用dev_t表示设备号,其中12位为主设备号,20位为次设备号。通过宏MAJOR和MINOR获取设备号,用MKDEV构造dev_t值。静态分配设备号可使用register_chrdev_region,动态分配则用alloc_chrdev_region,并用unregister_chrdev_region释放。查看设备号可查看/proc/devices,但仅分配设备号还不够,还需告诉内核设备编号的用途。
摘要由CSDN通过智能技术生成

在linux内核中用dev_t来保存设备的编号, dev_t 是个32位数值12位为主设备号, 20位次设备号, 想要获得dev_t的设备号最好使用给定的宏MAJOR(dev_t dev), MINOR(dev_t dev).

相反用MKDEV(int major, int minor)来获取dev_t类型的值.

如果我们在明确知道设备编号的时候可以使用register_chrdev_region函数来分配编号,否则最好使用动态分配函数alloc_chrdev_region(dev_t *dev,  minor, count, char *name).

不论采用上述那种分配方法都用unregister_chrdev_region(dev_t, unsigned int count)来释放.

示例代码:

静态分配设备号:

static dev_t dev;
static int __init test_init(void) {
    int err;
    /* 静态分配设备号 *?
    dev = MKDEV(240, 0);
    err = register_chrdev_region(dev, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值