aboutsummaryrefslogtreecommitdiffstats
path: root/sys/freebsd/evdev.txt
blob: 37ec4689dfc85d86f004231be4bdcccc00880030 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
# Copyright 2021 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
# Autogenerated by sys2syz

include <fcntl.h>
include <dev/evdev/uinput.h>
include <dev/evdev/input.h>

resource fd_evdev[fd]

openat$evdev(fd const[AT_FDCWD], file ptr[in, string["/dev/input/eventN"]], flags flags[open_flags], mode const[0]) fd_evdev

define EVIOCGABS_MIN	EVIOCGABS(0)
define EVIOCGABS_MAX	EVIOCGABS(ABS_MAX)
define EVIOCSABS_MIN	EVIOCGABS(0)
define EVIOCSABS_MAX	EVIOCGABS(ABS_MAX)
define EVIOCGNAME_CONST	EVIOCGNAME(0)
define EVIOCGPHYS_CONST	EVIOCGPHYS(0)
define EVIOCGUNIQ_CONST	EVIOCGUNIQ(0)
define EVIOCGPROP_CONST	EVIOCGPROP(0)
define EVIOCGMTSLOTS_CONST	EVIOCGMTSLOTS(0)
define EVIOCGLED_CONST	EVIOCGLED(0)
define EVIOCGKEY_CONST	EVIOCGKEY(0)
define EVIOCGSND_CONST	EVIOCGSND(0)
define EVIOCGSW_CONST	EVIOCGSW(0)
define EVIOCGBIT_MIN	EVIOCGBIT(0, 0)
define EVIOCGBIT_MAX	EVIOCGBIT(EV_MAX, 0)

ioctl$EVIOCGVERSION(fd fd_evdev, cmd const[EVIOCGVERSION], arg int32)
ioctl$EVIOCGID(fd fd_evdev, cmd const[EVIOCGID], arg ptr[out, input_id])
ioctl$EVIOCGREP(fd fd_evdev, cmd const[EVIOCGREP], arg int32)
ioctl$EVIOCSREP(fd fd_evdev, cmd const[EVIOCSREP], arg int32)
ioctl$EVIOCGKEYCODE(fd fd_evdev, cmd const[EVIOCGKEYCODE], arg int32)
ioctl$EVIOCGKEYCODE_V2(fd fd_evdev, cmd const[EVIOCGKEYCODE_V2], arg ptr[inout, input_keymap_entry])
ioctl$EVIOCSKEYCODE(fd fd_evdev, cmd const[EVIOCSKEYCODE], arg int32)
ioctl$EVIOCSKEYCODE_V2(fd fd_evdev, cmd const[EVIOCSKEYCODE_V2], arg ptr[in, input_keymap_entry])
ioctl$EVIOCGABS(fd fd_evdev, cmd intptr[EVIOCGABS_MIN:EVIOCGABS_MAX], arg ptr[out, input_absinfo])
ioctl$EVIOCSABS(fd fd_evdev, cmd intptr[EVIOCSABS_MIN:EVIOCSABS_MAX], arg ptr[in, input_absinfo])
ioctl$EVIOCSFF(fd fd_evdev, cmd const[EVIOCSFF], arg ptr[in, ff_effect])
ioctl$EVIOCRMFF(fd fd_evdev, cmd const[EVIOCRMFF])
ioctl$EVIOCGEFFECTS(fd fd_evdev, cmd const[EVIOCGEFFECTS], arg int32)
ioctl$EVIOCGRAB(fd fd_evdev, cmd const[EVIOCGRAB])
ioctl$EVIOCREVOKE(fd fd_evdev, cmd const[EVIOCREVOKE])
ioctl$EVIOCSCLOCKID(fd fd_evdev, cmd const[EVIOCSCLOCKID], arg int32)
ioctl$UI_DEV_CREATE(fd fd_evdev, cmd const[UI_DEV_CREATE])
ioctl$UI_DEV_DESTROY(fd fd_evdev, cmd const[UI_DEV_DESTROY])
ioctl$UI_DEV_SETUP(fd fd_evdev, cmd const[UI_DEV_SETUP], arg ptr[in, uinput_setup])
ioctl$UI_ABS_SETUP(fd fd_evdev, cmd const[UI_ABS_SETUP], arg ptr[in, uinput_abs_setup])
ioctl$UI_GET_VERSION(fd fd_evdev, cmd const[UI_GET_VERSION], arg int32)
ioctl$UI_SET_EVBIT(fd fd_evdev, cmd const[UI_SET_EVBIT])
ioctl$UI_SET_KEYBIT(fd fd_evdev, cmd const[UI_SET_KEYBIT])
ioctl$UI_SET_RELBIT(fd fd_evdev, cmd const[UI_SET_RELBIT])
ioctl$UI_SET_ABSBIT(fd fd_evdev, cmd const[UI_SET_ABSBIT])
ioctl$UI_SET_MSCBIT(fd fd_evdev, cmd const[UI_SET_MSCBIT])
ioctl$UI_SET_LEDBIT(fd fd_evdev, cmd const[UI_SET_LEDBIT])
ioctl$UI_SET_SNDBIT(fd fd_evdev, cmd const[UI_SET_SNDBIT])
ioctl$UI_SET_FFBIT(fd fd_evdev, cmd const[UI_SET_FFBIT])
ioctl$UI_SET_PHYS(fd fd_evdev, cmd const[UI_SET_PHYS])
ioctl$UI_SET_SWBIT(fd fd_evdev, cmd const[UI_SET_SWBIT])
ioctl$UI_SET_PROPBIT(fd fd_evdev, cmd const[UI_SET_PROPBIT])
ioctl$UI_BEGIN_FF_UPLOAD(fd fd_evdev, cmd const[UI_BEGIN_FF_UPLOAD], arg ptr[inout, uinput_ff_upload])
ioctl$UI_END_FF_UPLOAD(fd fd_evdev, cmd const[UI_END_FF_UPLOAD], arg ptr[in, uinput_ff_upload])
ioctl$UI_BEGIN_FF_ERASE(fd fd_evdev, cmd const[UI_BEGIN_FF_ERASE], arg ptr[inout, uinput_ff_erase])
ioctl$UI_END_FF_ERASE(fd fd_evdev, cmd const[UI_END_FF_ERASE], arg ptr[in, uinput_ff_erase])
ioctl$UI_SET_BSDUNIQ(fd fd_evdev, cmd const[UI_SET_BSDUNIQ])
ioctl$EVIOCGNAME(fd fd_evdev, cmd const[EVIOCGNAME_CONST])
ioctl$EVIOCGPHYS(fd fd_evdev, cmd const[EVIOCGPHYS_CONST])
ioctl$EVIOCGUNIQ(fd fd_evdev, cmd const[EVIOCGUNIQ_CONST])
ioctl$EVIOCGPROP(fd fd_evdev, cmd const[EVIOCGPROP_CONST])
ioctl$EVIOCGMTSLOTS(fd fd_evdev, cmd const[EVIOCGMTSLOTS_CONST])
ioctl$EVIOCGLED(fd fd_evdev, cmd const[EVIOCGLED_CONST])
ioctl$EVIOCGKEY(fd fd_evdev, cmd const[EVIOCGKEY_CONST])
ioctl$EVIOCGSND(fd fd_evdev, cmd const[EVIOCGSND_CONST])
ioctl$EVIOCGSW(fd fd_evdev, cmd const[EVIOCGSW_CONST])
ioctl$EVIOCGBIT(fd fd_evdev, cmd intptr[EVIOCGBIT_MIN:EVIOCGBIT_MAX])

