zoukankan      html  css  js  c++  java
  • linux-2.6内核驱动学习——jz2440之输入子系统

      如果按照上一篇记录的那样,只有本公司的人或者自己才能使用驱动。想写出一个通用的驱动程序,让其他应用程序来无缝移植,需要使用现成的驱动——输入子系统。

    /drivers/input/input.c

    
    

    #define EV_SYN 0x00  //同步类
    #define EV_KEY 0x01  //按键类
    #define EV_REL 0x02  //相对位移类
    #define EV_ABS 0x03  //绝对位移 



    struct
    input_dev { void *private; const char *name; const char *phys; const char *uniq; struct input_id id; unsigned long evbit[NBITS(EV_MAX)]; //表示能产生哪类时间 unsigned long keybit[NBITS(KEY_MAX)];    //表示能产生哪些按键 unsigned long relbit[NBITS(REL_MAX)];    //表示能产生哪些相对位移事件 unsigned long absbit[NBITS(ABS_MAX)];    //表示能产生哪些绝对位移事件 unsigned long mscbit[NBITS(MSC_MAX)]; unsigned long ledbit[NBITS(LED_MAX)]; unsigned long sndbit[NBITS(SND_MAX)]; unsigned long ffbit[NBITS(FF_MAX)]; unsigned long swbit[NBITS(SW_MAX)]; unsigned int keycodemax; unsigned int keycodesize; void *keycode; int (*setkeycode)(struct input_dev *dev, int scancode, int keycode); int (*getkeycode)(struct input_dev *dev, int scancode, int *keycode); struct ff_device *ff; unsigned int repeat_key; struct timer_list timer; int state; int sync; int abs[ABS_MAX + 1]; int rep[REP_MAX + 1]; unsigned long key[NBITS(KEY_MAX)]; unsigned long led[NBITS(LED_MAX)]; unsigned long snd[NBITS(SND_MAX)]; unsigned long sw[NBITS(SW_MAX)]; int absmax[ABS_MAX + 1]; int absmin[ABS_MAX + 1]; int absfuzz[ABS_MAX + 1]; int absflat[ABS_MAX + 1]; int (*open)(struct input_dev *dev); void (*close)(struct input_dev *dev); int (*flush)(struct input_dev *dev, struct file *file); int (*event)(struct input_dev *dev, unsigned int type, unsigned int code, int value); struct input_handle *grab; struct mutex mutex; /* serializes open and close operations */ unsigned int users; struct class_device cdev; union { /* temporarily so while we switching to struct device */ struct device *parent; } dev; struct list_head h_list; struct list_head node; };
  • 相关阅读:
    计算机网络-数据结构-MAC帧头-IP头-TCP头-UDP头
    (考研)java网络编程
    多态(重点:方法的多态性和对象的多态性)
    JZOJ1497 景点中心 题解
    JZOJ1227 Coprime 题解
    JZOJ3966 Sabotage 题解
    JZOJ3056 数字 题解
    JZOJ3054 祖孙询问 题解
    【Luogu P2282】【JZOJ 4906】【NOIP2016提高组复赛】组合数问题 题解
    JZOJ4316【NOIP2015模拟11.5】Isfind 题解
  • 原文地址:https://www.cnblogs.com/jason-linux/p/10282042.html
Copyright © 2011-2022 走看看