aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ia64/page.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-ia64/page.h')
-rw-r--r--include/asm-ia64/page.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/include/asm-ia64/page.h b/include/asm-ia64/page.h
index 5e6362a786b7..2087825eefa4 100644
--- a/include/asm-ia64/page.h
+++ b/include/asm-ia64/page.h
@@ -57,6 +57,8 @@
57 57
58# define HAVE_ARCH_HUGETLB_UNMAPPED_AREA 58# define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
59# define ARCH_HAS_HUGEPAGE_ONLY_RANGE 59# define ARCH_HAS_HUGEPAGE_ONLY_RANGE
60# define ARCH_HAS_PREPARE_HUGEPAGE_RANGE
61# define ARCH_HAS_HUGETLB_FREE_PGD_RANGE
60#endif /* CONFIG_HUGETLB_PAGE */ 62#endif /* CONFIG_HUGETLB_PAGE */
61 63
62#ifdef __ASSEMBLY__ 64#ifdef __ASSEMBLY__
@@ -104,17 +106,25 @@ extern int ia64_pfn_valid (unsigned long pfn);
104# define ia64_pfn_valid(pfn) 1 106# define ia64_pfn_valid(pfn) 1
105#endif 107#endif
106 108
109#ifdef CONFIG_VIRTUAL_MEM_MAP
110extern struct page *vmem_map;
111#ifdef CONFIG_DISCONTIGMEM
112# define page_to_pfn(page) ((unsigned long) (page - vmem_map))
113# define pfn_to_page(pfn) (vmem_map + (pfn))
114#endif
115#endif
116
117#if defined(CONFIG_FLATMEM) || defined(CONFIG_SPARSEMEM)
118/* FLATMEM always configures mem_map (mem_map = vmem_map if necessary) */
119#include <asm-generic/memory_model.h>
120#endif
121
107#ifdef CONFIG_FLATMEM 122#ifdef CONFIG_FLATMEM
108# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn)) 123# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn))
109# define page_to_pfn(page) ((unsigned long) (page - mem_map))
110# define pfn_to_page(pfn) (mem_map + (pfn))
111#elif defined(CONFIG_DISCONTIGMEM) 124#elif defined(CONFIG_DISCONTIGMEM)
112extern struct page *vmem_map;
113extern unsigned long min_low_pfn; 125extern unsigned long min_low_pfn;
114extern unsigned long max_low_pfn; 126extern unsigned long max_low_pfn;
115# define pfn_valid(pfn) (((pfn) >= min_low_pfn) && ((pfn) < max_low_pfn) && ia64_pfn_valid(pfn)) 127# define pfn_valid(pfn) (((pfn) >= min_low_pfn) && ((pfn) < max_low_pfn) && ia64_pfn_valid(pfn))
116# define page_to_pfn(page) ((unsigned long) (page - vmem_map))
117# define pfn_to_page(pfn) (vmem_map + (pfn))
118#endif 128#endif
119 129
120#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) 130#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
@@ -147,7 +157,7 @@ typedef union ia64_va {
147 | (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT))) 157 | (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT)))
148# define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) 158# define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
149# define is_hugepage_only_range(mm, addr, len) \ 159# define is_hugepage_only_range(mm, addr, len) \
150 (REGION_NUMBER(addr) == RGN_HPAGE && \ 160 (REGION_NUMBER(addr) == RGN_HPAGE || \
151 REGION_NUMBER((addr)+(len)-1) == RGN_HPAGE) 161 REGION_NUMBER((addr)+(len)-1) == RGN_HPAGE)
152extern unsigned int hpage_shift; 162extern unsigned int hpage_shift;
153#endif 163#endif