From 201c1d0d25ee5ac50092a7334b7ebfa238ce2c0f Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Mon, 13 Jun 2022 11:39:55 -0600 Subject: [PATCH] kboot: sort system calls Sort the system calls. No functional change intended. Sponsored by: Netflix --- stand/kboot/host_syscall.h | 34 +++++++++++------ stand/kboot/host_syscalls.c | 73 ++++++++++++++++++++----------------- 2 files changed, 62 insertions(+), 45 deletions(-) diff --git a/stand/kboot/host_syscall.h b/stand/kboot/host_syscall.h index f6f22a736d53..b7861e1af6f1 100644 --- a/stand/kboot/host_syscall.h +++ b/stand/kboot/host_syscall.h @@ -32,13 +32,9 @@ long host_syscall(int number, ...); -ssize_t host_read(int fd, void *buf, size_t nbyte); -ssize_t host_write(int fd, const void *buf, size_t nbyte); -int host_open(const char *path, int flags, int mode); -ssize_t host_llseek(int fd, int32_t offset_high, int32_t offset_lo, uint64_t *result, int whence); -int host_close(int fd); -void *host_mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off); -#define host_getmem(size) host_mmap(0, size, 3 /* RW */, 0x22 /* ANON */, -1, 0); +/* + * Data types + */ struct old_utsname { char sysname[65]; char nodename[65]; @@ -46,16 +42,32 @@ struct old_utsname { char version[65]; char machine[65]; }; -int host_uname(struct old_utsname *); + struct host_timeval { time_t tv_sec; long tv_usec; }; + +/* + * System Calls + */ +int host_close(int fd); +int host_getdents(int fd, void *dirp, int count); int host_gettimeofday(struct host_timeval *a, void *b); +int kexec_load(uint32_t start, int nsegs, uint32_t segs); +ssize_t host_llseek(int fd, int32_t offset_high, int32_t offset_lo, uint64_t *result, int whence); +void *host_mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off); +int host_open(const char *path, int flags, int mode); +ssize_t host_read(int fd, void *buf, size_t nbyte); +int host_reboot(int, int, int, uintptr_t); int host_select(int nfds, long *readfds, long *writefds, long *exceptfds, struct host_timeval *timeout); -int kexec_load(uint32_t start, int nsegs, uint32_t segs); -int host_reboot(int, int, int, uintptr_t); -int host_getdents(int fd, void *dirp, int count); +int host_uname(struct old_utsname *); +ssize_t host_write(int fd, const void *buf, size_t nbyte); + +/* + * Wrappers / one-liners + */ +#define host_getmem(size) host_mmap(0, size, 3 /* RW */, 0x22 /* ANON */, -1, 0); #endif diff --git a/stand/kboot/host_syscalls.c b/stand/kboot/host_syscalls.c index fd14095d7d68..3a5cdd7d8ea4 100644 --- a/stand/kboot/host_syscalls.c +++ b/stand/kboot/host_syscalls.c @@ -2,24 +2,33 @@ #include "syscall_nr.h" #include -ssize_t -host_read(int fd, void *buf, size_t nbyte) +/* + * Various trivial wrappers for Linux system calls. Please keep sorted + * alphabetically. + */ + +int +host_close(int fd) { - return host_syscall(SYS_read, fd, (uintptr_t)buf, nbyte); - /* XXX original overrode errors */ + return host_syscall(SYS_close, fd); } -ssize_t -host_write(int fd, const void *buf, size_t nbyte) -{ - return host_syscall(SYS_write, fd, (uintptr_t)buf, nbyte); -} - int -host_open(const char *path, int flags, int mode) +host_getdents(int fd, void *dirp, int count) { - return host_syscall(SYS_open, (uintptr_t)path, flags, mode); - /* XXX original overrode errors */ + return host_syscall(SYS_getdents, fd, (uintptr_t)dirp, count); +} + +int +host_gettimeofday(struct host_timeval *a, void *b) +{ + return host_syscall(SYS_gettimeofday, (uintptr_t)a, (uintptr_t)b); +} + +int +kexec_load(uint32_t start, int nsegs, uint32_t segs) +{ + return host_syscall(SYS_kexec_load, start, nsegs, segs, KEXEC_ARCH << 16); } ssize_t @@ -36,12 +45,6 @@ host_llseek(int fd, int32_t offset_high, int32_t offset_lo, uint64_t *result, in #endif } -int -host_close(int fd) -{ - return host_syscall(SYS_close, fd); -} - void * host_mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off) { @@ -49,15 +52,23 @@ host_mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off) } int -host_uname(struct old_utsname *uts) +host_open(const char *path, int flags, int mode) { - return host_syscall(SYS_uname, (uintptr_t)uts); + return host_syscall(SYS_open, (uintptr_t)path, flags, mode); + /* XXX original overrode errors */ +} + +ssize_t +host_read(int fd, void *buf, size_t nbyte) +{ + return host_syscall(SYS_read, fd, (uintptr_t)buf, nbyte); + /* XXX original overrode errors */ } int -host_gettimeofday(struct host_timeval *a, void *b) +host_reboot(int magic1, int magic2, int cmd, uintptr_t arg) { - return host_syscall(SYS_gettimeofday, (uintptr_t)a, (uintptr_t)b); + return host_syscall(SYS_reboot, magic1, magic2, cmd, arg); } int @@ -68,19 +79,13 @@ host_select(int nfds, long *readfds, long *writefds, long *exceptfds, } int -kexec_load(uint32_t start, int nsegs, uint32_t segs) +host_uname(struct old_utsname *uts) { - return host_syscall(SYS_kexec_load, start, nsegs, segs, KEXEC_ARCH << 16); + return host_syscall(SYS_uname, (uintptr_t)uts); } -int -host_reboot(int magic1, int magic2, int cmd, uintptr_t arg) +ssize_t +host_write(int fd, const void *buf, size_t nbyte) { - return host_syscall(SYS_reboot, magic1, magic2, cmd, arg); -} - -int -host_getdents(int fd, void *dirp, int count) -{ - return host_syscall(SYS_getdents, fd, (uintptr_t)dirp, count); + return host_syscall(SYS_write, fd, (uintptr_t)buf, nbyte); }