CS318 - Pintos
Pintos source browser for JHU CS318 course
sc-boundary.c
Go to the documentation of this file.
1 /** Invokes a system call with the system call number and its
2  argument on separate pages. This must work. */
3 
4 #include <syscall-nr.h>
6 #include "tests/lib.h"
7 #include "tests/main.h"
8 
9 void
10 test_main (void)
11 {
12  /* Put a syscall number at the end of one page
13  and its argument at the beginning of another. */
14  int *p = get_boundary_area ();
15  p--;
16  p[0] = SYS_EXIT;
17  p[1] = 42;
18 
19  /* Invoke the system call. */
20  asm volatile ("movl %0, %%esp; int $0x30" : : "g" (p));
21  fail ("should have called exit(42)");
22 }
lib.h
get_boundary_area
void * get_boundary_area(void)
Returns the beginning of a page.
Definition: boundary.c:18
syscall-nr.h
fail
void fail(const char *format,...)
Definition: lib.c:40
main.h
boundary.h
SYS_EXIT
Terminate this process.
Definition: syscall-nr.h:9
test_main
void test_main(void)
Invokes a system call with the system call number and its argument on separate pages.
Definition: sc-boundary.c:10