1*29346ab0SDavid van Moolenbroek #include <sys/cdefs.h> 2*29346ab0SDavid van Moolenbroek #include <lib.h> 3*29346ab0SDavid van Moolenbroek #include "namespace.h" 4*29346ab0SDavid van Moolenbroek 5*29346ab0SDavid van Moolenbroek #include <string.h> 6*29346ab0SDavid van Moolenbroek #include <sys/wait.h> 7*29346ab0SDavid van Moolenbroek 8*29346ab0SDavid van Moolenbroek #ifdef __weak_alias __weak_alias(wait4,__wait450)9*29346ab0SDavid van Moolenbroek__weak_alias(wait4, __wait450) 10*29346ab0SDavid van Moolenbroek #endif 11*29346ab0SDavid van Moolenbroek 12*29346ab0SDavid van Moolenbroek pid_t 13*29346ab0SDavid van Moolenbroek wait4(pid_t pid, int * status, int options, struct rusage * rusage) 14*29346ab0SDavid van Moolenbroek { 15*29346ab0SDavid van Moolenbroek message m; 16*29346ab0SDavid van Moolenbroek 17*29346ab0SDavid van Moolenbroek memset(&m, 0, sizeof(m)); 18*29346ab0SDavid van Moolenbroek m.m_lc_pm_wait4.pid = pid; 19*29346ab0SDavid van Moolenbroek m.m_lc_pm_wait4.options = options; 20*29346ab0SDavid van Moolenbroek m.m_lc_pm_wait4.addr = (vir_bytes)rusage; 21*29346ab0SDavid van Moolenbroek 22*29346ab0SDavid van Moolenbroek if (_syscall(PM_PROC_NR, PM_WAIT4, &m) < 0) return(-1); 23*29346ab0SDavid van Moolenbroek 24*29346ab0SDavid van Moolenbroek if (status != NULL) *status = m.m_pm_lc_wait4.status; 25*29346ab0SDavid van Moolenbroek return m.m_type; 26*29346ab0SDavid van Moolenbroek } 27