1 #ifndef _GPXE_MEMMAP_H 2 #define _GPXE_MEMMAP_H 3 4 #include <stdint.h> 5 6 /** 7 * @file 8 * 9 * Memory mapping 10 * 11 */ 12 13 FILE_LICENCE ( GPL2_OR_LATER ); 14 15 /** A usable memory region */ 16 struct memory_region { 17 /** Physical start address */ 18 uint64_t start; 19 /** Physical end address */ 20 uint64_t end; 21 }; 22 23 /** Maximum number of memory regions we expect to encounter */ 24 #define MAX_MEMORY_REGIONS 8 25 26 /** A memory map */ 27 struct memory_map { 28 /** Memory regions */ 29 struct memory_region regions[MAX_MEMORY_REGIONS]; 30 /** Number of used regions */ 31 unsigned int count; 32 }; 33 34 extern void get_memmap ( struct memory_map *memmap ); 35 36 #endif /* _GPXE_MEMMAP_H */ 37