misc杂散类设备驱动1:misc杂散类设备驱动架构分析

本文深入分析了Linux内核的misc驱动框架,包括misc驱动的加载过程、类注册、字符设备注册以及misc_register和misc_deregister接口的功能。通过对misc_init()函数的追踪,展示了如何创建misc设备类并在/sys/class/下生成对应的文件夹,以及如何使用MKDEV()确定设备号。此外,还讨论了设备管理的链表结构和互斥锁确保的安全性。
摘要由CSDN通过智能技术生成

misc驱动框架:

1.misc源码框架本身也是一个模块,这个模块的实现由misc.c文件实现,在内核启动时自动加载。

2.源码框架的主要工作:注册misc类,使用老接口注册字符设备驱动(主设备号10),开放device注册的接口misc_register给驱动工程师。

下面对misc.c也就是驱动框架的实现做分析:

1.加载的开始:

subsys_initcall(misc_init);

使用subsys_initcall()在内核加载的第四阶段对模块进行加载。

2.追踪分析misc驱动框架的建立:misc_init()函数

static int __init misc_init(void)
{
	int err;

#ifdef CONFIG_PROC_FS
	proc_create("misc", 0, NULL, &misc_proc_fops);
#endif
	misc_class = class_create(THIS_MODULE, "misc");
	err = PTR_ERR(misc_class);
	if (IS_ERR(misc_class))
		goto fail_remove;

	err = -EIO;
	if (register_chrdev(MISC_MAJOR,"misc",&misc_fops))
		goto fail_printk;
	misc_class->devnode = misc_devnode;
	return 0;

fail_printk:
	printk("unable to get major %d for mis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值