blob: 317ee5de611709e146b7a79802ee1927fde20e05 [file] [log] [blame]
# Copyright 2018 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.
include <uapi/linux/fcntl.h>
include <uapi/linux/uhid.h>
resource fd_uhid[fd]
openat$uhid(fd const[AT_FDCWD], file ptr[in, string["/dev/uhid"]], flags flags[uhid_open_flags], mode const[0]) fd_uhid
write$UHID_CREATE(fd fd_uhid, data ptr[in, uhid_create_req], len len[data])
write$UHID_CREATE2(fd fd_uhid, data ptr[in, uhid_create2_req], len len[data])
write$UHID_DESTROY(fd fd_uhid, data ptr[in, uhid_destroy_req], len len[data])
write$UHID_INPUT(fd fd_uhid, data ptr[in, uhid_input_req], len len[data])
write$UHID_INPUT2(fd fd_uhid, data ptr[in, uhid_input2_req], len len[data])
write$UHID_GET_REPORT_REPLY(fd fd_uhid, data ptr[in, uhid_get_report_req], len len[data])
write$UHID_SET_REPORT_REPLY(fd fd_uhid, data ptr[in, uhid_set_report_req], len len[data])
uhid_create_req {
type const[UHID_CREATE, int32]
name string[uhid_names, 128]
phys string[uhid_names, 64]
uniq string[uhid_names, 64]
rd_data ptr[out, array[int8]]
rd_size len[rd_data, int16]
bus int16
vendor int32
product int32
version int32
country int32
} [packed]
uhid_create2_req {
type const[UHID_CREATE2, int32]
name string[uhid_names, 128]
phys string[uhid_names, 64]
uniq string[uhid_names, 64]
rd_size len[rd_data, int16]
bus int16
vendor int32
product int32
version int32
country int32
rd_data array[int8]
} [packed]
uhid_destroy_req {
type const[UHID_DESTROY, int32]
} [packed]
uhid_input_req {
type const[UHID_INPUT, int32]
data array[int8, UHID_DATA_MAX]
size len[data, int16]
} [packed]
uhid_input2_req {
type const[UHID_INPUT2, int32]
size len[data, int16]
data array[int8]
} [packed]
uhid_get_report_req {
type const[UHID_GET_REPORT_REPLY, int32]
id int32[0:10]
rnum int8
rtype int8
} [packed]
uhid_set_report_req {
type const[UHID_SET_REPORT_REPLY, int32]
id int32[0:10]
rnum int8
rtype int8
size len[data, int16]
data array[int8]
} [packed]
uhid_names = "syz0", "syz1"
uhid_open_flags = O_RDWR, O_RDWR_NONBLOCK
define O_RDWR_NONBLOCK O_RDWR | O_NONBLOCK