diff options
Diffstat (limited to 'src/boucane.cc')
| -rw-r--r-- | src/boucane.cc | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/boucane.cc b/src/boucane.cc index b298e8a..5823a15 100644 --- a/src/boucane.cc +++ b/src/boucane.cc @@ -1,8 +1,12 @@ #include "boucane.hpp" +#include "core/paging.hpp" +#include "drivers/memtext.hpp" #include "core/idt.hpp" #include "boot/multiboot2.hpp" #include "drivers/framebuffer.hpp" -#include "drivers/psf.hpp" +#include "drivers/psftext.hpp" +#include "drivers/vgatext.hpp" +#include "libs/stdio.hpp" #include "libs/string.hpp" u64 kvar_kernel_vma; @@ -13,6 +17,8 @@ u64 kvar_bss_end; u64 kvar_terminus_psf_start; u64 kvar_terminus_psf_end; +void (*printk)(char *str,...)=printf; + extern "C" void boucane(u64 mb_info){ // Init linker variables asm volatile ("movq $__kernel_vma, %0":"=m"(kvar_kernel_vma)); @@ -26,11 +32,10 @@ extern "C" void boucane(u64 mb_info){ // Init data structures asm volatile ("call load_gdt"); paging_enable(); + memtext_init(); idt_enable_interrupt(); - + // Looking for framebuffer - vga_t_init(); - vga_t_clear(); FRAMEBUFFER fb_info; if(mb2_find_framebuffer((u32*)mb_info, &fb_info)){ if(fb_info.bpp>16){ @@ -41,8 +46,12 @@ extern "C" void boucane(u64 mb_info){ conf.width=fb_info.width; conf.height=fb_info.height; framebuffer_init(conf); - psf_init((void*)kvar_terminus_psf_start); - __putchar=psf_putchar; + psftext_init((void*)kvar_terminus_psf_start); + __putchar=psftext_putchar; + } + else{ + vgatext_init(); + __putchar=vgatext_putchar; } } |
