diff options
| author | Miguel <m.i@gmx.at> | 2018-09-29 19:57:52 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-29 19:57:52 +0200 |
| commit | 75433d155c152b809e9f25b1099fc06d6106308b (patch) | |
| tree | f4f84309e6cf2aa9bc0d9df5ae532b94a60fea0f /kernel/kernel.c | |
| parent | 73e80bf4b6c69b92a04b525f114a072a1c4b0d3a (diff) | |
improving window compositor
Diffstat (limited to 'kernel/kernel.c')
| -rw-r--r-- | kernel/kernel.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c index c6618ce..03dae1f 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -13,6 +13,7 @@ #include "vmem.h" //-- clean below headers --// +#include "asm_start.h" #include "compositor.h" #include "sysfs.h" #include "pci.h" @@ -40,12 +41,6 @@ #include "driver/vesa.h" #include "asm_pit.h" -//ugly? -extern uint32_t kernel_end[]; -extern uint32_t kernel_start[]; - -//TODO: we fear overrun of the initial buffer! -// /* F00L 0S Entry point (called directly from asm/multiboot.asm */ void kernel_main(uint32_t eax,uint32_t ebx) { @@ -62,9 +57,10 @@ void kernel_main(uint32_t eax,uint32_t ebx) klog("======================================"); uint32_t *top_kernel_vmem=VMEM_KERNEL+VMEM_KERNEL_PAGES*4096; - klog("The Kernel was loaded at: 0x%08X - 0x%08X",kernel_start,kernel_end); + klog("The Kernel was loaded at: 0x%08X - 0x%08X",get_kernel_start(),get_kernel_end()); klog("0x00000000 - 0x%08X will get identity mapped", VMEM_KERNEL_PAGES*4096); if(kernel_end>=top_kernel_vmem)kpanic("kernel to big. increase VMEM_KERNEL_PAGES"); + fixme("fear overrun of the initial buffer!"); // -- DISABLE LEGACY PIC -- // klog("Remapping & Disabling Programmable Interrupt Controller (PIC) ..."); @@ -106,7 +102,6 @@ void kernel_main(uint32_t eax,uint32_t ebx) fixme("do not disable anymore on context switching!"); fixme("write convenneint management funcs as: mapCPU, mapKErnel, map USerspace.."); fixme("move stack and guard with empty pages!"); - vmem_init(cfg_multiboot,&cfg_acpi,e1000_addr); struct pdirectory_struct *dir=vmem_kernel_dir(); @@ -157,10 +152,12 @@ void kernel_main(uint32_t eax,uint32_t ebx) klog("Unix Time = %u seconds",unixtime); // -- E1000 INIT (TODO: only if present!) --/ - klog("E1000 init ..."); - fixme("do not hardcode address and allow paging somehwere else"); - e1000_init(e1000_addr); + if(e1000_addr) + { + klog("E1000 init ..."); + e1000_init(e1000_addr); + } klog("Symmetric Multi Processing (SMP) start ... "); - smp_start_aps(&cfg_acpi); + smp_bsp(); } |
