Author: bga Date: 2009-11-17 16:53:17 +0100 (Tue, 17 Nov 2009) New Revision: 34091 Changeset: http://dev.haiku-os.org/changeset/34091/haiku Added: haiku/trunk/headers/compatibility/bsd/sys/wait.h haiku/trunk/src/libs/bsd/wait.c Modified: haiku/trunk/src/libs/bsd/Jamfile Log: - Added wait3() and wait4() to the bsd compatibility library. - Untested, but should work (will test it when I get home later today). - This is my first attempt at adding something for compatibility reasons. Let me know if something in wrong. Added: haiku/trunk/headers/compatibility/bsd/sys/wait.h =================================================================== --- haiku/trunk/headers/compatibility/bsd/sys/wait.h (rev 0) +++ haiku/trunk/headers/compatibility/bsd/sys/wait.h 2009-11-17 15:53:17 UTC (rev 34091) @@ -0,0 +1,25 @@ +/* + * Copyright 2009, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef _BSD_SYS_WAIT_H_ +#define _BSD_SYS_WAIT_H_ + + +#include_next <sys/wait.h> + +#include <sys/resource.h> + +#ifdef __cplusplus +extern "C" { +#endif + +pid_t wait3(int *status, int options, struct rusage *rusage); + +pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage); + +#ifdef __cplusplus +} +#endif + +#endif /* _BSD_SYS_WAIT_H_ */ Modified: haiku/trunk/src/libs/bsd/Jamfile =================================================================== --- haiku/trunk/src/libs/bsd/Jamfile 2009-11-17 14:56:51 UTC (rev 34090) +++ haiku/trunk/src/libs/bsd/Jamfile 2009-11-17 15:53:17 UTC (rev 34091) @@ -18,4 +18,5 @@ unvis.c usershell.c vis.c + wait.c ; Added: haiku/trunk/src/libs/bsd/wait.c =================================================================== --- haiku/trunk/src/libs/bsd/wait.c (rev 0) +++ haiku/trunk/src/libs/bsd/wait.c 2009-11-17 15:53:17 UTC (rev 34091) @@ -0,0 +1,26 @@ +/* + * Copyright 2009, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Bruno Albuquerque, bga@xxxxxxxxxxxxx + */ + + +#include <sys/wait.h> + + +pid_t +wait3(int *status, int options, struct rusage *rusage) { + return wait4(-1, status, options, rusage); +} + + +pid_t +wait4(pid_t pid, int *status, int options, struct rusage *rusage) { + pid_t waitPid = waitpid(pid, status, options); + getrusage(RUSAGE_CHILDREN, rusage); + + return waitPid; +} +