diff options
author | Warner Losh <imp@FreeBSD.org> | 2022-07-26 23:30:30 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2023-01-24 21:49:28 +0000 |
commit | cb86911127e8d9a0fedead92ba5bb9aa34c3c885 (patch) | |
tree | 903686ce8c0709976f2c442d362658aea66e3692 | |
parent | fce2a0a930a7680a4725746a274d61a7ff84ac9d (diff) | |
download | src-cb86911127e8d9a0fedead92ba5bb9aa34c3c885.tar.gz src-cb86911127e8d9a0fedead92ba5bb9aa34c3c885.zip |
kboot: Implement host_ioctl
Sponsored by: Netflix
(cherry picked from commit 54e6e0deb4853dae7e97e7d5659c05e95bebac32)
-rw-r--r-- | stand/kboot/arch/aarch64/syscall_nr.h | 1 | ||||
-rw-r--r-- | stand/kboot/arch/amd64/syscall_nr.h | 1 | ||||
-rw-r--r-- | stand/kboot/arch/powerpc64/syscall_nr.h | 1 | ||||
-rw-r--r-- | stand/kboot/host_syscall.h | 1 | ||||
-rw-r--r-- | stand/kboot/host_syscalls.c | 6 |
5 files changed, 10 insertions, 0 deletions
diff --git a/stand/kboot/arch/aarch64/syscall_nr.h b/stand/kboot/arch/aarch64/syscall_nr.h index 79bf22947e94..83069dd8dc76 100644 --- a/stand/kboot/arch/aarch64/syscall_nr.h +++ b/stand/kboot/arch/aarch64/syscall_nr.h @@ -5,6 +5,7 @@ #define SYS_getdents64 61 #define SYS_getpid 172 #define SYS_gettimeofday 169 +#define SYS_ioctl 29 #define SYS_lseek 62 #define SYS_kexec_load 104 #define SYS_mkdirat 34 diff --git a/stand/kboot/arch/amd64/syscall_nr.h b/stand/kboot/arch/amd64/syscall_nr.h index 71469109a55e..2cf26d7ca4dc 100644 --- a/stand/kboot/arch/amd64/syscall_nr.h +++ b/stand/kboot/arch/amd64/syscall_nr.h @@ -4,6 +4,7 @@ #define SYS_getdents64 217 #define SYS_getpid 39 #define SYS_gettimeofday 96 +#define SYS_ioctl 16 #define SYS_kexec_load 246 #define SYS_lseek 8 #define SYS_mkdirat 258 diff --git a/stand/kboot/arch/powerpc64/syscall_nr.h b/stand/kboot/arch/powerpc64/syscall_nr.h index 7b425e36c517..71f2452c9124 100644 --- a/stand/kboot/arch/powerpc64/syscall_nr.h +++ b/stand/kboot/arch/powerpc64/syscall_nr.h @@ -5,6 +5,7 @@ #define SYS_getdents64 202 #define SYS_getpid 20 #define SYS_gettimeofday 78 +#define SYS_ioctl 54 #define SYS_kexec_load 268 #define SYS_llseek 140 #define SYS_mkdirat 287 diff --git a/stand/kboot/host_syscall.h b/stand/kboot/host_syscall.h index 09f5355e520d..0029004f675a 100644 --- a/stand/kboot/host_syscall.h +++ b/stand/kboot/host_syscall.h @@ -160,6 +160,7 @@ int host_fstat(int fd, struct host_kstat *sb); int host_getdents64(int fd, void *dirp, int count); int host_getpid(void); int host_gettimeofday(struct host_timeval *a, void *b); +int host_ioctl(int fd, unsigned long request, unsigned long arg); int host_kexec_load(unsigned long entry, unsigned long nsegs, struct host_kexec_segment *segs, unsigned long flags); ssize_t host_llseek(int fd, int32_t offset_high, int32_t offset_lo, uint64_t *result, int whence); int host_mkdir(const char *, host_mode_t); diff --git a/stand/kboot/host_syscalls.c b/stand/kboot/host_syscalls.c index 8b364083b15c..1ffa04948fdf 100644 --- a/stand/kboot/host_syscalls.c +++ b/stand/kboot/host_syscalls.c @@ -55,6 +55,12 @@ host_gettimeofday(struct host_timeval *a, void *b) } int +host_ioctl(int fd, unsigned long request, unsigned long arg) +{ + return host_syscall(SYS_ioctl, fd, request, arg); +} + +int host_kexec_load(unsigned long entry, unsigned long nsegs, struct host_kexec_segment *segs, unsigned long flags) { return host_syscall(SYS_kexec_load, entry, nsegs, segs, flags); |