linux(4): Add support for __WALL wait option bit.
As FreeBSD does not have __WALL option bit analogue explicitly set all possible option bits to emulate Linux __WALL wait option bit. Reviewed by: emaste Differential revision: https://reviews.freebsd.org/D31555 MFC after: 2 weeks
This commit is contained in:
parent
d7e1e138ec
commit
c7ef7c3fac
@ -1063,6 +1063,14 @@ linux_wait4(struct thread *td, struct linux_wait4_args *args)
|
||||
*/
|
||||
options |= WEXITED | WTRAPPED;
|
||||
|
||||
/*
|
||||
* As FreeBSD does not have __WALL option bit analogue explicitly set all
|
||||
* possible option bits to emulate Linux __WALL wait option bit. The same
|
||||
* for waitid system call.
|
||||
*/
|
||||
if ((args->options & __WALL) != 0)
|
||||
options |= WUNTRACED | WCONTINUED | WLINUXCLONE;
|
||||
|
||||
if (args->pid == WAIT_ANY) {
|
||||
idtype = P_ALL;
|
||||
id = 0;
|
||||
@ -1096,6 +1104,9 @@ linux_waitid(struct thread *td, struct linux_waitid_args *args)
|
||||
|
||||
options = 0;
|
||||
linux_to_bsd_waitopts(args->options, &options);
|
||||
if ((args->options & __WALL) != 0)
|
||||
options |= WEXITED | WTRAPPED | WUNTRACED |
|
||||
WCONTINUED | WLINUXCLONE;
|
||||
|
||||
switch (args->idtype) {
|
||||
case LINUX_P_ALL:
|
||||
|
Loading…
Reference in New Issue
Block a user