1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (c) 2007 Jiri Kosina 4 */ 5 #ifndef _HIDRAW_H 6 #define _HIDRAW_H 7 8 #include <uapi/linux/hidraw.h> 9 10 11 struct hidraw { 12 unsigned int minor; 13 int exist; 14 int open; 15 wait_queue_head_t wait; 16 struct hid_device *hid; 17 struct device *dev; 18 spinlock_t list_lock; 19 struct list_head list; 20 }; 21 22 struct hidraw_report { 23 __u8 *value; 24 int len; 25 }; 26 27 struct hidraw_list { 28 struct hidraw_report buffer[HIDRAW_BUFFER_SIZE]; 29 int head; 30 int tail; 31 struct fasync_struct *fasync; 32 struct hidraw *hidraw; 33 struct list_head node; 34 struct mutex read_mutex; 35 }; 36 37 #ifdef CONFIG_HIDRAW 38 int hidraw_init(void); 39 void hidraw_exit(void); 40 int hidraw_report_event(struct hid_device *, u8 *, int); 41 int hidraw_connect(struct hid_device *); 42 void hidraw_disconnect(struct hid_device *); 43 #else 44 static inline int hidraw_init(void) { return 0; } 45 static inline void hidraw_exit(void) { } 46 static inline int hidraw_report_event(struct hid_device *hid, u8 *data, int len) { return 0; } 47 static inline int hidraw_connect(struct hid_device *hid) { return -1; } 48 static inline void hidraw_disconnect(struct hid_device *hid) { } 49 #endif 50 51 #endif 52
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.