linux/include/linux/hidraw.h
<<
>>
Prefs
   1/*
   2 *  Copyright (c) 2007 Jiri Kosina
   3 */
   4/*
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms and conditions of the GNU General Public License,
   7 * version 2, as published by the Free Software Foundation.
   8 *
   9 * You should have received a copy of the GNU General Public License along with
  10 * this program; if not, write to the Free Software Foundation, Inc.,
  11 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
  12 */
  13#ifndef _HIDRAW_H
  14#define _HIDRAW_H
  15
  16#include <uapi/linux/hidraw.h>
  17
  18
  19struct hidraw {
  20        unsigned int minor;
  21        int exist;
  22        int open;
  23        wait_queue_head_t wait;
  24        struct hid_device *hid;
  25        struct device *dev;
  26        struct list_head list;
  27};
  28
  29struct hidraw_report {
  30        __u8 *value;
  31        int len;
  32};
  33
  34struct hidraw_list {
  35        struct hidraw_report buffer[HIDRAW_BUFFER_SIZE];
  36        int head;
  37        int tail;
  38        struct fasync_struct *fasync;
  39        struct hidraw *hidraw;
  40        struct list_head node;
  41        struct mutex read_mutex;
  42};
  43
  44#ifdef CONFIG_HIDRAW
  45int hidraw_init(void);
  46void hidraw_exit(void);
  47int hidraw_report_event(struct hid_device *, u8 *, int);
  48int hidraw_connect(struct hid_device *);
  49void hidraw_disconnect(struct hid_device *);
  50#else
  51static inline int hidraw_init(void) { return 0; }
  52static inline void hidraw_exit(void) { }
  53static inline int hidraw_report_event(struct hid_device *hid, u8 *data, int len) { return 0; }
  54static inline int hidraw_connect(struct hid_device *hid) { return -1; }
  55static inline void hidraw_disconnect(struct hid_device *hid) { }
  56#endif
  57
  58#endif
  59