From 50300fa573bf2bc00f9732e812d54ab77cf03dd7 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Sun, 23 Nov 2014 20:48:34 +0100 Subject: mostly pr and cosmetics --- kernel/config.h | 12 ++++++++---- kernel/kernel.c | 50 +++++++++++++++++--------------------------------- kernel/syscalls.c | 2 +- kernel/task.c | 2 +- 4 files changed, 27 insertions(+), 39 deletions(-) (limited to 'kernel') diff --git a/kernel/config.h b/kernel/config.h index e48c63c..fb68dec 100644 --- a/kernel/config.h +++ b/kernel/config.h @@ -4,11 +4,15 @@ * ********************************************/ -//#define FOOLOS_COMPILE_FLOPPY // compile floppy drivers -#define FOOLOS_CONSOLE_AUTOBREAK // add newline automatically at end of line -#define FOOLOS_LOG_OFF // do not log anything -#define FOOLOS_CONSOLE // otherwise VESA will be used! +#ifndef FOOLOS_CONFIG_H +#define FOOLOS_CONFIG_H + +#define FOOLOS_CONSOLE_AUTOBREAK // add newline automatically at end of line +#define FOOLOS_LOG_OFF // do not log anything +#define FOOLOS_CONSOLE // otherwise VESA will be used! #define MEM_PRINT_MEMORYMAP #define LOG_BUF_SIZE 4069 #define LOG_SYSCALLS +#endif + diff --git a/kernel/kernel.c b/kernel/kernel.c index f788cee..66ca21a 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -1,22 +1,17 @@ -/* - * in freestanding mode we can just use this c lib headers - * stdbool,sddef,stdint, - * float,iso646,limits,stdarg - */ +#define FOOLOS_MODULE_NAME "kernel" #ifdef __linux__ #error "Watchout! this is not Linux but FoolOS. Use a cross-compiler" #endif -#define FOOLOS_MODULE_NAME "kernel" +#include "config.h" #include -#include "config.h" #include "asm/asm.h" #include "lib/logger/log.h" -#include "lib/bool/bool.h" + #include "lib/buffer/ringbuffer.h" #include "smp.h" @@ -37,16 +32,9 @@ #include "task.h" -// -// KERNEL MAIN -// +// mp informs us if this if this is the main processor void kernel_main(uint32_t initial_stack, int mp) { - // - // Configuring the PIT timer. - // - timer_init(); - // // Memory Init // @@ -58,10 +46,15 @@ void kernel_main(uint32_t initial_stack, int mp) // mem_init(0x7c00+1,*((uint16_t *)(0x7c00))); + // + // Configuring the PIT timer. + // + timer_init(); + // // Activate Virtual Memory (paging) // - //vmem_init(); + vmem_init(); // // init output to screen @@ -74,7 +67,7 @@ void kernel_main(uint32_t initial_stack, int mp) // - // Setup PIC + // Setup PIC (interrupts) // pic_setup(); @@ -110,6 +103,11 @@ void kernel_main(uint32_t initial_stack, int mp) // ringbuffer for stdin! ringbuffer_init(); + // load and run inode 15 (shell) + // we will come back into the kernel only on interrupts... + syscall_execve(15,0,0); + + // // Start the other Processors (also before paging for some reason!) // @@ -118,7 +116,6 @@ void kernel_main(uint32_t initial_stack, int mp) // but it will be copied over mbr - // // Scan the PCI Bus // @@ -127,31 +124,18 @@ void kernel_main(uint32_t initial_stack, int mp) // //pci_init(); - // - // Initialize Floppy Disk if activated in config.h - // Sadly we won't use it anyway so its uncommented anyway. - // - //#ifdef FOOLOS_COMPILE_FLOPPY - //floppy_init(); - //#endif - // // Initialize Multitasking // // For now this starts three "tasks" which are scheduled // round robin style. // - syscall_execve(15,0,0); // run fool-shell! (execve needs inode id) //task_init(); - // - //vesa_init_doublebuff(); - - // Just hang around here, if its reached. // we do our tasks anyway. on the next clock tick. - while(1); + // while(1); } diff --git a/kernel/syscalls.c b/kernel/syscalls.c index 0e4ee66..401a5aa 100644 --- a/kernel/syscalls.c +++ b/kernel/syscalls.c @@ -344,7 +344,7 @@ int syscall_exit(int ret, int none1, int none2) log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"exit (ret=%d)", ret); #endif - static char *argv[]={"test",NULL}; + static char *argv[]={"shell","--silent",NULL}; syscall_execve(15,argv,0); // start shell } diff --git a/kernel/task.c b/kernel/task.c index ef25b05..df48afb 100644 --- a/kernel/task.c +++ b/kernel/task.c @@ -32,7 +32,7 @@ void task_test1() cc2=c2; cc3=c3; - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"tasks progress: %d %dn", cc2, cc3); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"tasks progress: %d %d", cc2, cc3); asm("sti"); c1++; -- cgit v1.2.3