- // Ensure it's valid
- nPMemMapEnts = PMemMap_ValidateMap(pmemmap, nPMemMapEnts, MAX_PMEMMAP_ENTS);
- // TODO: Error handling
-
- // Replace kernel with PMEMTYPE_USED
- nPMemMapEnts = PMemMap_MarkRangeUsed(
- pmemmap, nPMemMapEnts, MAX_PMEMMAP_ENTS,
- KERNEL_LOAD, (tVAddr)&gKernelEnd - KERNEL_LOAD - KERNEL_BASE
- );
-
- // Replace modules with PMEMTYPE_USED
- nPMemMapEnts = PMemMap_MarkRangeUsed(pmemmap, nPMemMapEnts, MAX_PMEMMAP_ENTS,
- mbInfo->Modules, mbInfo->ModuleCount*sizeof(*mods)
- );
- mods = (void*)mbInfo->Modules;
- for( int i = 0; i < mbInfo->ModuleCount; i ++ )
- {
- nPMemMapEnts = PMemMap_MarkRangeUsed(
- pmemmap, nPMemMapEnts, MAX_PMEMMAP_ENTS,
- mods->Start, mods->End - mods->Start
- );
- }
-
- // Debug - Output map
- PMemMap_DumpBlocks(pmemmap, nPMemMapEnts);
-
- // Adjust Multiboot structure address
- mbInfo = (void*)( (Uint)MbInfoPtr + KERNEL_BASE );
-