Commit | Line | Data |
---|---|---|
d1c9dd79 | 1 | #include "beos/beosish.h" |
30410c71 | 2 | |
efca5cc6 JH |
3 | #undef waitpid |
4 | ||
5 | #include <sys/wait.h> | |
6 | ||
7 | /* In BeOS 5.0 the waitpid() seems to misbehave in that the status | |
dff18f87 JH |
8 | * has the upper and lower bytes swapped compared with the usual |
9 | * POSIX/UNIX implementations. To undo the surpise effect to the | |
10 | * rest of Perl we need this wrapper. (The rest of BeOS might be | |
11 | * surprised because of this, though.) */ | |
efca5cc6 JH |
12 | |
13 | pid_t beos_waitpid(pid_t process_id, int *status_location, int options) { | |
30410c71 | 14 | pid_t got = waitpid(process_id, status_location, options); |
7b9cd8f0 | 15 | if (status_location) |
dff18f87 JH |
16 | *status_location = |
17 | (*status_location & 0x00FF) << 8 | | |
18 | (*status_location & 0xFF00) >> 8; | |
efca5cc6 JH |
19 | return got; |
20 | } |