diff options
author | Stacey Son <sson@FreeBSD.org> | 2023-09-25 21:24:20 +0300 |
---|---|---|
committer | Warner Losh <imp@bsdimp.com> | 2023-10-03 17:14:06 -0600 |
commit | ae502887cb3e3aa38bc0837cd7580f7a6768a649 (patch) | |
tree | 2a5bd6f939b255e362044bfbe8b424a7bebc7ca6 /bsd-user/freebsd/os-syscall.c | |
parent | 36999e6a6bb1e3c7d7d40c751b67d5886f023ee9 (diff) | |
download | qemu-ae502887cb3e3aa38bc0837cd7580f7a6768a649.zip qemu-ae502887cb3e3aa38bc0837cd7580f7a6768a649.tar.gz qemu-ae502887cb3e3aa38bc0837cd7580f7a6768a649.tar.bz2 |
bsd-user: Implement wait4(2) and wait6(2) system calls.
Signed-off-by: Stacey Son <sson@FreeBSD.org>
Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Message-Id: <20230925182425.3163-24-kariem.taha2.7@gmail.com>
Diffstat (limited to 'bsd-user/freebsd/os-syscall.c')
-rw-r--r-- | bsd-user/freebsd/os-syscall.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index 515eaaf..55e68e4 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -40,6 +40,12 @@ #include "os-stat.h" #include "os-proc.h" +/* used in os-proc */ +safe_syscall4(pid_t, wait4, pid_t, wpid, int *, status, int, options, + struct rusage *, rusage); +safe_syscall6(pid_t, wait6, idtype_t, idtype, id_t, id, int *, status, int, + options, struct __wrusage *, wrusage, siginfo_t *, infop); + /* I/O */ safe_syscall3(int, open, const char *, path, int, flags, mode_t, mode); safe_syscall4(int, openat, int, fd, const char *, path, int, flags, mode_t, @@ -228,6 +234,15 @@ static abi_long freebsd_syscall(void *cpu_env, int num, abi_long arg1, ret = do_freebsd_fexecve(arg1, arg2, arg3); break; + case TARGET_FREEBSD_NR_wait4: /* wait4(2) */ + ret = do_freebsd_wait4(arg1, arg2, arg3, arg4); + break; + + case TARGET_FREEBSD_NR_wait6: /* wait6(2) */ + ret = do_freebsd_wait6(cpu_env, arg1, arg2, arg3, + arg4, arg5, arg6, arg7, arg8); + break; + case TARGET_FREEBSD_NR_exit: /* exit(2) */ ret = do_bsd_exit(cpu_env, arg1); break; |