diff options
-rw-r--r-- | linux-user/ioctls.h | 1 | ||||
-rw-r--r-- | linux-user/syscall.c | 7 | ||||
-rw-r--r-- | linux-user/syscall_defs.h | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 309fb21759..f278d3e989 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -64,6 +64,7 @@ IOCTL(KDSKBLED, 0, TYPE_INT) IOCTL(KDGETLED, 0, TYPE_INT) IOCTL(KDSETLED, 0, TYPE_INT) + IOCTL_SPECIAL(KDSIGACCEPT, 0, do_ioctl_kdsigaccept, TYPE_INT) IOCTL(BLKROSET, IOC_W, MK_PTR(TYPE_INT)) IOCTL(BLKROGET, IOC_R, MK_PTR(TYPE_INT)) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 8e2762b0ed..5a272d3d08 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -3689,6 +3689,13 @@ static abi_long do_ioctl_rt(const IOCTLEntry *ie, uint8_t *buf_temp, return ret; } +static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp, + int fd, abi_long cmd, abi_long arg) +{ + int sig = target_to_host_signal(arg); + return get_errno(ioctl(fd, ie->host_cmd, sig)); +} + static IOCTLEntry ioctl_entries[] = { #define IOCTL(cmd, access, ...) \ { TARGET_ ## cmd, cmd, #cmd, access, 0, { __VA_ARGS__ } }, diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index a1f1fce921..4adfd3a400 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -831,6 +831,7 @@ struct target_pollfd { #define TARGET_KDSKBLED 0x4B65 /* set led flags (not lights) */ #define TARGET_KDGETLED 0x4B31 /* return current led state */ #define TARGET_KDSETLED 0x4B32 /* set led state [lights, not flags] */ +#define TARGET_KDSIGACCEPT 0x4B4E #define TARGET_SIOCATMARK 0x8905 |