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 hiddev_connect(struct hid_device * hid,unsigned int force)47 static inline int hiddev_connect(struct hid_device *hid, 48 unsigned int force) 49 { return -1; } hiddev_disconnect(struct hid_device * hid)50 static inline void hiddev_disconnect(struct hid_device *hid) { } hiddev_hid_event(struct hid_device * hid,struct hid_field * field,struct hid_usage * usage,__s32 value)51 static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, 52 struct hid_usage *usage, __s32 value) { } hiddev_report_event(struct hid_device * hid,struct hid_report * report)53 static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { } 54 #endif 55 56 #endif 57