【linux驱动分析】misc设备驱动

    misc设备驱动。又称混杂设备驱动。

misc设备驱动共享一个设备驱动号MISC_MAJOR。它在include\linux\major.h中定义:

        #define MISC_MAJOR 10
miscdevice的结构体例如以下,它在include\linux\miscdevice.h中定义:
struct  miscdevice {
 int  minor;
 const  char  *name;
 const  struct file_operations  *fops;
 struct  list_head  list;
 struct  device  *parent;
 struct  device  *this_device;
 const  char  *nodename;
 mode_t  mode;
};
misc设备驱动的注冊和注销时用这两个函数,他们也定义在include\linux\miscdevice.h中:
extern int misc_register(struct miscdevice * misc);
extern int misc_deregister(struct miscdevice *misc);

样例:
再分配此设备号时,能够设为MISC_DYNAMIC_MINOR。这样会自己主动分配此设备号,如:
static struct miscdevice misc = {
 .minor = MISC_DYNAMIC_MINOR,
 .name = DEVICE_NAME,
 .fops = &dev_fops,
};
以下的是file_operations结构体:
static struct file_operations dev_fops = {
 .owner = THIS_MODULE,
 .unlocked_ioctl = sbc2440_leds_ioctl,
};
注冊和注销函数:
static int __init dev_init(void)
{
 int ret;
 …………

 ret = misc_register(&misc);
 printk (DEVICE_NAME"\tinitialized\n");
 return ret;
}

static void __exit dev_exit(void)
{
 misc_deregister(&misc);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值