input_id {
	bustype	int16
	vendor	int16
	product	int16
	version	int16
}

input_keymap_entry {
	flags		int8
	len		int8
	index		int16
	keycode		int32
	scancode	array[int8, 32]
}

input_absinfo {
	value		int32
	minimum		int32
	maximum		int32
	fuzz		int32
	flat		int32
	resolution	int32
}

ff_effect {
	type		int16[FF_EFFECT_MIN:FF_EFFECT_MAX]
	id		int16
	direction	int16
	trigger		ff_trigger
	replay		ff_replay
	u		u
}

ff_trigger {
	button		int16
	interval	int16
}

ff_replay {
	length	int16
	delay	int16
}

ff_constant_effect {
	level		int16
	envelope	ff_envelope
}

ff_envelope {
	attack_length	len[attack_level, int16]
	attack_level	int16
	fade_length	len[fade_level, int16]
	fade_level	int16
}

ff_ramp_effect {
	start_level	int16
	end_level	int16
	envelope	ff_envelope
}

ff_periodic_effect {
	waveform	int16[FF_WAVEFORM_MIN:FF_WAVEFORM_MAX]
	period		int16
	magnitude	int16
	offset		int16
	phase		int16
	envelope	ff_envelope
	custom_len	len[custom_data, int32]
	custom_data	ptr[in, int16]
}

ff_condition_effect {
	right_saturation	int16
	left_saturation		int16
	right_coeff		int16
	left_coeff		int16
	deadband		int16
	center			int16
}

ff_rumble_effect {
	strong_magnitude	int16
	weak_magnitude		int16
}

uinput_setup {
	id		input_id
	name		array[int8, 80]
	ff_effects_max	int32
}

uinput_abs_setup {
	code	int16
	absinfo	input_absinfo
}

uinput_ff_upload {
	request_id	int32
	retval		int32
	effect		ff_effect
	old		ff_effect
}

uinput_ff_erase {
	request_id	int32
	retval		int32
	effect_id	int32
}

u [
	constant	ff_constant_effect
	ramp		ff_ramp_effect
	periodic	ff_periodic_effect
	condition	array[ff_condition_effect, 2]
	rumble		ff_rumble_effect
]