diff --git a/kernel/src/main.cpp b/kernel/src/main.cpp index 7297b3fa..97fbdf3d 100644 --- a/kernel/src/main.cpp +++ b/kernel/src/main.cpp @@ -44,6 +44,11 @@ extern "C" void _start() Memory::walk_memory_map(); + kinfoln("System memory: %ld KB", Memory::get_system() / 1024); + kinfoln(" Free memory : %ld KB", kernelPMM.get_free() / 1024); + kinfoln(" Used memory : %ld KB", kernelPMM.get_used() / 1024); + kinfoln(" Reserved memory : %ld KB", kernelPMM.get_reserved() / 1024); + GDT::load(); kinfoln("Loaded GDT"); @@ -60,7 +65,7 @@ extern "C" void _start() kinfoln("Prepared PIC"); - PIT::initialize(1000); // 1000 times per second, 1 time per millisecond + PIT::initialize(200); // 200 times per second kinfoln("Prepared PIT"); diff --git a/kernel/src/memory/RangeAllocator.cpp b/kernel/src/memory/RangeAllocator.cpp index e76c1ba9..e4eaabbd 100644 --- a/kernel/src/memory/RangeAllocator.cpp +++ b/kernel/src/memory/RangeAllocator.cpp @@ -36,11 +36,11 @@ void RangeAllocator::init_from_mmap() for (uint64_t i = 0; i < mmap_entries; i++) { uint64_t index = MMapEnt_Ptr(ptr) / 4096; - if (!MMapEnt_IsFree(ptr)) { reserved_mem += 4096; } + if (!MMapEnt_IsFree(ptr)) { reserved_mem += MMapEnt_Size(ptr); } else { - free_mem += 4096; - bitmap_set(index, false); + free_mem += MMapEnt_Size(ptr); + for (uint64_t i = 0; i < (MMapEnt_Size(ptr) / 4096); i++) { bitmap_set(index + i, false); } } ptr++; }