hiddev.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. #include <uapi/linux/hiddev.h>
  28. /*
  29. * In-kernel definitions.
  30. */
  31. struct hiddev {
  32. int minor;
  33. int exist;
  34. int open;
  35. struct mutex existancelock;
  36. wait_queue_head_t wait;
  37. struct hid_device *hid;
  38. struct list_head list;
  39. spinlock_t list_lock;
  40. bool initialized;
  41. };
  42. struct hid_device;
  43. struct hid_usage;
  44. struct hid_field;
  45. struct hid_report;
  46. #ifdef CONFIG_USB_HIDDEV
  47. int hiddev_connect(struct hid_device *hid, unsigned int force);
  48. void hiddev_disconnect(struct hid_device *);
  49. void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
  50. struct hid_usage *usage, __s32 value);
  51. void hiddev_report_event(struct hid_device *hid, struct hid_report *report);
  52. #else
  53. static inline int hiddev_connect(struct hid_device *hid,
  54. unsigned int force)
  55. { return -1; }
  56. static inline void hiddev_disconnect(struct hid_device *hid) { }
  57. static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
  58. struct hid_usage *usage, __s32 value) { }
  59. static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { }
  60. #endif
  61. #endif