uint HAL_PhysInfo(void *table,uint *rammax)
Entry | |
---|---|
table | Location to store physical memory map table |
rammax | Location to store max physical RAM address |
Exit | |
---|---|
- | Returns min physical RAM address, or required size of physical memory map table |
This call is used to the physical memory arrangement table of the machine, as per SWI OS_Memory reason codes 6 and 7. User software should always use the OS_Memory SWI instead of making this call directly.
If table is NULL, OS_Memory 6 behaviour is taken: rammax should be ignored, and the size (in bytes) required to store the physical memory arrangement table is returned.
If table is non-NULL, then it should be filled with the physical memory arrangement table, as per OS_Memory 7. However, it is the kernel’s responsibility to fill in information about the available RAM, so all RAM pages should be marked as (NotPresent OR NotAvailable). To aid the kernel in filling in the RAM map, the return value of the function must be the lowest address which physical RAM can exist, and rammax must be filled with the highest address (inclusive) in which physical RAM can exist. The kernel will then update the relevant areas of the table to indicate how much RAM is actually available.