diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-12-09 22:55:14 +0100 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-12-09 22:55:14 +0100 |
| commit | f4518cf996c137e18cd70dd2d23ba9d8cfcfb526 (patch) | |
| tree | 416952ac9efd8fc0bd7b67cbc50ed8177fac2b56 | |
| parent | 7e965f276c47d29969f5470533d40df03536d190 (diff) | |
passing vesa physbase to vmem and some cleanup
| -rw-r--r-- | fs/fs.c | 1 | ||||
| -rw-r--r-- | kernel/console.c | 2 | ||||
| -rw-r--r-- | kernel/kernel.c | 2 | ||||
| -rw-r--r-- | kernel/syscalls.c | 2 | ||||
| -rw-r--r-- | kernel/vmem.c | 12 | ||||
| -rw-r--r-- | kernel/x86.c | 1 | ||||
| -rw-r--r-- | lib/bool/bool.h | 8 | ||||
| -rw-r--r-- | lib/int/stdint.h | 5 | ||||
| -rw-r--r-- | lib/logger/log.c | 1 | ||||
| -rw-r--r-- | lib/string/string.h | 2 | ||||
| -rw-r--r-- | video/vesa.c | 1 |
11 files changed, 13 insertions, 24 deletions
@@ -1,5 +1,4 @@ // abstraction layer for filesystems -#include <lib/int/stdint.h> #include "fs.h" #include "ext2.h" diff --git a/kernel/console.c b/kernel/console.c index f363d9e..b815c24 100644 --- a/kernel/console.c +++ b/kernel/console.c @@ -34,7 +34,7 @@ void console_put_str_red(char *s){scr_put_string(s,SCR_RED);} #include "video/vesa.h" -void console_init(){ +uint32_t console_init(){ int inode_nr=ext2_filename_to_inode(EXT2_RAM_ADDRESS,"/binfont.bin"); if(inode_nr!=-1)ext2_inode_content(EXT2_RAM_ADDRESS,inode_nr,0x1300000,0xffff); // load font; diff --git a/kernel/kernel.c b/kernel/kernel.c index 19c9611..401204a 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -49,7 +49,7 @@ void kernel_main(uint32_t initial_stack, int mp) // // Activate Virtual Memory (paging) - pdirectory *dir=vmem_init(); + pdirectory *dir=vmem_init(physbase); // log buffered messages to console diff --git a/kernel/syscalls.c b/kernel/syscalls.c index e43c509..63c3ce5 100644 --- a/kernel/syscalls.c +++ b/kernel/syscalls.c @@ -2,12 +2,12 @@ #include "lib/buffer/ringbuffer.h" #include "lib/logger/log.h" -#include "lib/bool/bool.h" #include "fs/fs.h" #include "fs/ext2.h" #include "kernel/console.h" #include "kernel/config.h" #include <sys/stat.h> +#include <stdbool.h> int syscall_unhandled(int nr) diff --git a/kernel/vmem.c b/kernel/vmem.c index 24a2f92..c2892c7 100644 --- a/kernel/vmem.c +++ b/kernel/vmem.c @@ -9,6 +9,8 @@ #include "lib/logger/log.h" // logger facilities #define FOOLOS_MODULE_NAME "vmem" +static uint32_t phys; + // TODO : why is the frame not 0xfffff?? enum PAGE_PTE_FLAGS { @@ -293,8 +295,10 @@ pdirectory* vmem_new_space_dir(pdirectory *copy_dir) virt_addr+=1024*4096; } - phys_addr=0xFc000000; - virt_addr=0xFc000000; + if(phys!=0) + { + phys_addr=phys; + virt_addr=phys; // vesa for(int j=0;j<5;j++) { @@ -340,6 +344,7 @@ pdirectory* vmem_new_space_dir(pdirectory *copy_dir) phys_addr+=1024*4096; virt_addr+=1024*4096; } + } // programm space virt_addr=0x8000000; @@ -468,8 +473,9 @@ void vmem_set_dir(pdirectory *dir) -pdirectory* vmem_init() +pdirectory* vmem_init(uint32_t physbase) { + phys=physbase; log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"init paging"); pdirectory *dir=vmem_new_space_dir(0); vmem_set_dir(dir); diff --git a/kernel/x86.c b/kernel/x86.c index 4163481..fdfb638 100644 --- a/kernel/x86.c +++ b/kernel/x86.c @@ -2,7 +2,6 @@ #include "x86.h" #include "timer.h" -#include "lib/int/stdint.h" #include "lib/logger/log.h" // diff --git a/lib/bool/bool.h b/lib/bool/bool.h deleted file mode 100644 index c2c6171..0000000 --- a/lib/bool/bool.h +++ /dev/null @@ -1,8 +0,0 @@ -/* -#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 deleted file mode 100644 index f2b975f..0000000 --- a/lib/int/stdint.h +++ /dev/null @@ -1,5 +0,0 @@ -/* -#include <stdint.h> -*/ - - diff --git a/lib/logger/log.c b/lib/logger/log.c index 7d7bc58..9f859bc 100644 --- a/lib/logger/log.c +++ b/lib/logger/log.c @@ -7,7 +7,6 @@ #include "kernel/config.h" #include "kernel/console.h" #include "lib/printf/printf.h" -#include "lib/int/stdint.h" #include "kernel/timer.h" diff --git a/lib/string/string.h b/lib/string/string.h index 5caf0c2..a804de9 100644 --- a/lib/string/string.h +++ b/lib/string/string.h @@ -1,3 +1,3 @@ -#include "lib/bool/bool.h" +#include <stdbool.h> bool strcmp(char *str1, char *str2, int length); void* memcpy(void* restrict dstptr, const void* restrict srcptr, int size); diff --git a/video/vesa.c b/video/vesa.c index 8952f81..a5ee4e5 100644 --- a/video/vesa.c +++ b/video/vesa.c @@ -4,7 +4,6 @@ #include "vesa.h" #include "lib/logger/log.h" // logger facilities -#include "lib/int/stdint.h" #include "lib/printf/printf.h" #define FOOLOS_MODULE_NAME "vesa" |
