PKUOS - Pintos
Pintos source browser for PKU Operating System 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
9void
10test_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}
void * get_boundary_area(void)
Returns the beginning of a page.
Definition: boundary.c:18
void fail(const char *format,...)
Definition: lib.c:40
void test_main(void)
Invokes a system call with the system call number and its argument on separate pages.
Definition: sc-boundary.c:10
@ SYS_EXIT
Terminate this process.
Definition: syscall-nr.h:9