PKUOS - Pintos
Pintos source browser for PKU Operating System 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
10void
11test_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}
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 one byte of the system call's argument on a separate page from the rest of...
Definition: sc-boundary-2.c:11
@ SYS_EXIT
Terminate this process.
Definition: syscall-nr.h:9