home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-ia64 / meminit.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.9 KB  |  62 lines

  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.  
  11. /*
  12.  * Entries defined so far:
  13.  *     - boot param structure itself
  14.  *     - memory map
  15.  *     - initrd (optional)
  16.  *     - command line string
  17.  *     - kernel code & data
  18.  *     - Kernel memory map built from EFI memory map
  19.  *
  20.  * More could be added if necessary
  21.  */
  22. #define IA64_MAX_RSVD_REGIONS 6
  23.  
  24. struct rsvd_region {
  25.     unsigned long start;    /* virtual address of beginning of element */
  26.     unsigned long end;    /* virtual address of end of element + 1 */
  27. };
  28.  
  29. extern struct rsvd_region rsvd_region[IA64_MAX_RSVD_REGIONS + 1];
  30. extern int num_rsvd_regions;
  31.  
  32. extern void find_memory (void);
  33. extern void reserve_memory (void);
  34. extern void find_initrd (void);
  35. extern int filter_rsvd_memory (unsigned long start, unsigned long end, void *arg);
  36. extern void efi_memmap_init(unsigned long *, unsigned long *);
  37.  
  38. /*
  39.  * For rounding an address to the next IA64_GRANULE_SIZE or order
  40.  */
  41. #define GRANULEROUNDDOWN(n)    ((n) & ~(IA64_GRANULE_SIZE-1))
  42. #define GRANULEROUNDUP(n)    (((n)+IA64_GRANULE_SIZE-1) & ~(IA64_GRANULE_SIZE-1))
  43. #define ORDERROUNDDOWN(n)    ((n) & ~((PAGE_SIZE<<MAX_ORDER)-1))
  44.  
  45. #ifdef CONFIG_NUMA
  46.   extern void call_pernode_memory (unsigned long start, unsigned long len, void *func);
  47. #else
  48. # define call_pernode_memory(start, len, func)    (*func)(start, len, 0)
  49. #endif
  50.  
  51. #define IGNORE_PFN0    1    /* XXX fix me: ignore pfn 0 until TLB miss handler is updated... */
  52.  
  53. #ifdef CONFIG_VIRTUAL_MEM_MAP
  54. # define LARGE_GAP    0x40000000 /* Use virtual mem map if hole is > than this */
  55.   extern unsigned long vmalloc_end;
  56.   extern struct page *vmem_map;
  57.   extern int find_largest_hole (u64 start, u64 end, void *arg);
  58.   extern int create_mem_map_page_table (u64 start, u64 end, void *arg);
  59. #endif
  60.  
  61. #endif /* meminit_h */
  62.