aboutsummaryrefslogtreecommitdiffstats
path: root/sys/freebsd/dev_kbd.txt
diff options
context:
space:
mode:
authorSimran Kathpalia <skathpalia3@gmail.com>2021-06-23 03:22:38 +0530
committerMark Johnston <markjdb@gmail.com>2021-06-29 14:59:07 -0400
commitb4bbe51376e8953f0a69ffe1e95655f9d943cfce (patch)
tree23ae3c6220006c0a0590c7148c60b3805bb37d3a /sys/freebsd/dev_kbd.txt
parent9d2ab5dfe7727dfea4b9b279f4edf731acb386ef (diff)
sys/freebsd: added kbd(4)
Diffstat (limited to 'sys/freebsd/dev_kbd.txt')
-rw-r--r--sys/freebsd/dev_kbd.txt107
1 files changed, 107 insertions, 0 deletions
diff --git a/sys/freebsd/dev_kbd.txt b/sys/freebsd/dev_kbd.txt
new file mode 100644
index 000000000..9cf6834de
--- /dev/null
+++ b/sys/freebsd/dev_kbd.txt
@@ -0,0 +1,107 @@
+# 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$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 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