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