- SetMemory(0x000000, 0x01000, LoaderFirmwarePermanent); // Realmode IVT / BDA
- SetMemory(0x0A0000, 0x50000, LoaderFirmwarePermanent); // Video memory
- SetMemory(0x0F0000, 0x10000, LoaderSpecialMemory); // ROM
- SetMemory(0xFFF000, 0x01000, LoaderSpecialMemory); // unusable memory (do we really need this?)
-
- /* Reserve some static ranges for freeldr */
- ReserveMemory(0x1000, STACKLOW - 0x1000, LoaderFirmwareTemporary, "BIOS area");
- ReserveMemory(STACKLOW, STACKADDR - STACKLOW, LoaderOsloaderStack, "FreeLdr stack");
- ReserveMemory(FREELDR_BASE, FrLdrImageSize, LoaderLoadedProgram, "FreeLdr image");
-
- /* Default to 1 page above freeldr for the disk read buffer */
- DiskReadBuffer = (PUCHAR)ALIGN_UP_BY(FREELDR_BASE + FrLdrImageSize, PAGE_SIZE);
- DiskReadBufferSize = PAGE_SIZE;
-
- /* Scan for free range above freeldr image */
- for (i = 0; i < PcMapCount; i++)
- {
- if ((PcMemoryMap[i].BasePage > (FREELDR_BASE / PAGE_SIZE)) &&
- (PcMemoryMap[i].MemoryType == LoaderFree))
- {
- /* Use this range for the disk read buffer */
- DiskReadBuffer = (PVOID)(PcMemoryMap[i].BasePage * PAGE_SIZE);
- DiskReadBufferSize = min(PcMemoryMap[i].PageCount * PAGE_SIZE,
- MAX_DISKREADBUFFER_SIZE);
- break;
- }
- }
-
- TRACE("DiskReadBuffer=0x%p, DiskReadBufferSize=0x%lx\n",
- DiskReadBuffer, DiskReadBufferSize);
-
- /* Now reserve the range for the disk read buffer */
- ReserveMemory((ULONG_PTR)DiskReadBuffer,
- DiskReadBufferSize,
- LoaderFirmwareTemporary,
- "Disk read buffer");
-
- TRACE("Dumping resulting memory map:\n");
- for (i = 0; i < PcMapCount; i++)
- {
- TRACE("BasePage=0x%lx, PageCount=0x%lx, Type=%s\n",
- PcMemoryMap[i].BasePage,
- PcMemoryMap[i].PageCount,
- MmGetSystemMemoryMapTypeString(PcMemoryMap[i].MemoryType));
- }
+ SetMemory(PcMemoryMap, 0x000000, 0x01000, LoaderFirmwarePermanent); // Realmode IVT / BDA
+ SetMemory(PcMemoryMap, 0x0A0000, 0x50000, LoaderFirmwarePermanent); // Video memory
+ SetMemory(PcMemoryMap, 0x0F0000, 0x10000, LoaderSpecialMemory); // ROM
+ SetMemory(PcMemoryMap, 0xFFF000, 0x01000, LoaderSpecialMemory); // unusable memory (do we really need this?)