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 misc devices\n", MISC_MAJOR); class_destroy(misc_class); fail_remove: remove_proc_entry("misc", NULL); return err; }
- proc_create创建misc设备在proc文件系统下的相关的东西
- class_create创建misc类,在/sys/class目录下会生成misc文件夹
- register_chrdev注册misc设备,cat /proc/devices可以看到所有已经注册了的设备
misc_proc_fops
static const struct file_ope