input_dev结构有一个重要的成员,就是event接口。
int(*event)(struct input_dev*dev,unsigned int type,unsigned int code,int value);
本节以一个实例形式介绍这个接口的使用。
例10.3 LED输入事件处理实例
电路原理见第6章。代码见samples\10input\10-2event。核心代码如下:
应用层通过/dev/input/event1控制LED灯。注意这里的打开标志设置成O_WRONLY。
当应用层调用write函数,进入内核中将会调用evdev_write函数:
input_inject_event函数中调用了input_handle_event函数,input_handle_event函数定义如下:
可见内核会自动调用s3c6410_LED_event函数。加载这个驱动,并运行应用程序就能看到LED闪灭:
[root@urbetter drivers]#insmod demo.ko
input:s3c6410LED as/devices/virtual/input/input1(www.xing528.com)
input:s3c6410LED
[root@urbetter drivers]#./test
s3c6410_LED_event type17 value1
s3c6410_LED_event type17 value0
s3c6410_LED_event type17 value1
s3c6410_LED_event type17 value0
s3c6410_LED_event type17 value1
^C
[root@urbetter drivers]#
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。