diff --git a/kernel/main.c b/kernel/main.c index fe28258c5..16b859e39 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -210,6 +210,9 @@ PUBLIC void main() /* Architecture-dependent initialization. */ arch_init(); + /* System and processes initialization */ + system_init(); + #if SPROFILE sprofiling = 0; /* we're not profiling until instructed to */ #endif /* SPROFILE */ diff --git a/kernel/proto.h b/kernel/proto.h index 7a89feacf..48a88453e 100644 --- a/kernel/proto.h +++ b/kernel/proto.h @@ -59,6 +59,7 @@ _PROTOTYPE( void send_sig, (int proc_nr, int sig_nr) ); _PROTOTYPE( void cause_sig, (proc_nr_t proc_nr, int sig_nr) ); _PROTOTYPE( void sig_delay_done, (struct proc *rp) ); _PROTOTYPE( void sys_task, (void) ); +_PROTOTYPE( void system_init, (void) ); #define numap_local(proc_nr, vir_addr, bytes) \ umap_local(proc_addr(proc_nr), D, (vir_addr), (bytes)) _PROTOTYPE( phys_bytes umap_grant, (struct proc *, cp_grant_id_t, vir_bytes)); diff --git a/kernel/system.c b/kernel/system.c index b1a49f2d7..2e7d5d71b 100644 --- a/kernel/system.c +++ b/kernel/system.c @@ -75,10 +75,6 @@ PUBLIC void sys_task() int who_p; endpoint_t who_e; - /* Initialize the system task. */ - initialize(); - - while (TRUE) { struct proc *restarting; @@ -146,7 +142,7 @@ PUBLIC void sys_task() /*===========================================================================* * initialize * *===========================================================================*/ -PRIVATE void initialize(void) +PUBLIC void system_init(void) { register struct priv *sp; int i;