CR_1827_cannot_record_play_simultaneously
[platform/kernel/linux-starfive.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