diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 68f248d63f..dc1a378055 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -51,7 +51,11 @@ IOCTL(TIOCMIWAIT, 0, TYPE_INT) IOCTL(TIOCGICOUNT, IOC_R, MK_PTR(MK_STRUCT(STRUCT_serial_icounter_struct))) - IOCTL(KDGKBTYPE, IOC_W, MK_PTR(TYPE_CHAR)) + IOCTL(KIOCSOUND, 0, TYPE_INT) + IOCTL(KDMKTONE, 0, TYPE_INT) + IOCTL(KDGKBTYPE, IOC_R, MK_PTR(TYPE_CHAR)) + IOCTL(KDGKBENT, IOC_RW, MK_PTR(MK_STRUCT(STRUCT_kbentry))) + IOCTL(KDGKBSENT, IOC_RW, TYPE_PTRVOID) IOCTL(BLKROSET, IOC_W, MK_PTR(TYPE_INT)) IOCTL(BLKROGET, IOC_R, MK_PTR(TYPE_INT)) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 4dbc66333d..bad9bd848f 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -213,7 +213,11 @@ struct target_pollfd { }; /* virtual terminal ioctls */ +#define TARGET_KIOCSOUND 0x4B2F /* start sound generation (0 for off) */ +#define TARGET_KDMKTONE 0x4B30 /* generate tone */ #define TARGET_KDGKBTYPE 0x4b33 +#define TARGET_KDGKBENT 0x4B46 /* gets one entry in translation table */ +#define TARGET_KDGKBSENT 0x4B48 /* gets one function key string entry */ /* Networking ioctls */ #define TARGET_SIOCADDRT 0x890B /* add routing table entry */ diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h index e9ec148165..093a122074 100644 --- a/linux-user/syscall_types.h +++ b/linux-user/syscall_types.h @@ -64,3 +64,6 @@ STRUCT(hd_geometry, STRUCT(dirent, TYPE_LONG, TYPE_LONG, TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 256)) + +STRUCT(kbentry, + TYPE_CHAR, TYPE_CHAR, TYPE_SHORT)