CS318 - Pintos
Pintos source browser for JHU CS318 course
sc-boundary-2.c
Go to the documentation of this file.
1 /** Invokes a system call with one byte of the system call's
2  argument on a separate page from the rest of the bytes. This
3  must work. */
4 
5 #include <syscall-nr.h>
7 #include "tests/lib.h"
8 #include "tests/main.h"
9 
10 void
11 test_main (void)
12 {
13  /* Make one byte of a syscall argument hang over into a second
14  page. */
15  int *p = (int *) ((char *) get_boundary_area () - 7);
16  p[0] = SYS_EXIT;
17  p[1] = 67;
18 
19  /* Invoke the system call. */
20  asm volatile ("movl %0, %%esp; int $0x30" : : "g" (p));
21  fail ("should have called exit(67)");
22 }
lib.h
test_main
void test_main(void)
Invokes a system call with one byte of the system call's argument on a separate page from the rest of...
Definition: sc-boundary-2.c:11
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