]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - include/linux/hidraw.h
Merge tag 'asm-generic-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd...
[mirror_ubuntu-focal-kernel.git] / include / linux / hidraw.h
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