1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* |
3 | * Copyright (c) 1999-2000 Vojtech Pavlik |
4 | * |
5 | * Sponsored by SuSE |
6 | */ |
7 | /* |
8 | * |
9 | * Should you need to contact me, the author, you can do so either by |
10 | * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail: |
11 | * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic |
12 | */ |
13 | #ifndef _HIDDEV_H |
14 | #define _HIDDEV_H |
15 | |
16 | #include <uapi/linux/hiddev.h> |
17 | |
18 | |
19 | /* |
20 | * In-kernel definitions. |
21 | */ |
22 | |
23 | struct hiddev { |
24 | int minor; |
25 | int exist; |
26 | int open; |
27 | struct mutex existancelock; |
28 | wait_queue_head_t wait; |
29 | struct hid_device *hid; |
30 | struct list_head list; |
31 | spinlock_t list_lock; |
32 | bool initialized; |
33 | }; |
34 | |
35 | struct hid_device; |
36 | struct hid_usage; |
37 | struct hid_field; |
38 | struct hid_report; |
39 | |
40 | #ifdef CONFIG_USB_HIDDEV |
41 | int hiddev_connect(struct hid_device *hid, unsigned int force); |
42 | void hiddev_disconnect(struct hid_device *); |
43 | void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, |
44 | struct hid_usage *usage, __s32 value); |
45 | void hiddev_report_event(struct hid_device *hid, struct hid_report *report); |
46 | #else |
47 | static inline int hiddev_connect(struct hid_device *hid, |
48 | unsigned int force) |
49 | { return -1; } |
50 | static inline void hiddev_disconnect(struct hid_device *hid) { } |
51 | static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, |
52 | struct hid_usage *usage, __s32 value) { } |
53 | static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { } |
54 | #endif |
55 | |
56 | #endif |
57 | |