StupidOS/boot/efi/memory.inc

58 lines
1 KiB
PHP
Raw Normal View History

2024-09-08 10:01:20 +00:00
;; File: memory.inc
section '.text' code executable readable
efi_memory_init:
mov eax, [pEfiBootServices]
2024-09-08 10:01:20 +00:00
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
2025-01-31 10:51:12 +00:00
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
2024-09-08 10:01:20 +00:00
ret
section '.data' data readable writeable
;; Variable: fnAllocatePool
fnAllocatePool dd ?
;; Variable: fnFreePool
fnFreePool dd ?
;; Variable: fnGetMemoryMap
fnGetMemoryMap dd ?
2025-01-31 10:51:12 +00:00
uMemMapSize dd 0
uDescSize dd 0
uDescVer dd 0
pMemMap dd 0
szRes du "Result: %x", 0
szRes2 du "Result: %x", 0