diff options
author | Frans Kaashoek <[email protected]> | 2011-08-22 20:05:15 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2011-08-22 20:05:15 -0400 |
commit | d10d324e79bdcd7d7ab57952e6b140009737e868 (patch) | |
tree | ab693343b57db922a91e5fc33266742370595bd6 | |
parent | 39f8cc56d30bd1aaf097f17de0c410424c59a3f0 (diff) | |
download | xv6-labs-d10d324e79bdcd7d7ab57952e6b140009737e868.tar.gz xv6-labs-d10d324e79bdcd7d7ab57952e6b140009737e868.tar.bz2 xv6-labs-d10d324e79bdcd7d7ab57952e6b140009737e868.zip |
Remove sys_init syscall
Invoke initlog from forkret on first user process
-rw-r--r-- | initcode.S | 2 | ||||
-rw-r--r-- | main.c | 2 | ||||
-rw-r--r-- | proc.c | 6 | ||||
-rw-r--r-- | syscall.c | 9 | ||||
-rw-r--r-- | syscall.h | 1 |
5 files changed, 7 insertions, 13 deletions
@@ -7,8 +7,6 @@ # exec(init, argv) .globl start start: - movl $SYS_init, %eax - int $T_SYSCALL pushl $argv pushl $init pushl $0 // where caller pc would be @@ -60,7 +60,7 @@ mpmain(void) scheduler(); // start running processes } -pde_t enterpgdir[]; +pde_t enterpgdir[]; // For entry.S // Start the non-boot (AP) processors. static void @@ -322,8 +322,14 @@ yield(void) void forkret(void) { + static int first = 1; // Still holding ptable.lock from scheduler. release(&ptable.lock); + + if (first) { + first = 0; + initlog(); + } // Return to "caller", actually trapret (see allocproc). } @@ -99,15 +99,7 @@ extern int sys_wait(void); extern int sys_write(void); extern int sys_uptime(void); -int -sys_init(void) -{ - initlog(); - return 0; -} - static int (*syscalls[])(void) = { -[SYS_init] sys_init, [SYS_fork] sys_fork, [SYS_exit] sys_exit, [SYS_wait] sys_wait, @@ -122,7 +114,6 @@ static int (*syscalls[])(void) = { [SYS_sbrk] sys_sbrk, [SYS_sleep] sys_sleep, [SYS_uptime] sys_uptime, -// File system calls that are run in a transaction: [SYS_open] sys_open, [SYS_write] sys_write, [SYS_mknod] sys_mknod, @@ -1,5 +1,4 @@ // System call numbers -#define SYS_init 0 #define SYS_fork 1 #define SYS_exit 2 #define SYS_wait 3 |