=============================================
input 核心层: input.c 【注册流程】
static LIST_HEAD(input_dev_list); // 定义全局链表 : input device
static LIST_HEAD(input_handler_list); // 定义全局链表 : input handler
input_init() // subsys_initcall()
|
class_register(&input_class) // 将class注册到内核中,同时创建/sys/class/下节点,类似class_create()
input_proc_init() // 没啥用
|
proc_bus_input_dir = proc_mkdir("bus/input", NULL); // 创建文件夹"/proc/bus/input"
entry = proc_create("devices", 0, proc_bus_input_dir, &input_devices_fileops); // 创建节点"/proc/bus/input/devices"
entry = proc_create("handlers", 0, proc_bus_input_dir, &input_handlers_fileops);// 创建节点"/proc/bus/input/handlers"
register_chrdev_region(MKDEV(INPUT_MAJOR, 0), INPUT_MAX_CHAR_DEVICES, "input"); // 根据要求申请主设备号,主设备号INPUT_MAJOR == 13
=============================================
i