this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add sys_waitid() implementation

+44
+1
src/kernel/emulation/linux/CMakeLists.txt
··· 56 56 process/vfork.c 57 57 process/fork.c 58 58 process/wait4.c 59 + process/waitid.c 59 60 signal/duct_signals.c 60 61 signal/kill.c 61 62 signal/sigaltstack.c
+27
src/kernel/emulation/linux/process/waitid.c
··· 1 + #include "waitid.h" 2 + #include "../base.h" 3 + #include "../errno.h" 4 + #include "../signal/duct_signals.h" 5 + #include "wait4.h" 6 + #include <asm/unistd.h> 7 + #include <stddef.h> 8 + 9 + long sys_waitid(int idtype, int id, struct simple_siginfo* si, int options) 10 + { 11 + int ret, linux_options; 12 + 13 + linux_options = waitopts_bsd_to_linux(options); 14 + 15 + ret = LINUX_SYSCALL(__NR_waitid, idtype, id, si, linux_options); 16 + if (ret < 0) 17 + return errno_linux_to_bsd(ret); 18 + 19 + if (si != NULL) 20 + { 21 + si->si_signo = signum_linux_to_bsd(si->si_signo); 22 + si->si_errno = errno_linux_to_bsd(si->si_errno); 23 + } 24 + 25 + return ret; 26 + } 27 +
+14
src/kernel/emulation/linux/process/waitid.h
··· 1 + #ifndef LINUX_WAITID_H 2 + #define LINUX_WAITID_H 3 + 4 + struct simple_siginfo 5 + { 6 + int si_signo; 7 + int si_errno; 8 + int si_code; 9 + }; 10 + 11 + long sys_waitid(int idtype, int id, struct simple_siginfo* si, int options); 12 + 13 + #endif 14 +
+2
src/kernel/emulation/linux/syscalls.c
··· 46 46 #include "signal/sigreturn.h" 47 47 #include "process/vfork.h" 48 48 #include "process/wait4.h" 49 + #include "process/waitid.h" 49 50 #include "misc/ioctl.h" 50 51 #include "misc/getrlimit.h" 51 52 #include "misc/thread_selfid.h" ··· 139 140 [154] = sys_pwrite, 140 141 [157] = sys_statfs, 141 142 [158] = sys_fstatfs, 143 + [173] = sys_waitid, 142 144 [181] = sys_setgid, 143 145 [182] = sys_setegid, 144 146 [183] = sys_seteuid,