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
|
# 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.
include <sys/types.h>
include <kbio.h>
include <consio.h>
include <fcntl.h>
resource fd_kbd[fd]
openat$kbd(fd const[AT_FDCWD], file ptr[in, string["/dev/kbd"]], flags flags[open_flags], mode const[0]) fd_kbd
ioctl$KDGKBMODE(fd fd_kbd, cmd const[KDGKBMODE], arg int32)
ioctl$KDSKBMODE(fd fd_kbd, cmd const[KDSKBMODE])
ioctl$KDMKTONE(fd fd_kbd, cmd const[KDMKTONE])
ioctl$KDGETMODE(fd fd_kbd, cmd const[KDGETMODE], arg int32)
ioctl$KDSETMODE(fd fd_kbd, cmd const[KDSETMODE])
ioctl$KDSBORDER(fd fd_kbd, cmd const[KDSBORDER])
ioctl$KDGKBSTATE(fd fd_kbd, cmd const[KDGKBSTATE], arg int32)
ioctl$KDSKBSTATE(fd fd_kbd, cmd const[KDSKBSTATE])
ioctl$KDENABIO(fd fd_kbd, cmd const[KDENABIO])
ioctl$KDDISABIO(fd fd_kbd, cmd const[KDDISABIO])
ioctl$KIOCSOUND(fd fd_kbd, cmd const[KIOCSOUND])
ioctl$KDGKBTYPE(fd fd_kbd, cmd const[KDGKBTYPE], arg int32)
ioctl$KDGETLED(fd fd_kbd, cmd const[KDGETLED], arg int32)
ioctl$KDSETLED(fd fd_kbd, cmd const[KDSETLED])
ioctl$KDSETRAD(fd fd_kbd, cmd const[KDSETRAD])
ioctl$KBADDKBD(fd fd_kbd, cmd const[KBADDKBD], arg ptr[in, keyboard_info])
ioctl$KBRELKBD(fd fd_kbd, cmd const[KBRELKBD], arg ptr[in, keyboard_info])
ioctl$KDRASTER(fd fd_kbd, cmd const[KDRASTER], arg ptr[in, scr_size])
ioctl$KDGKBINFO(fd fd_kbd, cmd const[KDGKBINFO], arg ptr[out, keyboard_info])
ioctl$KDSETREPEAT(fd fd_kbd, cmd const[KDSETREPEAT], arg ptr[in, keyboard_repeat])
ioctl$KDGETREPEAT(fd fd_kbd, cmd const[KDGETREPEAT], arg ptr[out, keyboard_repeat])
ioctl$GETFKEY(fd fd_kbd, cmd const[GETFKEY], arg ptr[inout, fkeyarg])
ioctl$SETFKEY(fd fd_kbd, cmd const[SETFKEY], arg ptr[inout, fkeyarg])
ioctl$GIO_SCRNMAP(fd fd_kbd, cmd const[GIO_SCRNMAP], arg ptr[out, scrmap])
ioctl$PIO_SCRNMAP(fd fd_kbd, cmd const[PIO_SCRNMAP], arg ptr[in, scrmap])
ioctl$GIO_KEYMAP(fd fd_kbd, cmd const[GIO_KEYMAP])
ioctl$PIO_KEYMAP(fd fd_kbd, cmd const[PIO_KEYMAP])
ioctl$OGIO_KEYMAP(fd fd_kbd, cmd const[OGIO_KEYMAP], arg ptr[out, okeymap])
ioctl$OPIO_KEYMAP(fd fd_kbd, cmd const[OPIO_KEYMAP], arg ptr[in, okeymap])
ioctl$GIO_DEADKEYMAP(fd fd_kbd, cmd const[GIO_DEADKEYMAP], arg ptr[out, accentmap])
ioctl$PIO_DEADKEYMAP(fd fd_kbd, cmd const[PIO_DEADKEYMAP], arg ptr[in, accentmap])
ioctl$OGIO_DEADKEYMAP(fd fd_kbd, cmd const[OGIO_DEADKEYMAP], arg ptr[out, oaccentmap])
ioctl$OPIO_DEADKEYMAP(fd fd_kbd, cmd const[OPIO_DEADKEYMAP], arg ptr[in, oaccentmap])
ioctl$GIO_KEYMAPENT(fd fd_kbd, cmd const[GIO_KEYMAPENT], arg ptr[inout, keyarg])
ioctl$PIO_KEYMAPENT(fd fd_kbd, cmd const[PIO_KEYMAPENT], arg ptr[in, keyarg])
keyboard_info {
kb_index int32
kb_name array[int8, MAXFK]
kb_unit int32
kb_type int32
kb_config int32
kb_flags int32
}
keyboard_repeat {
kb_repeat array[int32, 2]
}
fkeyarg {
keynum int16
keydef array[int8, MAXFK]
flen int8
}
okeymap {
n_keys int16
key array[okeyent_t, NUM_KEYS]
}
okeyent_t {
map array[int8, NUM_STATES]
spcl flags[special_keys, int8]
flgs int8
}
accentmap {
n_accs int16
acc array[acc_t, NUM_DEADKEYS]
}
acc_t {
accchar int32
map array[int32, 104]
}
oaccentmap {
n_accs int16
acc array[oacc_t, NUM_DEADKEYS]
}
oacc_t {
accchar int8
map array[int8, 104]
}
keyarg {
keynum int16
key keyent_t
}
keyent_t {
map array[int32, NUM_STATES]
spcl int8
flgs flags[keyent_flags, int8]
}
scrmap {
scrmap array[int8, 256]
}
scr_size {
scr_size array[int32, 3]
}
keyent_flags = FLAG_LOCK_O, FLAG_LOCK_C, FLAG_LOCK_N
special_keys = NOP, LSH, RSH, CLK, NLK, SLK, LALT, BTAB, LCTR, NEXT, F_SCR, L_SCR, F_FN, L_FN, RCTR, RALT, ALK, ASH, META, RBT, DBG, SUSP, SPSC, F_ACC, DGRA, DACU, DCIR, DTIL, DMAC, DBRE, DDOT, DUML, DDIA, DSLA, DRIN, DCED, DAPO, DDAC, DOGO, DCAR, L_ACC, STBY, PREV, PNC, LSHA, RSHA, LCTRA, RCTRA, LALTA, RALTA, HALT, PDWN, PASTE
|