📄 example32.c
字号:
/** @file example3.c * * \brief third example of input subsystem driver * * See Linux Journal Feb. 2003 * * Requires * insmod input * ??? * I did not manage to make it work */#include <linux/input.h> /* input_dev */#include <linux/module.h>/* #include <linux/modversions.h> */#include <linux/init.h>/* MODULE_LICENSE( "GPL" ); */struct input_dev example3_dev;void example3_timeout( unsigned long unused /* UNUSED */ ){ int state = (int)example3_dev.private; if ( state < 30 ) input_report_rel( &example3_dev, REL_X, 5 ); else if ( state < 60 ) input_report_rel( &example3_dev, REL_Y, 5 ); else if ( state < 90 ) input_report_rel( &example3_dev, REL_X, -5 ); else input_report_rel( &example3_dev, REL_Y, -5 ); /* input_sync( &example3_dev ); */ if ( (++(state)) >= 120) state = 0; example3_dev.private = (void *)state; mod_timer( &example3_dev.timer, jiffies + HZ );}static int __init example3_init( void ){ /* extra safe initialization */ memset( &example3_dev, 0, sizeof(struct input_dev) );#if 0 init_input_dev( &example3_dev );#endif example3_dev.private = (void *)0; /* set up descriptive labels */ example3_dev.name = "Example 3 device";#if 0 example3_dev.phys = "A/Fake/Path"; example3_dev.id.bustype = BUS_HOST; example3_dev.id.vendor = 0x0001; example3_dev.id.product = 0x0003; // our third product example3_dev.id.version = 0x0101; // version 1.1#else example3_dev.idbus = BUS_ISA; example3_dev.idvendor = 0x0001; example3_dev.idproduct = 0x0003; // our third product example3_dev.idversion = 0x0101; // version 1.1#endif set_bit( EV_REL, example3_dev.evbit ); set_bit( REL_X, example3_dev.relbit ); set_bit( REL_Y, example3_dev.relbit ); set_bit( EV_KEY, example3_dev.evbit ); set_bit( BTN_LEFT, example3_dev.keybit ); /* mouse button is a key */ input_register_device( &example3_dev ); init_timer( &example3_dev.timer ); example3_dev.timer.function = example3_timeout; example3_dev.timer.expires = jiffies + HZ; add_timer( &example3_dev.timer ); return 0;}static void __exit example3_exit( void ){ del_timer_sync( &example3_dev.timer ); input_unregister_device( &example3_dev );}module_init( example3_init );module_exit( example3_exit );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -