diff --git a/pintos-env/pintos/userprog/malusa.log b/pintos-env/pintos/userprog/malusa.log new file mode 100644 index 0000000..6ba8dc2 --- /dev/null +++ b/pintos-env/pintos/userprog/malusa.log @@ -0,0 +1,990 @@ +cd build && make check +make[1]: Entering directory `/pintos-env/pintos/userprog/build' +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/args-none -a args-none -- -q -f run args-none < /dev/null 2> tests/userprog/args-none.errors > tests/userprog/args-none.output +perl -I../.. ../../tests/userprog/args-none.ck tests/userprog/args-none tests/userprog/args-none.result +pass tests/userprog/args-none +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/args-single -a args-single -- -q -f run 'args-single onearg' < /dev/null 2> tests/userprog/args-single.errors > tests/userprog/args-single.output +perl -I../.. ../../tests/userprog/args-single.ck tests/userprog/args-single tests/userprog/args-single.result +pass tests/userprog/args-single +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/args-multiple -a args-multiple -- -q -f run 'args-multiple some arguments for you!' < /dev/null 2> tests/userprog/args-multiple.errors > tests/userprog/args-multiple.output +perl -I../.. ../../tests/userprog/args-multiple.ck tests/userprog/args-multiple tests/userprog/args-multiple.result +pass tests/userprog/args-multiple +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/args-many -a args-many -- -q -f run 'args-many a b c d e f g h i j k l m n o p q r s t u v' < /dev/null 2> tests/userprog/args-many.errors > tests/userprog/args-many.output +perl -I../.. ../../tests/userprog/args-many.ck tests/userprog/args-many tests/userprog/args-many.result +pass tests/userprog/args-many +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/args-dbl-space -a args-dbl-space -- -q -f run 'args-dbl-space two spaces!' < /dev/null 2> tests/userprog/args-dbl-space.errors > tests/userprog/args-dbl-space.output +perl -I../.. ../../tests/userprog/args-dbl-space.ck tests/userprog/args-dbl-space tests/userprog/args-dbl-space.result +pass tests/userprog/args-dbl-space +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/sc-bad-sp -a sc-bad-sp -- -q -f run sc-bad-sp < /dev/null 2> tests/userprog/sc-bad-sp.errors > tests/userprog/sc-bad-sp.output +perl -I../.. ../../tests/userprog/sc-bad-sp.ck tests/userprog/sc-bad-sp tests/userprog/sc-bad-sp.result +FAIL tests/userprog/sc-bad-sp +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xc002b791 0x80480aa +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xc002b791: syscall_handler (.../../userprog/syscall.c:40) +In tests/userprog/sc-bad-sp: +0x080480aa: test_main (...s/userprog/sc-bad-sp.c:19) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/sc-bad-arg -a sc-bad-arg -- -q -f run sc-bad-arg < /dev/null 2> tests/userprog/sc-bad-arg.errors > tests/userprog/sc-bad-arg.output +perl -I../.. ../../tests/userprog/sc-bad-arg.ck tests/userprog/sc-bad-arg tests/userprog/sc-bad-arg.result +FAIL tests/userprog/sc-bad-arg +Test output failed to match any acceptable form. + +Acceptable output: + (sc-bad-arg) begin + sc-bad-arg: exit(-1) +Differences in `diff -u' format: + (sc-bad-arg) begin +- sc-bad-arg: exit(-1) ++ sc-bad-arg: exit(-268370093) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/sc-boundary -a sc-boundary -- -q -f run sc-boundary < /dev/null 2> tests/userprog/sc-boundary.errors > tests/userprog/sc-boundary.output +perl -I../.. ../../tests/userprog/sc-boundary.ck tests/userprog/sc-boundary tests/userprog/sc-boundary.result +pass tests/userprog/sc-boundary +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/sc-boundary-2 -a sc-boundary-2 -- -q -f run sc-boundary-2 < /dev/null 2> tests/userprog/sc-boundary-2.errors > tests/userprog/sc-boundary-2.output +perl -I../.. ../../tests/userprog/sc-boundary-2.ck tests/userprog/sc-boundary-2 tests/userprog/sc-boundary-2.result +pass tests/userprog/sc-boundary-2 +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/halt -a halt -- -q -f run halt < /dev/null 2> tests/userprog/halt.errors > tests/userprog/halt.output +perl -I../.. ../../tests/userprog/halt.ck tests/userprog/halt tests/userprog/halt.result +FAIL tests/userprog/halt +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a12e +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/halt: +0x0804a12e: halt (.../../lib/user/syscall.c:67) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/exit -a exit -- -q -f run exit < /dev/null 2> tests/userprog/exit.errors > tests/userprog/exit.output +perl -I../.. ../../tests/userprog/exit.ck tests/userprog/exit tests/userprog/exit.result +pass tests/userprog/exit +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/create-normal -a create-normal -- -q -f run create-normal < /dev/null 2> tests/userprog/create-normal.errors > tests/userprog/create-normal.output +perl -I../.. ../../tests/userprog/create-normal.ck tests/userprog/create-normal tests/userprog/create-normal.result +FAIL tests/userprog/create-normal +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1e0 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/create-normal: +0x0804a1e0: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/create-empty -a create-empty -- -q -f run create-empty < /dev/null 2> tests/userprog/create-empty.errors > tests/userprog/create-empty.output +perl -I../.. ../../tests/userprog/create-empty.ck tests/userprog/create-empty tests/userprog/create-empty.result +FAIL tests/userprog/create-empty +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1e0 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/create-empty: +0x0804a1e0: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/create-null -a create-null -- -q -f run create-null < /dev/null 2> tests/userprog/create-null.errors > tests/userprog/create-null.output +perl -I../.. ../../tests/userprog/create-null.ck tests/userprog/create-null tests/userprog/create-null.result +FAIL tests/userprog/create-null +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1e0 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/create-null: +0x0804a1e0: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/create-bad-ptr -a create-bad-ptr -- -q -f run create-bad-ptr < /dev/null 2> tests/userprog/create-bad-ptr.errors > tests/userprog/create-bad-ptr.output +perl -I../.. ../../tests/userprog/create-bad-ptr.ck tests/userprog/create-bad-ptr tests/userprog/create-bad-ptr.result +FAIL tests/userprog/create-bad-ptr +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1e0 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/create-bad-ptr: +0x0804a1e0: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/create-long -a create-long -- -q -f run create-long < /dev/null 2> tests/userprog/create-long.errors > tests/userprog/create-long.output +perl -I../.. ../../tests/userprog/create-long.ck tests/userprog/create-long tests/userprog/create-long.result +FAIL tests/userprog/create-long +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1f0 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/create-long: +0x0804a1f0: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/create-exists -a create-exists -- -q -f run create-exists < /dev/null 2> tests/userprog/create-exists.errors > tests/userprog/create-exists.output +perl -I../.. ../../tests/userprog/create-exists.ck tests/userprog/create-exists tests/userprog/create-exists.result +FAIL tests/userprog/create-exists +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a2a0 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/create-exists: +0x0804a2a0: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/create-bound -a create-bound -- -q -f run create-bound < /dev/null 2> tests/userprog/create-bound.errors > tests/userprog/create-bound.output +perl -I../.. ../../tests/userprog/create-bound.ck tests/userprog/create-bound tests/userprog/create-bound.result +FAIL tests/userprog/create-bound +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a270 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/create-bound: +0x0804a270: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/open-normal -a open-normal -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run open-normal < /dev/null 2> tests/userprog/open-normal.errors > tests/userprog/open-normal.output +perl -I../.. ../../tests/userprog/open-normal.ck tests/userprog/open-normal tests/userprog/open-normal.result +FAIL tests/userprog/open-normal +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1f4 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/open-normal: +0x0804a1f4: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/open-missing -a open-missing -- -q -f run open-missing < /dev/null 2> tests/userprog/open-missing.errors > tests/userprog/open-missing.output +perl -I../.. ../../tests/userprog/open-missing.ck tests/userprog/open-missing tests/userprog/open-missing.result +FAIL tests/userprog/open-missing +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1f4 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/open-missing: +0x0804a1f4: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/open-boundary -a open-boundary -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run open-boundary < /dev/null 2> tests/userprog/open-boundary.errors > tests/userprog/open-boundary.output +perl -I../.. ../../tests/userprog/open-boundary.ck tests/userprog/open-boundary tests/userprog/open-boundary.result +FAIL tests/userprog/open-boundary +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a2a4 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/open-boundary: +0x0804a2a4: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/open-empty -a open-empty -- -q -f run open-empty < /dev/null 2> tests/userprog/open-empty.errors > tests/userprog/open-empty.output +perl -I../.. ../../tests/userprog/open-empty.ck tests/userprog/open-empty tests/userprog/open-empty.result +FAIL tests/userprog/open-empty +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1f4 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/open-empty: +0x0804a1f4: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/open-null -a open-null -- -q -f run open-null < /dev/null 2> tests/userprog/open-null.errors > tests/userprog/open-null.output +perl -I../.. ../../tests/userprog/open-null.ck tests/userprog/open-null tests/userprog/open-null.result +FAIL tests/userprog/open-null +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1e4 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/open-null: +0x0804a1e4: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/open-bad-ptr -a open-bad-ptr -- -q -f run open-bad-ptr < /dev/null 2> tests/userprog/open-bad-ptr.errors > tests/userprog/open-bad-ptr.output +perl -I../.. ../../tests/userprog/open-bad-ptr.ck tests/userprog/open-bad-ptr tests/userprog/open-bad-ptr.result +FAIL tests/userprog/open-bad-ptr +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1f4 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/open-bad-ptr: +0x0804a1f4: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/open-twice -a open-twice -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run open-twice < /dev/null 2> tests/userprog/open-twice.errors > tests/userprog/open-twice.output +perl -I../.. ../../tests/userprog/open-twice.ck tests/userprog/open-twice tests/userprog/open-twice.result +FAIL tests/userprog/open-twice +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a254 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/open-twice: +0x0804a254: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/close-normal -a close-normal -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run close-normal < /dev/null 2> tests/userprog/close-normal.errors > tests/userprog/close-normal.output +perl -I../.. ../../tests/userprog/close-normal.ck tests/userprog/close-normal tests/userprog/close-normal.result +FAIL tests/userprog/close-normal +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a214 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/close-normal: +0x0804a214: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/close-twice -a close-twice -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run close-twice < /dev/null 2> tests/userprog/close-twice.errors > tests/userprog/close-twice.output +perl -I../.. ../../tests/userprog/close-twice.ck tests/userprog/close-twice tests/userprog/close-twice.result +FAIL tests/userprog/close-twice +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a224 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/close-twice: +0x0804a224: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/close-stdin -a close-stdin -- -q -f run close-stdin < /dev/null 2> tests/userprog/close-stdin.errors > tests/userprog/close-stdin.output +perl -I../.. ../../tests/userprog/close-stdin.ck tests/userprog/close-stdin tests/userprog/close-stdin.result +FAIL tests/userprog/close-stdin +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a24b +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/close-stdin: +0x0804a24b: close (...../lib/user/syscall.c:141) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/close-stdout -a close-stdout -- -q -f run close-stdout < /dev/null 2> tests/userprog/close-stdout.errors > tests/userprog/close-stdout.output +perl -I../.. ../../tests/userprog/close-stdout.ck tests/userprog/close-stdout tests/userprog/close-stdout.result +FAIL tests/userprog/close-stdout +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a24b +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/close-stdout: +0x0804a24b: close (...../lib/user/syscall.c:141) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/close-bad-fd -a close-bad-fd -- -q -f run close-bad-fd < /dev/null 2> tests/userprog/close-bad-fd.errors > tests/userprog/close-bad-fd.output +perl -I../.. ../../tests/userprog/close-bad-fd.ck tests/userprog/close-bad-fd tests/userprog/close-bad-fd.result +FAIL tests/userprog/close-bad-fd +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a24b +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/close-bad-fd: +0x0804a24b: close (...../lib/user/syscall.c:141) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/read-normal -a read-normal -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run read-normal < /dev/null 2> tests/userprog/read-normal.errors > tests/userprog/read-normal.output +perl -I../.. ../../tests/userprog/read-normal.ck tests/userprog/read-normal tests/userprog/read-normal.result +FAIL tests/userprog/read-normal +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1f4 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/read-normal: +0x0804a1f4: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/read-bad-ptr -a read-bad-ptr -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run read-bad-ptr < /dev/null 2> tests/userprog/read-bad-ptr.errors > tests/userprog/read-bad-ptr.output +perl -I../.. ../../tests/userprog/read-bad-ptr.ck tests/userprog/read-bad-ptr tests/userprog/read-bad-ptr.result +FAIL tests/userprog/read-bad-ptr +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a224 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/read-bad-ptr: +0x0804a224: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/read-boundary -a read-boundary -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run read-boundary < /dev/null 2> tests/userprog/read-boundary.errors > tests/userprog/read-boundary.output +perl -I../.. ../../tests/userprog/read-boundary.ck tests/userprog/read-boundary tests/userprog/read-boundary.result +FAIL tests/userprog/read-boundary +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a314 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/read-boundary: +0x0804a314: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/read-zero -a read-zero -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run read-zero < /dev/null 2> tests/userprog/read-zero.errors > tests/userprog/read-zero.output +perl -I../.. ../../tests/userprog/read-zero.ck tests/userprog/read-zero tests/userprog/read-zero.result +FAIL tests/userprog/read-zero +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a244 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/read-zero: +0x0804a244: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/read-stdout -a read-stdout -- -q -f run read-stdout < /dev/null 2> tests/userprog/read-stdout.errors > tests/userprog/read-stdout.output +perl -I../.. ../../tests/userprog/read-stdout.ck tests/userprog/read-stdout tests/userprog/read-stdout.result +FAIL tests/userprog/read-stdout +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a218 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/read-stdout: +0x0804a218: read (...../lib/user/syscall.c:117) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/read-bad-fd -a read-bad-fd -- -q -f run read-bad-fd < /dev/null 2> tests/userprog/read-bad-fd.errors > tests/userprog/read-bad-fd.output +perl -I../.. ../../tests/userprog/read-bad-fd.ck tests/userprog/read-bad-fd tests/userprog/read-bad-fd.result +FAIL tests/userprog/read-bad-fd +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a2a8 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/read-bad-fd: +0x0804a2a8: read (...../lib/user/syscall.c:117) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/write-normal -a write-normal -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run write-normal < /dev/null 2> tests/userprog/write-normal.errors > tests/userprog/write-normal.output +perl -I../.. ../../tests/userprog/write-normal.ck tests/userprog/write-normal tests/userprog/write-normal.result +FAIL tests/userprog/write-normal +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a240 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/write-normal: +0x0804a240: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/write-bad-ptr -a write-bad-ptr -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run write-bad-ptr < /dev/null 2> tests/userprog/write-bad-ptr.errors > tests/userprog/write-bad-ptr.output +perl -I../.. ../../tests/userprog/write-bad-ptr.ck tests/userprog/write-bad-ptr tests/userprog/write-bad-ptr.result +FAIL tests/userprog/write-bad-ptr +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a224 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/write-bad-ptr: +0x0804a224: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/write-boundary -a write-boundary -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run write-boundary < /dev/null 2> tests/userprog/write-boundary.errors > tests/userprog/write-boundary.output +perl -I../.. ../../tests/userprog/write-boundary.ck tests/userprog/write-boundary tests/userprog/write-boundary.result +FAIL tests/userprog/write-boundary +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a2d4 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/write-boundary: +0x0804a2d4: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/write-zero -a write-zero -p ../../tests/userprog/sample.txt -a sample.txt -- -q -f run write-zero < /dev/null 2> tests/userprog/write-zero.errors > tests/userprog/write-zero.output +perl -I../.. ../../tests/userprog/write-zero.ck tests/userprog/write-zero tests/userprog/write-zero.result +FAIL tests/userprog/write-zero +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a234 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/write-zero: +0x0804a234: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/write-stdin -a write-stdin -- -q -f run write-stdin < /dev/null 2> tests/userprog/write-stdin.errors > tests/userprog/write-stdin.output +perl -I../.. ../../tests/userprog/write-stdin.ck tests/userprog/write-stdin tests/userprog/write-stdin.result +pass tests/userprog/write-stdin +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/write-bad-fd -a write-bad-fd -- -q -f run write-bad-fd < /dev/null 2> tests/userprog/write-bad-fd.errors > tests/userprog/write-bad-fd.output +perl -I../.. ../../tests/userprog/write-bad-fd.ck tests/userprog/write-bad-fd tests/userprog/write-bad-fd.result +pass tests/userprog/write-bad-fd +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/exec-once -a exec-once -p tests/userprog/child-simple -a child-simple -- -q -f run exec-once < /dev/null 2> tests/userprog/exec-once.errors > tests/userprog/exec-once.output +perl -I../.. ../../tests/userprog/exec-once.ck tests/userprog/exec-once tests/userprog/exec-once.result +FAIL tests/userprog/exec-once +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1a1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/exec-once: +0x0804a1a1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/exec-arg -a exec-arg -p tests/userprog/child-args -a child-args -- -q -f run exec-arg < /dev/null 2> tests/userprog/exec-arg.errors > tests/userprog/exec-arg.output +perl -I../.. ../../tests/userprog/exec-arg.ck tests/userprog/exec-arg tests/userprog/exec-arg.result +FAIL tests/userprog/exec-arg +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1a1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/exec-arg: +0x0804a1a1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/exec-multiple -a exec-multiple -p tests/userprog/child-simple -a child-simple -- -q -f run exec-multiple < /dev/null 2> tests/userprog/exec-multiple.errors > tests/userprog/exec-multiple.output +perl -I../.. ../../tests/userprog/exec-multiple.ck tests/userprog/exec-multiple tests/userprog/exec-multiple.result +FAIL tests/userprog/exec-multiple +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1e1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/exec-multiple: +0x0804a1e1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/exec-missing -a exec-missing -- -q -f run exec-missing < /dev/null 2> tests/userprog/exec-missing.errors > tests/userprog/exec-missing.output +perl -I../.. ../../tests/userprog/exec-missing.ck tests/userprog/exec-missing tests/userprog/exec-missing.result +FAIL tests/userprog/exec-missing +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1b1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/exec-missing: +0x0804a1b1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/exec-bad-ptr -a exec-bad-ptr -- -q -f run exec-bad-ptr < /dev/null 2> tests/userprog/exec-bad-ptr.errors > tests/userprog/exec-bad-ptr.output +perl -I../.. ../../tests/userprog/exec-bad-ptr.ck tests/userprog/exec-bad-ptr tests/userprog/exec-bad-ptr.result +FAIL tests/userprog/exec-bad-ptr +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1a1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/exec-bad-ptr: +0x0804a1a1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/wait-simple -a wait-simple -p tests/userprog/child-simple -a child-simple -- -q -f run wait-simple < /dev/null 2> tests/userprog/wait-simple.errors > tests/userprog/wait-simple.output +perl -I../.. ../../tests/userprog/wait-simple.ck tests/userprog/wait-simple tests/userprog/wait-simple.result +FAIL tests/userprog/wait-simple +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1b1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/wait-simple: +0x0804a1b1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/wait-twice -a wait-twice -p tests/userprog/child-simple -a child-simple -- -q -f run wait-twice < /dev/null 2> tests/userprog/wait-twice.errors > tests/userprog/wait-twice.output +perl -I../.. ../../tests/userprog/wait-twice.ck tests/userprog/wait-twice tests/userprog/wait-twice.result +FAIL tests/userprog/wait-twice +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1d1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/wait-twice: +0x0804a1d1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/wait-killed -a wait-killed -p tests/userprog/child-bad -a child-bad -- -q -f run wait-killed < /dev/null 2> tests/userprog/wait-killed.errors > tests/userprog/wait-killed.output +perl -I../.. ../../tests/userprog/wait-killed.ck tests/userprog/wait-killed tests/userprog/wait-killed.result +FAIL tests/userprog/wait-killed +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1b1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/wait-killed: +0x0804a1b1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/wait-bad-pid -a wait-bad-pid -- -q -f run wait-bad-pid < /dev/null 2> tests/userprog/wait-bad-pid.errors > tests/userprog/wait-bad-pid.output +perl -I../.. ../../tests/userprog/wait-bad-pid.ck tests/userprog/wait-bad-pid tests/userprog/wait-bad-pid.result +FAIL tests/userprog/wait-bad-pid +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a1ae +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/wait-bad-pid: +0x0804a1ae: wait (.../../lib/user/syscall.c:87) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/multi-recurse -a multi-recurse -- -q -f run 'multi-recurse 15' < /dev/null 2> tests/userprog/multi-recurse.errors > tests/userprog/multi-recurse.output +perl -I../.. ../../tests/userprog/multi-recurse.ck tests/userprog/multi-recurse tests/userprog/multi-recurse.result +FAIL tests/userprog/multi-recurse +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a5e1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/multi-recurse: +0x0804a5e1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/multi-child-fd -a multi-child-fd -p ../../tests/userprog/sample.txt -a sample.txt -p tests/userprog/child-close -a child-close -- -q -f run multi-child-fd < /dev/null 2> tests/userprog/multi-child-fd.errors > tests/userprog/multi-child-fd.output +perl -I../.. ../../tests/userprog/multi-child-fd.ck tests/userprog/multi-child-fd tests/userprog/multi-child-fd.result +FAIL tests/userprog/multi-child-fd +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a264 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/multi-child-fd: +0x0804a264: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/rox-simple -a rox-simple -- -q -f run rox-simple < /dev/null 2> tests/userprog/rox-simple.errors > tests/userprog/rox-simple.output +perl -I../.. ../../tests/userprog/rox-simple.ck tests/userprog/rox-simple tests/userprog/rox-simple.result +FAIL tests/userprog/rox-simple +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a264 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/rox-simple: +0x0804a264: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/rox-child -a rox-child -p tests/userprog/child-rox -a child-rox -- -q -f run rox-child < /dev/null 2> tests/userprog/rox-child.errors > tests/userprog/rox-child.output +perl -I../.. ../../tests/userprog/rox-child.ck tests/userprog/rox-child tests/userprog/rox-child.result +FAIL tests/userprog/rox-child +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a334 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/rox-child: +0x0804a334: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/rox-multichild -a rox-multichild -p tests/userprog/child-rox -a child-rox -- -q -f run rox-multichild < /dev/null 2> tests/userprog/rox-multichild.errors > tests/userprog/rox-multichild.output +perl -I../.. ../../tests/userprog/rox-multichild.ck tests/userprog/rox-multichild tests/userprog/rox-multichild.result +FAIL tests/userprog/rox-multichild +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a334 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/rox-multichild: +0x0804a334: open (...../lib/user/syscall.c:105) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/bad-read -a bad-read -- -q -f run bad-read < /dev/null 2> tests/userprog/bad-read.errors > tests/userprog/bad-read.output +perl -I../.. ../../tests/userprog/bad-read.ck tests/userprog/bad-read tests/userprog/bad-read.result +FAIL tests/userprog/bad-read +Test output failed to match any acceptable form. + +Acceptable output: + (bad-read) begin + bad-read: exit(-1) +Differences in `diff -u' format: + (bad-read) begin +- bad-read: exit(-1) + +(User fault messages are excluded for matching purposes.) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/bad-write -a bad-write -- -q -f run bad-write < /dev/null 2> tests/userprog/bad-write.errors > tests/userprog/bad-write.output +perl -I../.. ../../tests/userprog/bad-write.ck tests/userprog/bad-write tests/userprog/bad-write.result +FAIL tests/userprog/bad-write +Test output failed to match any acceptable form. + +Acceptable output: + (bad-write) begin + bad-write: exit(-1) +Differences in `diff -u' format: + (bad-write) begin +- bad-write: exit(-1) + +(User fault messages are excluded for matching purposes.) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/bad-read2 -a bad-read2 -- -q -f run bad-read2 < /dev/null 2> tests/userprog/bad-read2.errors > tests/userprog/bad-read2.output +perl -I../.. ../../tests/userprog/bad-read2.ck tests/userprog/bad-read2 tests/userprog/bad-read2.result +FAIL tests/userprog/bad-read2 +Test output failed to match any acceptable form. + +Acceptable output: + (bad-read2) begin + bad-read2: exit(-1) +Differences in `diff -u' format: + (bad-read2) begin +- bad-read2: exit(-1) + +(User fault messages are excluded for matching purposes.) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/bad-write2 -a bad-write2 -- -q -f run bad-write2 < /dev/null 2> tests/userprog/bad-write2.errors > tests/userprog/bad-write2.output +perl -I../.. ../../tests/userprog/bad-write2.ck tests/userprog/bad-write2 tests/userprog/bad-write2.result +FAIL tests/userprog/bad-write2 +Test output failed to match any acceptable form. + +Acceptable output: + (bad-write2) begin + bad-write2: exit(-1) +Differences in `diff -u' format: + (bad-write2) begin +- bad-write2: exit(-1) + +(User fault messages are excluded for matching purposes.) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/bad-jump -a bad-jump -- -q -f run bad-jump < /dev/null 2> tests/userprog/bad-jump.errors > tests/userprog/bad-jump.output +perl -I../.. ../../tests/userprog/bad-jump.ck tests/userprog/bad-jump tests/userprog/bad-jump.result +FAIL tests/userprog/bad-jump +Test output failed to match any acceptable form. + +Acceptable output: + (bad-jump) begin + bad-jump: exit(-1) +Differences in `diff -u' format: + (bad-jump) begin +- bad-jump: exit(-1) + +(User fault messages are excluded for matching purposes.) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/userprog/bad-jump2 -a bad-jump2 -- -q -f run bad-jump2 < /dev/null 2> tests/userprog/bad-jump2.errors > tests/userprog/bad-jump2.output +perl -I../.. ../../tests/userprog/bad-jump2.ck tests/userprog/bad-jump2 tests/userprog/bad-jump2.result +FAIL tests/userprog/bad-jump2 +Test output failed to match any acceptable form. + +Acceptable output: + (bad-jump2) begin + bad-jump2: exit(-1) +Differences in `diff -u' format: + (bad-jump2) begin +- bad-jump2: exit(-1) + +(User fault messages are excluded for matching purposes.) +pintos -v -k -T 360 --bochs --filesys-size=2 -p tests/userprog/no-vm/multi-oom -a multi-oom -- -q -f run multi-oom < /dev/null 2> tests/userprog/no-vm/multi-oom.errors > tests/userprog/no-vm/multi-oom.output +perl -I../.. ../../tests/userprog/no-vm/multi-oom.ck tests/userprog/no-vm/multi-oom tests/userprog/no-vm/multi-oom.result +FAIL tests/userprog/no-vm/multi-oom +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a7e1 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/userprog/no-vm/multi-oom: +0x0804a7e1: exec (.../../lib/user/syscall.c:81) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/lg-create -a lg-create -- -q -f run lg-create < /dev/null 2> tests/filesys/base/lg-create.errors > tests/filesys/base/lg-create.output +perl -I../.. ../../tests/filesys/base/lg-create.ck tests/filesys/base/lg-create tests/filesys/base/lg-create.result +FAIL tests/filesys/base/lg-create +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a360 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/filesys/base/lg-create: +0x0804a360: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/lg-full -a lg-full -- -q -f run lg-full < /dev/null 2> tests/filesys/base/lg-full.errors > tests/filesys/base/lg-full.output +perl -I../.. ../../tests/filesys/base/lg-full.ck tests/filesys/base/lg-full tests/filesys/base/lg-full.result +FAIL tests/filesys/base/lg-full +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 +Translation of call stack: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/lg-random -a lg-random -- -q -f run lg-random < /dev/null 2> tests/filesys/base/lg-random.errors > tests/filesys/base/lg-random.output +perl -I../.. ../../tests/filesys/base/lg-random.ck tests/filesys/base/lg-random tests/filesys/base/lg-random.result +FAIL tests/filesys/base/lg-random +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a520 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/filesys/base/lg-random: +0x0804a520: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/lg-seq-block -a lg-seq-block -- -q -f run lg-seq-block < /dev/null 2> tests/filesys/base/lg-seq-block.errors > tests/filesys/base/lg-seq-block.output +perl -I../.. ../../tests/filesys/base/lg-seq-block.ck tests/filesys/base/lg-seq-block tests/filesys/base/lg-seq-block.result +FAIL tests/filesys/base/lg-seq-block +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 +Translation of call stack: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/lg-seq-random -a lg-seq-random -- -q -f run lg-seq-random < /dev/null 2> tests/filesys/base/lg-seq-random.errors > tests/filesys/base/lg-seq-random.output +perl -I../.. ../../tests/filesys/base/lg-seq-random.ck tests/filesys/base/lg-seq-random tests/filesys/base/lg-seq-random.result +FAIL tests/filesys/base/lg-seq-random +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 +Translation of call stack: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/sm-create -a sm-create -- -q -f run sm-create < /dev/null 2> tests/filesys/base/sm-create.errors > tests/filesys/base/sm-create.output +perl -I../.. ../../tests/filesys/base/sm-create.ck tests/filesys/base/sm-create tests/filesys/base/sm-create.result +FAIL tests/filesys/base/sm-create +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a360 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/filesys/base/sm-create: +0x0804a360: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/sm-full -a sm-full -- -q -f run sm-full < /dev/null 2> tests/filesys/base/sm-full.errors > tests/filesys/base/sm-full.output +perl -I../.. ../../tests/filesys/base/sm-full.ck tests/filesys/base/sm-full tests/filesys/base/sm-full.result +FAIL tests/filesys/base/sm-full +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 +Translation of call stack: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/sm-random -a sm-random -- -q -f run sm-random < /dev/null 2> tests/filesys/base/sm-random.errors > tests/filesys/base/sm-random.output +perl -I../.. ../../tests/filesys/base/sm-random.ck tests/filesys/base/sm-random tests/filesys/base/sm-random.result +FAIL tests/filesys/base/sm-random +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a520 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/filesys/base/sm-random: +0x0804a520: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/sm-seq-block -a sm-seq-block -- -q -f run sm-seq-block < /dev/null 2> tests/filesys/base/sm-seq-block.errors > tests/filesys/base/sm-seq-block.output +perl -I../.. ../../tests/filesys/base/sm-seq-block.ck tests/filesys/base/sm-seq-block tests/filesys/base/sm-seq-block.result +FAIL tests/filesys/base/sm-seq-block +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 +Translation of call stack: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/sm-seq-random -a sm-seq-random -- -q -f run sm-seq-random < /dev/null 2> tests/filesys/base/sm-seq-random.errors > tests/filesys/base/sm-seq-random.output +perl -I../.. ../../tests/filesys/base/sm-seq-random.ck tests/filesys/base/sm-seq-random tests/filesys/base/sm-seq-random.result +FAIL tests/filesys/base/sm-seq-random +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 +Translation of call stack: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +pintos -v -k -T 300 --bochs --filesys-size=2 -p tests/filesys/base/syn-read -a syn-read -p tests/filesys/base/child-syn-read -a child-syn-read -- -q -f run syn-read < /dev/null 2> tests/filesys/base/syn-read.errors > tests/filesys/base/syn-read.output +perl -I../.. ../../tests/filesys/base/syn-read.ck tests/filesys/base/syn-read tests/filesys/base/syn-read.result +FAIL tests/filesys/base/syn-read +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a420 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/filesys/base/syn-read: +0x0804a420: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/syn-remove -a syn-remove -- -q -f run syn-remove < /dev/null 2> tests/filesys/base/syn-remove.errors > tests/filesys/base/syn-remove.output +perl -I../.. ../../tests/filesys/base/syn-remove.ck tests/filesys/base/syn-remove tests/filesys/base/syn-remove.result +FAIL tests/filesys/base/syn-remove +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a4c0 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/filesys/base/syn-remove: +0x0804a4c0: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pintos -v -k -T 60 --bochs --filesys-size=2 -p tests/filesys/base/syn-write -a syn-write -p tests/filesys/base/child-syn-wrt -a child-syn-wrt -- -q -f run syn-write < /dev/null 2> tests/filesys/base/syn-write.errors > tests/filesys/base/syn-write.output +perl -I../.. ../../tests/filesys/base/syn-write.ck tests/filesys/base/syn-write tests/filesys/base/syn-write.result +FAIL tests/filesys/base/syn-write +Kernel panic in run: PANIC at ../../userprog/exception.c:100 in kill(): Kernel bug - unexpected interrupt in kernel +Call stack: 0xc00285ee 0xe3e3e3e3 0x804a430 +Translation of call stack: +In kernel.o: +0xc00285ee: debug_panic (.../../lib/kernel/debug.c:38) +0xe3e3e3e3: (unknown) +In tests/filesys/base/syn-write: +0x0804a430: create (.../../lib/user/syscall.c:93) +Translations of user virtual addresses above are based on a guess at +the binary to use. If this guess is incorrect, then those +translations will be misleading. +pass tests/userprog/args-none +pass tests/userprog/args-single +pass tests/userprog/args-multiple +pass tests/userprog/args-many +pass tests/userprog/args-dbl-space +FAIL tests/userprog/sc-bad-sp +FAIL tests/userprog/sc-bad-arg +pass tests/userprog/sc-boundary +pass tests/userprog/sc-boundary-2 +FAIL tests/userprog/halt +pass tests/userprog/exit +FAIL tests/userprog/create-normal +FAIL tests/userprog/create-empty +FAIL tests/userprog/create-null +FAIL tests/userprog/create-bad-ptr +FAIL tests/userprog/create-long +FAIL tests/userprog/create-exists +FAIL tests/userprog/create-bound +FAIL tests/userprog/open-normal +FAIL tests/userprog/open-missing +FAIL tests/userprog/open-boundary +FAIL tests/userprog/open-empty +FAIL tests/userprog/open-null +FAIL tests/userprog/open-bad-ptr +FAIL tests/userprog/open-twice +FAIL tests/userprog/close-normal +FAIL tests/userprog/close-twice +FAIL tests/userprog/close-stdin +FAIL tests/userprog/close-stdout +FAIL tests/userprog/close-bad-fd +FAIL tests/userprog/read-normal +FAIL tests/userprog/read-bad-ptr +FAIL tests/userprog/read-boundary +FAIL tests/userprog/read-zero +FAIL tests/userprog/read-stdout +FAIL tests/userprog/read-bad-fd +FAIL tests/userprog/write-normal +FAIL tests/userprog/write-bad-ptr +FAIL tests/userprog/write-boundary +FAIL tests/userprog/write-zero +pass tests/userprog/write-stdin +pass tests/userprog/write-bad-fd +FAIL tests/userprog/exec-once +FAIL tests/userprog/exec-arg +FAIL tests/userprog/exec-multiple +FAIL tests/userprog/exec-missing +FAIL tests/userprog/exec-bad-ptr +FAIL tests/userprog/wait-simple +FAIL tests/userprog/wait-twice +FAIL tests/userprog/wait-killed +FAIL tests/userprog/wait-bad-pid +FAIL tests/userprog/multi-recurse +FAIL tests/userprog/multi-child-fd +FAIL tests/userprog/rox-simple +FAIL tests/userprog/rox-child +FAIL tests/userprog/rox-multichild +FAIL tests/userprog/bad-read +FAIL tests/userprog/bad-write +FAIL tests/userprog/bad-read2 +FAIL tests/userprog/bad-write2 +FAIL tests/userprog/bad-jump +FAIL tests/userprog/bad-jump2 +FAIL tests/userprog/no-vm/multi-oom +FAIL tests/filesys/base/lg-create +FAIL tests/filesys/base/lg-full +FAIL tests/filesys/base/lg-random +FAIL tests/filesys/base/lg-seq-block +FAIL tests/filesys/base/lg-seq-random +FAIL tests/filesys/base/sm-create +FAIL tests/filesys/base/sm-full +FAIL tests/filesys/base/sm-random +FAIL tests/filesys/base/sm-seq-block +FAIL tests/filesys/base/sm-seq-random +FAIL tests/filesys/base/syn-read +FAIL tests/filesys/base/syn-remove +FAIL tests/filesys/base/syn-write +66 of 76 tests failed. +make[1]: Leaving directory `/pintos-env/pintos/userprog/build' diff --git a/pintos-env/pintos/userprog/process.c b/pintos-env/pintos/userprog/process.c index c9ebce2..3f0bf7d 100755 --- a/pintos-env/pintos/userprog/process.c +++ b/pintos-env/pintos/userprog/process.c @@ -50,8 +50,17 @@ process_execute (const char *file_name) return TID_ERROR; strlcpy (fn_copy, file_name, PGSIZE); + size_t n = strlen(file_name), i; + char* program_name[n+1]; + for (i = 0; i < n; i++) { + if (file_name[i] == ' ') { + break; + } + } + strlcpy(program_name, file_name, i+1); + /* Create a new thread to execute FILE_NAME. */ - tid = thread_create (file_name, PRI_DEFAULT, start_process, fn_copy); + tid = thread_create (program_name, PRI_DEFAULT, start_process, fn_copy); if (tid == TID_ERROR) palloc_free_page (fn_copy); return tid; @@ -82,7 +91,7 @@ start_process (void *file_name_) } char* program_name = list_entry(list_front(&arg_list), struct arg, elem)->data; - + /* Initialize interrupt frame and load executable. */ memset (&if_, 0, sizeof if_); if_.gs = if_.fs = if_.es = if_.ds = if_.ss = SEL_UDSEG; @@ -132,7 +141,7 @@ start_process (void *file_name_) //put argc if_.esp -= bytes; { - uint32_t write[1] = {list_size(&arg_list) - 1}; + uint32_t write[1] = {list_size(&arg_list)}; memcpy(if_.esp, write, sizeof(uint32_t)); } diff --git a/pintos-env/pintos/userprog/syscall.c b/pintos-env/pintos/userprog/syscall.c index 370c89b..2885f78 100755 --- a/pintos-env/pintos/userprog/syscall.c +++ b/pintos-env/pintos/userprog/syscall.c @@ -3,6 +3,14 @@ #include #include "threads/interrupt.h" #include "threads/thread.h" +#include + +typedef int (*handler) (uint32_t, uint32_t, uint32_t); +static handler syscall_vec[128]; + +static int sys_write (int fd, const void *buffer, unsigned length); +static int sys_exit (int status); +static void syscall_nop(void); static void syscall_handler (struct intr_frame *); @@ -10,11 +18,46 @@ void syscall_init (void) { intr_register_int (0x30, 3, INTR_ON, syscall_handler, "syscall"); + + memset(syscall_vec, (int)&syscall_nop, 128); + syscall_vec[SYS_EXIT] = (handler)sys_exit; + syscall_vec[SYS_WRITE] = (handler)sys_write; } static void -syscall_handler (struct intr_frame *f UNUSED) -{ - printf ("system call!\n"); - thread_exit (); +syscall_nop(void) { + printf("Syscall not implemented"); } + +static void +syscall_handler (struct intr_frame *f) +{ + handler h; + int *p; + int ret; + + p = f->esp; + h = syscall_vec[*p]; + ret = h (*(p + 1), *(p + 2), *(p + 3)); + + f->eax = ret; +} + +static int +sys_write (int fd, const void *buffer, unsigned length) { + if (fd == 1) { // if stdout + putbuf (buffer, length); + return length; + } else { + return -1; + } +} + +int +sys_exit (int status) +{ + struct thread* t = thread_current(); + printf("%s: exit(%d)\n", t->name, status); + thread_exit (); + return -1; +} \ No newline at end of file