diff --git a/hermit/arch/x86/kernel/entry.asm b/hermit/arch/x86/kernel/entry.asm index 50dc606d2..fc5e50681 100644 --- a/hermit/arch/x86/kernel/entry.asm +++ b/hermit/arch/x86/kernel/entry.asm @@ -567,7 +567,7 @@ isrsyscall: ; => using of r10 for the temporary storage of the 4th argument mov rcx, r10 - ; during the system call, HermitCore allows interrupts + ; during a system call, HermitCore allows interrupts sti call syscall_handler cli diff --git a/hermit/kernel/main.c b/hermit/kernel/main.c index 6e8d3722b..e5ed6681e 100644 --- a/hermit/kernel/main.c +++ b/hermit/kernel/main.c @@ -135,11 +135,27 @@ int smp_main(void) return 0; } -int main(void) +// init task => creates all other tasks an initialize the LwIP +static int initd(void* arg) { char* argv1[] = {"/bin/hello", NULL}; - //char* argv2[] = {"/bin/jacobi", NULL}; + char* argv2[] = {"/bin/jacobi", NULL}; + //create_kernel_task(NULL, foo, "foo1", NORMAL_PRIO); + //create_kernel_task(NULL, foo, "foo2", NORMAL_PRIO); + create_user_task(NULL, "/bin/hello", argv1, NORMAL_PRIO); + create_user_task(NULL, "/bin/jacobi", argv2, NORMAL_PRIO); + create_user_task(NULL, "/bin/jacobi", argv2, NORMAL_PRIO); + +#if 0 + init_netifs(); +#endif + + return 0; +} + +int main(void) +{ hermit_init(); system_calibration(); // enables also interrupts @@ -157,15 +173,7 @@ int main(void) list_fs(fs_root, 1); #endif - create_kernel_task(NULL, foo, "foo1", NORMAL_PRIO); - create_kernel_task(NULL, foo, "foo2", NORMAL_PRIO); - create_user_task(NULL, "/bin/hello", argv1, NORMAL_PRIO); - //create_user_task(NULL, "/bin/jacobi", argv2, NORMAL_PRIO); - //create_user_task(NULL, "/bin/jacobi", argv2, NORMAL_PRIO); - -#if 0 - init_netifs(); -#endif + create_kernel_task(NULL, initd, NULL, NORMAL_PRIO); while(1) { check_workqueues();