• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   *  Copyright (c) 1999-2000 Vojtech Pavlik
3   *
4   *  Sponsored by SuSE
5   */
6  /*
7   * This program is free software; you can redistribute it and/or modify
8   * it under the terms of the GNU General Public License as published by
9   * the Free Software Foundation; either version 2 of the License, or
10   * (at your option) any later version.
11   *
12   * This program is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   * GNU General Public License for more details.
16   *
17   * You should have received a copy of the GNU General Public License
18   * along with this program; if not, write to the Free Software
19   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20   *
21   * Should you need to contact me, the author, you can do so either by
22   * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:
23   * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
24   */
25  #ifndef _HIDDEV_H
26  #define _HIDDEV_H
27  
28  #include <uapi/linux/hiddev.h>
29  
30  
31  /*
32   * In-kernel definitions.
33   */
34  
35  struct hiddev {
36  	int minor;
37  	int exist;
38  	int open;
39  	struct mutex existancelock;
40  	wait_queue_head_t wait;
41  	struct hid_device *hid;
42  	struct list_head list;
43  	spinlock_t list_lock;
44  	bool initialized;
45  };
46  
47  struct hid_device;
48  struct hid_usage;
49  struct hid_field;
50  struct hid_report;
51  
52  #ifdef CONFIG_USB_HIDDEV
53  int hiddev_connect(struct hid_device *hid, unsigned int force);
54  void hiddev_disconnect(struct hid_device *);
55  void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
56  		      struct hid_usage *usage, __s32 value);
57  void hiddev_report_event(struct hid_device *hid, struct hid_report *report);
58  #else
hiddev_connect(struct hid_device * hid,unsigned int force)59  static inline int hiddev_connect(struct hid_device *hid,
60  		unsigned int force)
61  { return -1; }
hiddev_disconnect(struct hid_device * hid)62  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)63  static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
64  		      struct hid_usage *usage, __s32 value) { }
hiddev_report_event(struct hid_device * hid,struct hid_report * report)65  static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { }
66  #endif
67  
68  #endif
69