diff options
author | Dmitry Torokhov <dtor_core@ameritech.net> | 2005-11-20 00:51:22 -0500 |
---|---|---|
committer | Dmitry Torokhov <dtor_core@ameritech.net> | 2005-11-20 00:51:22 -0500 |
commit | 29506415a0ff0152cc2928f8fcac724fbbf98651 (patch) | |
tree | e1da48667c6b0499f2ea882b1d762758241da1e6 /include/linux | |
parent | e753b650e10af8a040b1081e72088b826bdef72f (diff) |
Input: uinput - convert to dynalloc allocation
Also introduce proper locking when creating/deleting device.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/uinput.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/include/linux/uinput.h b/include/linux/uinput.h index 84876077027f..6fd1a47acab2 100644 --- a/include/linux/uinput.h +++ b/include/linux/uinput.h | |||
@@ -34,8 +34,7 @@ | |||
34 | #define UINPUT_BUFFER_SIZE 16 | 34 | #define UINPUT_BUFFER_SIZE 16 |
35 | #define UINPUT_NUM_REQUESTS 16 | 35 | #define UINPUT_NUM_REQUESTS 16 |
36 | 36 | ||
37 | /* state flags => bit index for {set|clear|test}_bit ops */ | 37 | enum uinput_state { UIST_NEW_DEVICE, UIST_SETUP_COMPLETE, UIST_CREATED }; |
38 | #define UIST_CREATED 0 | ||
39 | 38 | ||
40 | struct uinput_request { | 39 | struct uinput_request { |
41 | int id; | 40 | int id; |
@@ -52,11 +51,12 @@ struct uinput_request { | |||
52 | 51 | ||
53 | struct uinput_device { | 52 | struct uinput_device { |
54 | struct input_dev *dev; | 53 | struct input_dev *dev; |
55 | unsigned long state; | 54 | struct semaphore sem; |
55 | enum uinput_state state; | ||
56 | wait_queue_head_t waitq; | 56 | wait_queue_head_t waitq; |
57 | unsigned char ready, | 57 | unsigned char ready; |
58 | head, | 58 | unsigned char head; |
59 | tail; | 59 | unsigned char tail; |
60 | struct input_event buff[UINPUT_BUFFER_SIZE]; | 60 | struct input_event buff[UINPUT_BUFFER_SIZE]; |
61 | 61 | ||
62 | struct uinput_request *requests[UINPUT_NUM_REQUESTS]; | 62 | struct uinput_request *requests[UINPUT_NUM_REQUESTS]; |