}
}
-/**
- * Get legacy system memory map
- *
- * @v memmap Legacy memory map to fill in
- */
-void get_memmap ( struct memory_map *memmap ) {
- struct memmap_region region;
- struct memory_region *usable;
-
- /* Clear legacy memory map */
- memmap->count = 0;
-
- /* Populate legacy memory map */
- for_each_memmap ( ®ion, 1 ) {
- if ( memmap_is_usable ( ®ion ) ) {
- usable = &memmap->regions[memmap->count++];
- usable->start = region.addr;
- usable->end = ( region.last + 1 );
- if ( memmap->count == MAX_MEMORY_REGIONS )
- break;
- }
- }
-}
-
PROVIDE_MEMMAP_INLINE ( null, memmap_describe );
PROVIDE_MEMMAP_INLINE ( null, memmap_sync );
#define rmb() mb()
#define wmb() mb()
-/** A usable memory region */
-struct memory_region {
- /** Physical start address */
- uint64_t start;
- /** Physical end address */
- uint64_t end;
-};
-
-/** Maximum number of memory regions we expect to encounter */
-#define MAX_MEMORY_REGIONS 8
-
-/** A memory map */
-struct memory_map {
- /** Memory regions */
- struct memory_region regions[MAX_MEMORY_REGIONS];
- /** Number of used regions */
- unsigned int count;
-};
-
-/**
- * Get memory map
- *
- * @v memmap Memory map to fill in
- */
-void get_memmap ( struct memory_map *memmap );
-
#endif /* _IPXE_IO_H */