aboutsummaryrefslogtreecommitdiffstats
path: root/sys/freebsd/dev_kbd.txt
blob: c2147311f1f352b8b15484b7b2d4e5f8c2ec794c (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
# 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