diff options
Diffstat (limited to 'arch/x86_64/src/kernel/main.cpp')
| -rw-r--r-- | arch/x86_64/src/kernel/main.cpp | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/arch/x86_64/src/kernel/main.cpp b/arch/x86_64/src/kernel/main.cpp index dd0a1d8..7463fc4 100644 --- a/arch/x86_64/src/kernel/main.cpp +++ b/arch/x86_64/src/kernel/main.cpp @@ -8,14 +8,19 @@ namespace teachos::arch::kernel { - auto main() -> void + auto stack_overflow_test(int count) -> int { - video::vga::text::clear(); - video::vga::text::cursor(false); - video::vga::text::write("TeachOS is starting up...", video::vga::text::common_attributes::green_on_black); - - memory::initialize_memory_management(); + int test[5000] = {}; + if (test[0] == 0xFFFF) + { + return count; + } + count = stack_overflow_test(count); + return count++; + } + auto heap_test() -> void + { memory::heap::bump_allocator heap_allocator{memory::heap::HEAP_START, memory::heap::HEAP_START + memory::heap::HEAP_SIZE}; auto test = heap_allocator.allocate(1024); @@ -28,14 +33,22 @@ namespace teachos::arch::kernel test5.kernel_end = 3000; auto test6 = test4.kernel_end; auto test7 = test5.kernel_end; - if (test6 && test7) + auto test8 = memory::multiboot::read_multiboot2(); + if (test6 && test7 && test8.kernel_end) { video::vga::text::write("Kernel remapping successfull", video::vga::text::common_attributes::green_on_black); } + } + + auto main() -> void + { + video::vga::text::clear(); + video::vga::text::cursor(false); + video::vga::text::write("TeachOS is starting up...", video::vga::text::common_attributes::green_on_black); + + memory::initialize_memory_management(); - // TODO: Why is identity mapping multiboot2 information structure with new kernel not required and - // allocator.allocate_frame still works? - // TODO: Fix unmapping old level 4 page table and turn it into guard page, use Stack Probes for stack allocation if - // possible. + // stack_overflow_test(0); + // heap_test(); } } // namespace teachos::arch::kernel |
