diff options
| author | Simran Kathpalia <skathpalia3@gmail.com> | 2021-06-23 03:22:38 +0530 |
|---|---|---|
| committer | Mark Johnston <markjdb@gmail.com> | 2021-06-29 14:59:07 -0400 |
| commit | b4bbe51376e8953f0a69ffe1e95655f9d943cfce (patch) | |
| tree | 23ae3c6220006c0a0590c7148c60b3805bb37d3a /sys/freebsd/dev_kbd.txt | |
| parent | 9d2ab5dfe7727dfea4b9b279f4edf731acb386ef (diff) | |
sys/freebsd: added kbd(4)
Diffstat (limited to 'sys/freebsd/dev_kbd.txt')
| -rw-r--r-- | sys/freebsd/dev_kbd.txt | 107 |
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 |
