| ||
| Physical Address Space Map (PASM) File: 80x86/inc/kernel/pasm.inc | ||
| 8: struc PASM_ENTRY 9: .baseAddress: resd 2 ;64-bit base address of range 10: .length: resd 2 ;64-bit length of range in bytes 11: .type: resd 1 ;Range type (as defined by ACPI specifications) 12: .flags: resd 1 ;Range flags (as defined by ACPI specifications) 13: .domain: resd 1 ;NUMA domain for area 14: resd 1 ;Unused (padding) 15: endstruc 16: 17: %define PASMTYPE_unknown 0x00000000 ;Unknown area 18: %define PASMTYPE_RAM 0x00000001 ;Usable RAM 19: %define PASMTYPE_system 0x00000002 ;Reserved (e.g. system ROM, memory-mapped device) 20: %define PASMTYPE_ACPIreclaim 0x00000003 ;ACPI reclaimable memory (usable by OS after reading ACPI tables) 21: %define PASMTYPE_ACPINVS 0x00000004 ;ACPI NVS memory 22: %define PASMTYPE_faulty 0x00000005 ;Unusable/faulty RAM 23: %define PASMTYPE_BIOSreclaim 0x00000006 ;BIOS reclaimable memory (usable by OS after entering stage 2) 24: %define PASMTYPE_mixed 0x00000007 ;Mixed (reported as different types by firmware) 25: 26: %define MAX_KNOWN_PASMTYPE PASMTYPE_faulty ;Maximum PASM type accepted from firmware (higher numbers used internally only) 27: %define MAX_USED_PASMTYPE PASMTYPE_mixed ;Maximum PASM type used by the OS 28: 29: 30: %define PASMFLG_invalid 0x00000001 ;Valid entry (only used by boot loaders, invalid entries aren't inserted in the PASM list) 31: %define PASMFLG_nonVolatile 0x00000002 ;Non-volatile area (from memory detection or SRAT) 32: %define PASMFLG_hotPlug 0x80000000 ;Hot-pluggable area (from SRAT) |