about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2018-10-01 22:48:50 -0700
committerKartik Agaram <vc@akkartik.com>2018-10-01 22:48:50 -0700
commit29ab43973a2e9822d84b564e314b4af5c58c4684 (patch)
tree8af49d966c5a1aa05da1e9d2c631085198e91c0d
parent839dc88dc0439ae3f32c8c0f7650f32b09f311cc (diff)
downloadmu-29ab43973a2e9822d84b564e314b4af5c58c4684.tar.gz
4648
-rw-r--r--subx/020syscalls.cc1
-rwxr-xr-xsubx/test_apps8
2 files changed, 9 insertions, 0 deletions
diff --git a/subx/020syscalls.cc b/subx/020syscalls.cc
index 5fdc40f6..c94785bd 100644
--- a/subx/020syscalls.cc
+++ b/subx/020syscalls.cc
@@ -82,6 +82,7 @@ void process_int80() {
     // Ignore most arguments for now: address hint, protection flags, sharing flags, fd, offset.
     // We only support anonymous maps.
     Reg[EAX].u = new_segment(/*length*/read_mem_u32(Reg[EBX].u+0x4));
+    trace(91, "run") << "result: " << Reg[EAX].u << end();
     break;
   default:
     raise << HEXWORD << EIP << ": unimplemented syscall " << Reg[EAX].u << '\n' << end();
diff --git a/subx/test_apps b/subx/test_apps
index 9be51ab1..988e81ae 100755
--- a/subx/test_apps
+++ b/subx/test_apps
@@ -121,6 +121,14 @@ test `uname` = 'Linux'  &&  {
   grep -vq 'F' ex11.out  # no test failures
 }
 
+echo ex12
+CFLAGS=-g ./subx translate examples/ex12.subx  -o examples/ex12
+test `uname -m` = 'i686'  &&  git diff --quiet examples/ex12
+CFLAGS=-g ./subx run examples/ex12  # final byte of mmap'd address is well-nigh guaranteed to be 0
+test `uname` = 'Linux'  &&  {
+  examples/ex12  # final byte of mmap'd address is well-nigh guaranteed to be 0
+}
+
 echo factorial
 CFLAGS=-g ./subx translate *.subx apps/factorial.subx  -o apps/factorial
 test `uname -m` = 'i686'  &&  git diff --quiet apps/factorial