|
|
- #include <defs.h>
- #include <syscall.h>
- #include <stdio.h>
- #include <ulib.h>
- #include <stat.h>
- #include <string.h>
- #include <lock.h>
-
- static lock_t fork_lock = INIT_LOCK;
-
- void
- lock_fork(void) {
- lock(&fork_lock);
- }
-
- void
- unlock_fork(void) {
- unlock(&fork_lock);
- }
-
- void
- exit(int error_code) {
- sys_exit(error_code);
- cprintf("BUG: exit failed.\n");
- while (1);
- }
-
- int
- fork(void) {
- return sys_fork();
- }
-
- int
- wait(void) {
- return sys_wait(0, NULL);
- }
-
- int
- waitpid(int pid, int *store) {
- return sys_wait(pid, store);
- }
-
- void
- yield(void) {
- sys_yield();
- }
-
- int
- kill(int pid) {
- return sys_kill(pid);
- }
-
- int
- getpid(void) {
- return sys_getpid();
- }
-
- //print_pgdir - print the PDT&PT
- void
- print_pgdir(void) {
- sys_pgdir();
- }
-
- void
- lab6_set_priority(uint32_t priority)
- {
- sys_lab6_set_priority(priority);
- }
-
- int
- sleep(unsigned int time) {
- return sys_sleep(time);
- }
-
- unsigned int
- gettime_msec(void) {
- return (unsigned int)sys_gettime();
- }
-
- int
- __exec(const char *name, const char **argv) {
- int argc = 0;
- while (argv[argc] != NULL) {
- argc ++;
- }
- return sys_exec(name, argc, argv);
- }
|