linux/include/linux/hidraw.h
<<
>>
Prefs
   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
  11struct 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
  22struct hidraw_report {
  23        __u8 *value;
  24        int len;
  25};
  26
  27struct 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
  38int hidraw_init(void);
  39void hidraw_exit(void);
  40int hidraw_report_event(struct hid_device *, u8 *, int);
  41int hidraw_connect(struct hid_device *);
  42void hidraw_disconnect(struct hid_device *);
  43#else
  44static inline int hidraw_init(void) { return 0; }
  45static inline void hidraw_exit(void) { }
  46static inline int hidraw_report_event(struct hid_device *hid, u8 *data, int len) { return 0; }
  47static inline int hidraw_connect(struct hid_device *hid) { return -1; }
  48static inline void hidraw_disconnect(struct hid_device *hid) { }
  49#endif
  50
  51#endif
  52