usb: uas: add support for more quirk flags
[platform/kernel/linux-rpi.git] / include / linux / hiddev.h
1 /*
2  *  Copyright (c) 1999-2000 Vojtech Pavlik
3  *
4  *  Sponsored by SuSE
5  */
6 /*
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or 
10  * (at your option) any later version.
11  * 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  * 
21  * Should you need to contact me, the author, you can do so either by
22  * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:
23  * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
24  */
25 #ifndef _HIDDEV_H
26 #define _HIDDEV_H
27
28 #include <uapi/linux/hiddev.h>
29
30
31 /*
32  * In-kernel definitions.
33  */
34
35 struct hiddev {
36         int minor;
37         int exist;
38         int open;
39         struct mutex existancelock;
40         wait_queue_head_t wait;
41         struct hid_device *hid;
42         struct list_head list;
43         spinlock_t list_lock;
44         bool initialized;
45 };
46
47 struct hid_device;
48 struct hid_usage;
49 struct hid_field;
50 struct hid_report;
51
52 #ifdef CONFIG_USB_HIDDEV
53 int hiddev_connect(struct hid_device *hid, unsigned int force);
54 void hiddev_disconnect(struct hid_device *);
55 void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
56                       struct hid_usage *usage, __s32 value);
57 void hiddev_report_event(struct hid_device *hid, struct hid_report *report);
58 #else
59 static inline int hiddev_connect(struct hid_device *hid,
60                 unsigned int force)
61 { return -1; }
62 static inline void hiddev_disconnect(struct hid_device *hid) { }
63 static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
64                       struct hid_usage *usage, __s32 value) { }
65 static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { }
66 #endif
67
68 #endif