hidraw.h (1146B)
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 11struct 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 22struct hidraw_report { 23 __u8 *value; 24 int len; 25}; 26 27struct 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 38int hidraw_init(void); 39void hidraw_exit(void); 40int hidraw_report_event(struct hid_device *, u8 *, int); 41int hidraw_connect(struct hid_device *); 42void hidraw_disconnect(struct hid_device *); 43#else 44static inline int hidraw_init(void) { return 0; } 45static inline void hidraw_exit(void) { } 46static inline int hidraw_report_event(struct hid_device *hid, u8 *data, int len) { return 0; } 47static inline int hidraw_connect(struct hid_device *hid) { return -1; } 48static inline void hidraw_disconnect(struct hid_device *hid) { } 49#endif 50 51#endif