diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-28 15:07:12 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-28 15:07:12 +0200 |
| commit | 067d6e340be698b0e26b7732215a1969e0e683f3 (patch) | |
| tree | 88cf82e14bdcfc460a18980a73e419fbb0c58763 /src/boucane.cc | |
| parent | 778e43c0a2d1f1cc952c3ec0c0b9d5bd3ff4995a (diff) | |
Refactoring
Diffstat (limited to 'src/boucane.cc')
| -rw-r--r-- | src/boucane.cc | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/src/boucane.cc b/src/boucane.cc index 1e58d65..b298e8a 100644 --- a/src/boucane.cc +++ b/src/boucane.cc @@ -1,24 +1,30 @@ #include "boucane.hpp" #include "core/idt.hpp" #include "boot/multiboot2.hpp" -#include "core/paging.hpp" -#include "core/apic.hpp" -#include "drivers/acpi.hpp" -#include "drivers/psf.hpp" #include "drivers/framebuffer.hpp" -#include "libs/stdio.hpp" -#include "core/asm.hpp" +#include "drivers/psf.hpp" +#include "libs/string.hpp" -u64 kernel_vma,stack_pma,userspace_pma; +u64 kvar_kernel_vma; +u64 kvar_stack_pma; +u64 kvar_userspace_pma; +u64 kvar_bss_start; +u64 kvar_bss_end; +u64 kvar_terminus_psf_start; +u64 kvar_terminus_psf_end; extern "C" void boucane(u64 mb_info){ // Init linker variables - asm volatile ("movq $__kernel_vma, %0":"=m"(kernel_vma)); - asm volatile ("movq $__userspace_pma, %0":"=m"(userspace_pma)); - asm volatile ("movq $__stack_pma, %0":"=m"(stack_pma)); - asm volatile ("call load_gdt"); + asm volatile ("movq $__kernel_vma, %0":"=m"(kvar_kernel_vma)); + asm volatile ("movq $__userspace_pma, %0":"=m"(kvar_userspace_pma)); + asm volatile ("movq $__stack_pma, %0":"=m"(kvar_stack_pma)); + asm volatile ("movq $__bss_start, %0":"=m"(kvar_bss_start)); + asm volatile ("movq $__bss_end, %0":"=m"(kvar_bss_end)); + asm volatile ("movq $res_binary_res_terminus_psf_start, %0":"=m"(kvar_terminus_psf_start)); + asm volatile ("movq $res_binary_res_terminus_psf_end, %0":"=m"(kvar_terminus_psf_end)); // Init data structures + asm volatile ("call load_gdt"); paging_enable(); idt_enable_interrupt(); @@ -26,7 +32,6 @@ extern "C" void boucane(u64 mb_info){ vga_t_init(); vga_t_clear(); FRAMEBUFFER fb_info; - if(mb2_find_framebuffer((u32*)mb_info, &fb_info)){ if(fb_info.bpp>16){ FB_CFG conf; @@ -36,7 +41,7 @@ extern "C" void boucane(u64 mb_info){ conf.width=fb_info.width; conf.height=fb_info.height; framebuffer_init(conf); - psf_init((void*)&res_binary_res_terminus_psf_start); + psf_init((void*)kvar_terminus_psf_start); __putchar=psf_putchar; } } @@ -44,6 +49,5 @@ extern "C" void boucane(u64 mb_info){ // Booting! printk("Booting Boucane v%d.%d.%d\n",VERSION_MAJOR,VERSION_MINOR, VERSION_PATH); - while(1); }
\ No newline at end of file |
