Fixed size counting in RangeAllocator
Which was displaying VERY wrong sizes beforehand. (Number of regions * 4096 instead of number of bytes)
This commit is contained in:
parent
b4484e951d
commit
929962efc9
@ -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");
|
||||
|
||||
|
@ -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++;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user