diff options
author | Frans Kaashoek <[email protected]> | 2019-09-10 12:30:10 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2019-09-10 12:30:10 -0400 |
commit | 7e6c37e67e6da62e02089fc3292569103b7e94b3 (patch) | |
tree | 8b3f2e762f1f0a32a4641d240d30b155af6ab34a /kernel/sysproc.c | |
parent | 035cca95fe87c67ee1e33b9edfb2d87e24476fa8 (diff) | |
download | xv6-labs-7e6c37e67e6da62e02089fc3292569103b7e94b3.tar.gz xv6-labs-7e6c37e67e6da62e02089fc3292569103b7e94b3.tar.bz2 xv6-labs-7e6c37e67e6da62e02089fc3292569103b7e94b3.zip |
Support exit status for exit/wait
One test case for returning a exit status
Passes usertests, but haven't used it to simplify tests
Diffstat (limited to 'kernel/sysproc.c')
-rw-r--r-- | kernel/sysproc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/sysproc.c b/kernel/sysproc.c index face81a..e8bcda9 100644 --- a/kernel/sysproc.c +++ b/kernel/sysproc.c @@ -10,7 +10,10 @@ uint64 sys_exit(void) { - exit(); + int n; + if(argint(0, &n) < 0) + return -1; + exit(n); return 0; // not reached } @@ -29,7 +32,10 @@ sys_fork(void) uint64 sys_wait(void) { - return wait(); + uint64 p; + if(argaddr(0, &p) < 0) + return -1; + return wait(p); } uint64 |