diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-09-02 18:54:57 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-09-02 18:54:57 +0200 |
| commit | 1a3a3a20773a5664c653a8aebcd10d288962285b (patch) | |
| tree | 8af03d6cc24613d105e9f0534d0fa95b2089b117 | |
| parent | 3cf50b41a40f6c2bd824549104015f6d2f6799c0 (diff) | |
Improved directory structure.
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | kernel/console.h | 2 | ||||
| -rw-r--r-- | kernel/interrupts.c | 1 | ||||
| -rw-r--r-- | kernel/interrupts.h | 2 | ||||
| -rw-r--r-- | kernel/kernel.h | 11 | ||||
| -rw-r--r-- | kernel/mem.c | 5 | ||||
| -rw-r--r-- | kernel/mp.c | 3 | ||||
| -rw-r--r-- | kernel/shell.c | 26 | ||||
| -rw-r--r-- | kernel/task.c | 3 | ||||
| -rw-r--r-- | kernel/vesa.c | 3 | ||||
| -rw-r--r-- | kernel/x86.h | 3 | ||||
| -rw-r--r-- | lib/bool/bool.h | 6 | ||||
| -rw-r--r-- | lib/int/stdint.h | 3 | ||||
| -rw-r--r-- | lib/string/string.c | 15 |
14 files changed, 49 insertions, 38 deletions
@@ -28,7 +28,9 @@ USB_STICK=/dev/sdf ############ flags ############ -CFLAGS=-ffreestanding -std=gnu99 -m32 -fno-asynchronous-unwind-tables -O0 # -Werror +CFLAGS=-ffreestanding -std=gnu99 -m32 -fno-asynchronous-unwind-tables -O0 +CFLAGS+= -I. +#CFLAGS+= -Werror ############ source and object files ############ diff --git a/kernel/console.h b/kernel/console.h index 8c547db..d3b9b58 100644 --- a/kernel/console.h +++ b/kernel/console.h @@ -1,7 +1,7 @@ #ifndef CONSOLE_H #define CONSOLE_H -#include "kernel.h" +#include "lib/int/stdint.h" #define SCR_VIDEOMEM 0xb8000 diff --git a/kernel/interrupts.c b/kernel/interrupts.c index df8e673..0852812 100644 --- a/kernel/interrupts.c +++ b/kernel/interrupts.c @@ -1,4 +1,5 @@ #include "interrupts.h" +#include "lib/int/stdint.h" #include "x86.h" #include "../lib/logger/log.h" // logger facilities diff --git a/kernel/interrupts.h b/kernel/interrupts.h index 5542801..6483347 100644 --- a/kernel/interrupts.h +++ b/kernel/interrupts.h @@ -1,8 +1,6 @@ #ifndef INTERRUPTS_H #define INTERRUPTS_H -#include "kernel.h" - #define INT_MAX 255 // size of our interrupts table int int_unhandled; // counting unhandled interrupts diff --git a/kernel/kernel.h b/kernel/kernel.h index e2dda98..364375b 100644 --- a/kernel/kernel.h +++ b/kernel/kernel.h @@ -1,16 +1,7 @@ #ifndef FOOLOS_KERNEL_H #define FOOLOS_KERNEL_H -#include <stdint.h> //needed for uint16_t +#define KERNEL_VERSION "FoolOs 0.1" -#define KERNEL_VERSION "Welcome to FoolOs 0.0.7" - -#define false 0 -#define true !false -#define bool uint8_t - - - -// #define DEBUG #endif diff --git a/kernel/mem.c b/kernel/mem.c index 6329e85..0f52873 100644 --- a/kernel/mem.c +++ b/kernel/mem.c @@ -1,7 +1,8 @@ #define MEM_PRINT_MEMORYMAP -#include "kernel.h" -#include "../lib/logger/log.h" // logger facilities +#include "lib/int/stdint.h" +#include "lib/logger/log.h" // logger facilities + #define FOOLOS_MODULE_NAME "mem" //! 8 blocks per byte diff --git a/kernel/mp.c b/kernel/mp.c index c8d42c7..e7e811b 100644 --- a/kernel/mp.c +++ b/kernel/mp.c @@ -1,7 +1,8 @@ #define FOOLOS_MODULE_NAME "mp" #include "x86.h" -#include "../lib/logger/log.h" // logger facilities +#include "lib/logger/log.h" // logger facilities +#include "lib/bool/bool.h" #define FOOLOS_APIC_SPUR_INT 0x00f0 #define FOOLOS_APIC_INT_COMMAND_LOW 0x0300 diff --git a/kernel/shell.c b/kernel/shell.c index aff2dc4..6a4a0aa 100644 --- a/kernel/shell.c +++ b/kernel/shell.c @@ -1,6 +1,8 @@ -#include "kernel.h" #include "interrupts.h" -#include "../lib/logger/log.h" // logger facilities +#include "lib/logger/log.h" // logger facilities +#include "lib/bool/bool.h" +#include "lib/int/stdint.h" + #define FOOLOS_MODULE_NAME "shell" #define COMMAND_LENGTH 255 @@ -40,16 +42,6 @@ void shell_backspace() } -int strcmp(char *b1, char *b2) -{ - int i=0; - while(b1[i]==b2[i]&&b1[i]!=0&&b2[i]!=0) i++; - - if(b1[i]==0&&b2[i]==0)return 1; - - return 0; -} - // TODO: EXECUTE LATER not inside INTERRUPT !!! void shell_execute() { @@ -57,24 +49,24 @@ void shell_execute() //scr_put_string(" processing command: "); //scr_put_string_nl(command); - if(1==strcmp(command,"TIME")) + if(1==strcmp(command,"TIME",0)) { log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"%d seconds passed since system start.",timer16); } - else if(1==strcmp(command,"EIGHT")) + else if(1==strcmp(command,"EIGHT",0)) { int_generate88(); } - else if(1==strcmp(command,"MEM")) + else if(1==strcmp(command,"MEM",0)) { mmap_show_free(); } - else if(1==strcmp(command,"ALLOC")) + else if(1==strcmp(command,"ALLOC",0)) { uint32_t *malloc= pmmngr_alloc_block(); log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"allocated 4KB block at: %08x.",malloc); } - else if(1==strcmp(command,"READ")) + else if(1==strcmp(command,"READ",0)) { uint8_t *read= flpydsk_read_sector (10); } diff --git a/kernel/task.c b/kernel/task.c index a46ce88..b1c2657 100644 --- a/kernel/task.c +++ b/kernel/task.c @@ -2,7 +2,8 @@ // // #include "kernel.h" -#include "../lib/logger/log.h" // logger facilities +#include "lib/logger/log.h" // logger facilities +#include "lib/int/stdint.h" #define FOOLOS_MODULE_NAME "task" int started; diff --git a/kernel/vesa.c b/kernel/vesa.c index e8b6269..eaf4edc 100644 --- a/kernel/vesa.c +++ b/kernel/vesa.c @@ -2,7 +2,8 @@ #include <stdarg.h> #include "kernel.h" -#include "../lib/logger/log.h" // logger facilities +#include "lib/logger/log.h" // logger facilities +#include "lib/int/stdint.h" #define FOOLOS_MODULE_NAME "vesa" #define FOOLSOS_SHOW_VESAMODES diff --git a/kernel/x86.h b/kernel/x86.h index 345162f..96671b5 100644 --- a/kernel/x86.h +++ b/kernel/x86.h @@ -1,8 +1,7 @@ #ifndef FOOLOS_X86_H #define FOOLOS_X86_H -#include "kernel.h" - +#include "lib/int/stdint.h" // todo: cli/sti?? // http://wiki.osdev.org/Interrupt_Service_Routines diff --git a/lib/bool/bool.h b/lib/bool/bool.h new file mode 100644 index 0000000..be2cbd4 --- /dev/null +++ b/lib/bool/bool.h @@ -0,0 +1,6 @@ +#include "lib/int/stdint.h" + +#define false 0 +#define true !false +#define bool uint8_t + diff --git a/lib/int/stdint.h b/lib/int/stdint.h new file mode 100644 index 0000000..38b7040 --- /dev/null +++ b/lib/int/stdint.h @@ -0,0 +1,3 @@ +#include <stdint.h> + + diff --git a/lib/string/string.c b/lib/string/string.c new file mode 100644 index 0000000..45d8ad1 --- /dev/null +++ b/lib/string/string.c @@ -0,0 +1,15 @@ +#include "lib/bool/bool.h" + + +//length 0 for null terminated strings; +bool strcmp(char *str1, char *str2, int length) +{ + int i=0; + + while(true) + { + if(str1[i]!=str2[i])return false; + i++; + if(i==length||str1[i]==str2[i]==0) return true; + } +} |
