博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux Kernel input设备之handler
阅读量:4153 次
发布时间:2019-05-25

本文共 3384 字,大约阅读时间需要 11 分钟。

/**
 * struct input_handler - implements one of interfaces for input devices * @private: driver-specific data * @event: event handler. This method is being called by input core with *	interrupts disabled and dev->event_lock spinlock held and so *	it may not sleep * @events: event sequence handler. This method is being called by *	input core with interrupts disabled and dev->event_lock *	spinlock held and so it may not sleep * @filter: similar to @event; separates normal event handlers from *	"filters". * @match: called after comparing device's id with handler's id_table *	to perform fine-grained matching between device and handler * @connect: called when attaching a handler to an input device * @disconnect: disconnects a handler from input device * @start: starts handler for given handle. This function is called by *	input core right after connect() method and also when a process *	that "grabbed" a device releases it * @legacy_minors: set to %true by drivers using legacy minor ranges * @minor: beginning of range of 32 legacy minors for devices this driver *	can provide * @name: name of the handler, to be shown in /proc/bus/input/handlers * @id_table: pointer to a table of input_device_ids this driver can *	handle * @h_list: list of input handles associated with the handler * @node: for placing the driver onto input_handler_list * * Input handlers attach to input devices and create input handles. There * are likely several handlers attached to any given input device at the * same time. All of them will get their copy of input event generated by * the device. * * The very same structure is used to implement input filters. Input core * allows filters to run first and will not pass event to regular handlers * if any of the filters indicate that the event should be filtered (by * returning %true from their filter() method). * * Note that input core serializes calls to connect() and disconnect() * methods. */struct input_handler {	void *private;	void (*event)(struct input_handle *handle, unsigned int type, unsigned int code, int value);	void (*events)(struct input_handle *handle,		       const struct input_value *vals, unsigned int count);	bool (*filter)(struct input_handle *handle, unsigned int type, unsigned int code, int value);	bool (*match)(struct input_handler *handler, struct input_dev *dev);	int (*connect)(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id);	void (*disconnect)(struct input_handle *handle);	void (*start)(struct input_handle *handle);	bool legacy_minors;	int minor;	const char *name;	const struct input_device_id *id_table;	struct list_head	h_list;	struct list_head	node;};
/**
 * struct input_handle - links input device with an input handler * @private: handler-specific data * @open: counter showing whether the handle is 'open', i.e. should deliver *	events from its device * @name: name given to the handle by handler that created it * @dev: input device the handle is attached to * @handler: handler that works with the device through this handle * @d_node: used to put the handle on device's list of attached handles * @h_node: used to put the handle on handler's list of handles from which *	it gets events */struct input_handle {	void *private;	int open;	const char *name;	struct input_dev *dev;	struct input_handler *handler;	struct list_head	d_node;	struct list_head	h_node;};

转载地址:http://pwhti.baihongyu.com/

你可能感兴趣的文章
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>
我在网易做了6年前端,想给求职者4条建议
查看>>
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
查看>>
RQP-DEF-0177
查看>>
MySQL字段类型的选择与MySQL的查询效率
查看>>
Java的Properties配置文件用法【续】
查看>>
JAVA操作properties文件的代码实例
查看>>
java杂记
查看>>
RunTime.getRuntime().exec()
查看>>
Oracle 分组排序函数
查看>>
删除weblogic 域
查看>>
VMware Workstation 14中文破解版下载(附密钥)(笔记)
查看>>
日志框架学习
查看>>
日志框架学习2
查看>>
SVN-无法查看log,提示Want to go offline,时间显示1970问题,error主要是 url中 有一层的中文进行了2次encode
查看>>
NGINX
查看>>
Qt文件夹选择对话框
查看>>