Detecting Memory (x86): Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content deleted Content added
→BIOS Function: INT 0x15, AX = 0xE881: no, that link doesn't help |
m I have found an bios that use 24 byte entrie for int 0x15 function 0xe820 |
||
Line 60: | Line 60: | ||
In reality, this function returns an unsorted list that may contain unused entries and (in rare/dodgy cases) may return overlapping areas. |
In reality, this function returns an unsorted list that may contain unused entries and (in rare/dodgy cases) may return overlapping areas. |
||
Each list entry is stored in memory at ES:DI, and DI is <b>not</b> incremented for you. The format of an entry is 2 uint64_t's and a uint32_t in the 20 byte version, |
Each list entry is stored in memory at ES:DI, and DI is <b>not</b> incremented for you. The format of an entry is 2 uint64_t's and a uint32_t in the 20 byte version, |
||
plus one additional uint32_t in the 24 byte ACPI 3.0 version |
plus one additional uint32_t in the 24 byte ACPI 3.0 version. |
||
It is probably best to always store the list entries as 24 byte quantities -- to preserve uint64_t alignments, if nothing else. (Make sure to set |
It is probably best to always store the list entries as 24 byte quantities -- to preserve uint64_t alignments, if nothing else. (Make sure to set |
||
that last uint64_t to 1 before each call, to make your map compatible with ACPI). |
that last uint64_t to 1 before each call, to make your map compatible with ACPI). |