⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example3.c

📁 LINUX内核编程的一些程序例子
💻 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 + -