Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
uapi
linux
uhid.h
Go to the documentation of this file.
1
#ifndef __UHID_H_
2
#define __UHID_H_
3
4
/*
5
* User-space I/O driver support for HID subsystem
6
* Copyright (c) 2012 David Herrmann
7
*/
8
9
/*
10
* This program is free software; you can redistribute it and/or modify it
11
* under the terms of the GNU General Public License as published by the Free
12
* Software Foundation; either version 2 of the License, or (at your option)
13
* any later version.
14
*/
15
16
/*
17
* Public header for user-space communication. We try to keep every structure
18
* aligned but to be safe we also use __attribute__((__packed__)). Therefore,
19
* the communication should be ABI compatible even between architectures.
20
*/
21
22
#include <linux/input.h>
23
#include <linux/types.h>
24
25
enum
uhid_event_type
{
26
UHID_CREATE
,
27
UHID_DESTROY
,
28
UHID_START
,
29
UHID_STOP
,
30
UHID_OPEN
,
31
UHID_CLOSE
,
32
UHID_OUTPUT
,
33
UHID_OUTPUT_EV
,
34
UHID_INPUT
,
35
UHID_FEATURE
,
36
UHID_FEATURE_ANSWER
,
37
};
38
39
struct
uhid_create_req
{
40
__u8
name
[128];
41
__u8
phys
[64];
42
__u8
uniq
[64];
43
__u8
__user
*
rd_data
;
44
__u16
rd_size
;
45
46
__u16
bus
;
47
__u32
vendor
;
48
__u32
product
;
49
__u32
version
;
50
__u32
country
;
51
}
__attribute__
((__packed__));
52
53
#define UHID_DATA_MAX 4096
54
55
enum
uhid_report_type
{
56
UHID_FEATURE_REPORT
,
57
UHID_OUTPUT_REPORT
,
58
UHID_INPUT_REPORT
,
59
};
60
61
struct
uhid_input_req
{
62
__u8
data
[
UHID_DATA_MAX
];
63
__u16
size
;
64
}
__attribute__
((__packed__));
65
66
struct
uhid_output_req
{
67
__u8
data
[
UHID_DATA_MAX
];
68
__u16
size
;
69
__u8
rtype
;
70
}
__attribute__
((__packed__));
71
72
struct
uhid_output_ev_req
{
73
__u16
type
;
74
__u16
code
;
75
__s32
value
;
76
}
__attribute__
((__packed__));
77
78
struct
uhid_feature_req
{
79
__u32
id
;
80
__u8
rnum
;
81
__u8
rtype
;
82
}
__attribute__
((__packed__));
83
84
struct
uhid_feature_answer_req
{
85
__u32
id
;
86
__u16
err
;
87
__u16
size
;
88
__u8
data
[
UHID_DATA_MAX
];
89
};
90
91
struct
uhid_event
{
92
__u32
type
;
93
94
union
{
95
struct
uhid_create_req
create
;
96
struct
uhid_input_req
input
;
97
struct
uhid_output_req
output
;
98
struct
uhid_output_ev_req
output_ev
;
99
struct
uhid_feature_req
feature
;
100
struct
uhid_feature_answer_req
feature_answer
;
101
}
u
;
102
}
__attribute__
((__packed__));
103
104
#endif
/* __UHID_H_ */
Generated on Thu Jan 10 2013 14:53:54 for Linux Kernel by
1.8.2