aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/kernel/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/src/kernel/main.cpp')
-rw-r--r--arch/x86_64/src/kernel/main.cpp35
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