hiddev.h (1458B)
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 23struct 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 35struct hid_device; 36struct hid_usage; 37struct hid_field; 38struct hid_report; 39 40#ifdef CONFIG_USB_HIDDEV 41int hiddev_connect(struct hid_device *hid, unsigned int force); 42void hiddev_disconnect(struct hid_device *); 43void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, 44 struct hid_usage *usage, __s32 value); 45void hiddev_report_event(struct hid_device *hid, struct hid_report *report); 46#else 47static inline int hiddev_connect(struct hid_device *hid, 48 unsigned int force) 49{ return -1; } 50static inline void hiddev_disconnect(struct hid_device *hid) { } 51static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, 52 struct hid_usage *usage, __s32 value) { } 53static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { } 54#endif 55 56#endif