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、付费专栏及课程。

余额充值