at v2.6.15 62 lines 1.9 kB view raw
1#ifndef meminit_h 2#define meminit_h 3 4/* 5 * This file is subject to the terms and conditions of the GNU General Public 6 * License. See the file "COPYING" in the main directory of this archive 7 * for more details. 8 */ 9 10#include <linux/config.h> 11 12/* 13 * Entries defined so far: 14 * - boot param structure itself 15 * - memory map 16 * - initrd (optional) 17 * - command line string 18 * - kernel code & data 19 * - Kernel memory map built from EFI memory map 20 * 21 * More could be added if necessary 22 */ 23#define IA64_MAX_RSVD_REGIONS 6 24 25struct rsvd_region { 26 unsigned long start; /* virtual address of beginning of element */ 27 unsigned long end; /* virtual address of end of element + 1 */ 28}; 29 30extern struct rsvd_region rsvd_region[IA64_MAX_RSVD_REGIONS + 1]; 31extern int num_rsvd_regions; 32 33extern void find_memory (void); 34extern void reserve_memory (void); 35extern void find_initrd (void); 36extern int filter_rsvd_memory (unsigned long start, unsigned long end, void *arg); 37extern void efi_memmap_init(unsigned long *, unsigned long *); 38 39/* 40 * For rounding an address to the next IA64_GRANULE_SIZE or order 41 */ 42#define GRANULEROUNDDOWN(n) ((n) & ~(IA64_GRANULE_SIZE-1)) 43#define GRANULEROUNDUP(n) (((n)+IA64_GRANULE_SIZE-1) & ~(IA64_GRANULE_SIZE-1)) 44#define ORDERROUNDDOWN(n) ((n) & ~((PAGE_SIZE<<MAX_ORDER)-1)) 45 46#ifdef CONFIG_NUMA 47 extern void call_pernode_memory (unsigned long start, unsigned long len, void *func); 48#else 49# define call_pernode_memory(start, len, func) (*func)(start, len, 0) 50#endif 51 52#define IGNORE_PFN0 1 /* XXX fix me: ignore pfn 0 until TLB miss handler is updated... */ 53 54#ifdef CONFIG_VIRTUAL_MEM_MAP 55# define LARGE_GAP 0x40000000 /* Use virtual mem map if hole is > than this */ 56 extern unsigned long vmalloc_end; 57 extern struct page *vmem_map; 58 extern int find_largest_hole (u64 start, u64 end, void *arg); 59 extern int create_mem_map_page_table (u64 start, u64 end, void *arg); 60#endif 61 62#endif /* meminit_h */