linux设备注册函数,linux注册字符设备和卸载字符设备函数

注册一个字符设备的方法是使用:

int register_chrdev(unsigned int major, const char *name, struct file_operations *fops);

这里,

major 是感兴趣的主编号,

name 是驱动的名子(出现在 /proc/devices),

fops 是缺省的file_operations 结构.

一个对 register_chrdev 的调用为给定的主编号注册 0 - 255 的次编号, 并且为每

一个建立一个缺省的 cdev 结构. 使用这个接口的驱动必须准备好处理对所有 256 个次编号的 open

调用( 不管它们是否对应真实设备 ), 它们不能使用大于 255 的主或次编号.

若主设备号设为0 则内核自动分配主设备号

从系统中去除设备的正确的函数是:

int unregister_chrdev(unsigned int major, const char *name);

major 和 name 必须和传递给 register_chrdev 的相同, 否则调用会失败

例如

#define sddev_MAJOR 200

static const struct file_operations dev_fops={

.owner  = THIS_MODULE,

.open   = dev_open,

.write  = dev_write,

.read   = dev_read,

.release = dev_release,

};

register_chrdev(sddev_MAJOR,"sddev",&dev_fops);

unregister_chrdev(sddev_MAJOR,"sddev");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值