CS318 - Pintos
Pintos source browser for JHU CS318 course
src
tests
userprog
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
>
5
#include "
tests/userprog/boundary.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
Generated on Thu Aug 22 2019 10:19:15 for CS318 - Pintos by
1.8.16