aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/input.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/input.h')
-rw-r--r--include/linux/input.h34
1 files changed, 25 insertions, 9 deletions
diff --git a/include/linux/input.h b/include/linux/input.h
index b32c2b6e53f..b3253ab72ff 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -232,7 +232,8 @@ struct input_absinfo {
232#define KEY_PAUSE 119 232#define KEY_PAUSE 119
233 233
234#define KEY_KPCOMMA 121 234#define KEY_KPCOMMA 121
235#define KEY_HANGUEL 122 235#define KEY_HANGEUL 122
236#define KEY_HANGUEL KEY_HANGEUL
236#define KEY_HANJA 123 237#define KEY_HANJA 123
237#define KEY_YEN 124 238#define KEY_YEN 124
238#define KEY_LEFTMETA 125 239#define KEY_LEFTMETA 125
@@ -892,7 +893,6 @@ struct input_dev {
892 893
893 int (*open)(struct input_dev *dev); 894 int (*open)(struct input_dev *dev);
894 void (*close)(struct input_dev *dev); 895 void (*close)(struct input_dev *dev);
895 int (*accept)(struct input_dev *dev, struct file *file);
896 int (*flush)(struct input_dev *dev, struct file *file); 896 int (*flush)(struct input_dev *dev, struct file *file);
897 int (*event)(struct input_dev *dev, unsigned int type, unsigned int code, int value); 897 int (*event)(struct input_dev *dev, unsigned int type, unsigned int code, int value);
898 int (*upload_effect)(struct input_dev *dev, struct ff_effect *effect); 898 int (*upload_effect)(struct input_dev *dev, struct ff_effect *effect);
@@ -960,6 +960,26 @@ struct input_dev {
960 960
961struct input_handle; 961struct input_handle;
962 962
963/**
964 * struct input_handler - implements one of interfaces for input devices
965 * @private: driver-specific data
966 * @event: event handler
967 * @connect: called when attaching a handler to an input device
968 * @disconnect: disconnects a handler from input device
969 * @start: starts handler for given handle. This function is called by
970 * input core right after connect() method and also when a process
971 * that "grabbed" a device releases it
972 * @fops: file operations this driver implements
973 * @minor: beginning of range of 32 minors for devices this driver
974 * can provide
975 * @name: name of the handler, to be shown in /proc/bus/input/handlers
976 * @id_table: pointer to a table of input_device_ids this driver can
977 * handle
978 * @blacklist: prointer to a table of input_device_ids this driver should
979 * ignore even if they match @id_table
980 * @h_list: list of input handles associated with the handler
981 * @node: for placing the driver onto input_handler_list
982 */
963struct input_handler { 983struct input_handler {
964 984
965 void *private; 985 void *private;
@@ -967,6 +987,7 @@ struct input_handler {
967 void (*event)(struct input_handle *handle, unsigned int type, unsigned int code, int value); 987 void (*event)(struct input_handle *handle, unsigned int type, unsigned int code, int value);
968 struct input_handle* (*connect)(struct input_handler *handler, struct input_dev *dev, struct input_device_id *id); 988 struct input_handle* (*connect)(struct input_handler *handler, struct input_dev *dev, struct input_device_id *id);
969 void (*disconnect)(struct input_handle *handle); 989 void (*disconnect)(struct input_handle *handle);
990 void (*start)(struct input_handle *handle);
970 991
971 const struct file_operations *fops; 992 const struct file_operations *fops;
972 int minor; 993 int minor;
@@ -1005,6 +1026,7 @@ static inline void init_input_dev(struct input_dev *dev)
1005} 1026}
1006 1027
1007struct input_dev *input_allocate_device(void); 1028struct input_dev *input_allocate_device(void);
1029void input_free_device(struct input_dev *dev);
1008 1030
1009static inline struct input_dev *input_get_device(struct input_dev *dev) 1031static inline struct input_dev *input_get_device(struct input_dev *dev)
1010{ 1032{
@@ -1016,12 +1038,6 @@ static inline void input_put_device(struct input_dev *dev)
1016 class_device_put(&dev->cdev); 1038 class_device_put(&dev->cdev);
1017} 1039}
1018 1040
1019static inline void input_free_device(struct input_dev *dev)
1020{
1021 if (dev)
1022 input_put_device(dev);
1023}
1024
1025int input_register_device(struct input_dev *); 1041int input_register_device(struct input_dev *);
1026void input_unregister_device(struct input_dev *); 1042void input_unregister_device(struct input_dev *);
1027 1043
@@ -1034,10 +1050,10 @@ void input_release_device(struct input_handle *);
1034int input_open_device(struct input_handle *); 1050int input_open_device(struct input_handle *);
1035void input_close_device(struct input_handle *); 1051void input_close_device(struct input_handle *);
1036 1052
1037int input_accept_process(struct input_handle *handle, struct file *file);
1038int input_flush_device(struct input_handle* handle, struct file* file); 1053int input_flush_device(struct input_handle* handle, struct file* file);
1039 1054
1040void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value); 1055void input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value);
1056void input_inject_event(struct input_handle *handle, unsigned int type, unsigned int code, int value);
1041 1057
1042static inline void input_report_key(struct input_dev *dev, unsigned int code, int value) 1058static inline void input_report_key(struct input_dev *dev, unsigned int code, int value)
1043{ 1059{