StupidOS/boot/efi/memory.inc
2025-01-31 11:51:12 +01:00

57 lines
1 KiB
PHP

;; File: memory.inc
section '.text' code executable readable
efi_memory_init:
mov eax, [pEfiBootServices]
mov ecx, [eax + EFI_BOOT_SERVICES.AllocatePool]
mov [fnAllocatePool], ecx
mov ecx, [eax + EFI_BOOT_SERVICES.FreePool]
mov [fnFreePool], ecx
mov ecx, [eax + EFI_BOOT_SERVICES.GetMemoryMap]
mov [fnGetMemoryMap], ecx
call efi_get_memory_map
ret
efi_get_memory_map:
push ebp
mov ebp, esp
sub esp, 4
lea eax, [ebp - 4]
EFI_CALL [fnGetMemoryMap], uMemMapSize, 0, eax, uDescSize, uDescVer
add dword [uMemMapSize], 4096
EFI_CALL [fnAllocatePool], EFI_LOADER_DATA, [uMemMapSize], pMemMap
LOG szRes2, eax
EFI_CALL [fnGetMemoryMap], uMemMapSize, [pMemMap], eax, uDescSize, uDescVer
LOG szRes, eax
leave
ret
section '.data' data readable writeable
;; Variable: fnAllocatePool
fnAllocatePool dd ?
;; Variable: fnFreePool
fnFreePool dd ?
;; Variable: fnGetMemoryMap
fnGetMemoryMap dd ?
uMemMapSize dd 0
uDescSize dd 0
uDescVer dd 0
pMemMap dd 0
szRes du "Result: %x", 0
szRes2 du "Result: %x", 0