input子系统结构
2017-03-21 14:57:16 0 举报
输入子系统是计算机系统中负责接收和处理用户输入的部分。它主要由输入设备、输入接口和输入处理程序组成。输入设备可以是键盘、鼠标、触摸屏等,它们将用户的物理动作转换为电信号。输入接口负责将这些电信号转换为计算机可以理解的数字信号。输入处理程序则对接收到的数字信号进行处理,将其转换为相应的命令或数据。输入子系统的主要任务是确保用户输入的有效性和准确性,同时也需要考虑用户体验,使输入过程尽可能方便快捷。
作者其他创作
大纲/内容
handle放入input_dev的链表中
int input_register_handler
注册输入设备
放入数组
\tevdev-exist = 1;\tevdev-minor = minor;\tevdev-handle.dev = dev;\tevdev-handle.name = evdev-name;\tevdev-handle.handler = handler;\tevdev-handle.private = evdev;
3
把handle-dev放入输入设备链表里面
分配
1
创建struct evdev{}结构体
static const struct file_operations evdev_fops
error = input_register_handle(&evdev-handle);
进入匹配函数
struct input_handler evdev_handler
放入链表
handle放入handler的链表中
把handle放入handler链表里面
如果handler支持dev,那么就执行connect(handler,dev,id);
指向右边的handler
指向左边的input_dev
Input.h中创建
struct input_handle {\tvoid *private;\tint open;\tconst char *name;\tstruct input_dev *dev;\tstruct input_handler *handler;\tstruct list_head\td_node;\tstruct list_head\th_node;};
struct evdev {int exist;int open;int minor;char name[16];struct input_handle handle;wait_queue_head_t wait;struct evdev_client *grab;struct list_head client_list;};
根据input_handler的id_table,判断能否支持这个input_dev
分配一个input_handle结构体
指向左边的dev
input_handler-h_list=&input_handle
注册
evdev-handle.dev = dev;
根据handler-id_table与dev进行匹配,看handler能否支持dev
connetc是怎么实现handler和dev的连接的呢?
input.c
Input.h中注册
设置
指向右边的input_handler
注册一个input_handle
这里就是把handler和dev分别放入input_handler链表和input_dev_list中
(struct input_handler *handler)
2
EVDEV.C中创建evdev结构体
input_dev-h_list=&input_handle
int input_register_device(struct input_dev *dev)
注册handler
input_register_handler(&evdev_handler);
这里以EVDEV.C的connect函数为例子
evdev-handle.handler = handler;
Evdev.c (drivers\\input)
input_table[handler-minor 5] = handler;
分配一个input_handle
收藏
收藏
0 条评论
下一页