diff options
Diffstat (limited to 'include/asm-x86/page.h')
-rw-r--r-- | include/asm-x86/page.h | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/include/asm-x86/page.h b/include/asm-x86/page.h index dc936dddf161..49982110e4d9 100644 --- a/include/asm-x86/page.h +++ b/include/asm-x86/page.h | |||
@@ -18,8 +18,11 @@ | |||
18 | (ie, 32-bit PAE). */ | 18 | (ie, 32-bit PAE). */ |
19 | #define PHYSICAL_PAGE_MASK (((signed long)PAGE_MASK) & __PHYSICAL_MASK) | 19 | #define PHYSICAL_PAGE_MASK (((signed long)PAGE_MASK) & __PHYSICAL_MASK) |
20 | 20 | ||
21 | /* PTE_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */ | 21 | /* PTE_PFN_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */ |
22 | #define PTE_MASK ((pteval_t)PHYSICAL_PAGE_MASK) | 22 | #define PTE_PFN_MASK ((pteval_t)PHYSICAL_PAGE_MASK) |
23 | |||
24 | /* PTE_FLAGS_MASK extracts the flags from a (pte|pmd|pud|pgd)val_t */ | ||
25 | #define PTE_FLAGS_MASK (~PTE_PFN_MASK) | ||
23 | 26 | ||
24 | #define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT) | 27 | #define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT) |
25 | #define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1)) | 28 | #define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1)) |
@@ -29,8 +32,7 @@ | |||
29 | #define HPAGE_MASK (~(HPAGE_SIZE - 1)) | 32 | #define HPAGE_MASK (~(HPAGE_SIZE - 1)) |
30 | #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) | 33 | #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) |
31 | 34 | ||
32 | /* to align the pointer to the (next) page boundary */ | 35 | #define HUGE_MAX_HSTATE 2 |
33 | #define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK) | ||
34 | 36 | ||
35 | #ifndef __ASSEMBLY__ | 37 | #ifndef __ASSEMBLY__ |
36 | #include <linux/types.h> | 38 | #include <linux/types.h> |
@@ -51,9 +53,17 @@ | |||
51 | 53 | ||
52 | #ifndef __ASSEMBLY__ | 54 | #ifndef __ASSEMBLY__ |
53 | 55 | ||
56 | typedef struct { pgdval_t pgd; } pgd_t; | ||
57 | typedef struct { pgprotval_t pgprot; } pgprot_t; | ||
58 | |||
54 | extern int page_is_ram(unsigned long pagenr); | 59 | extern int page_is_ram(unsigned long pagenr); |
55 | extern int devmem_is_allowed(unsigned long pagenr); | 60 | extern int devmem_is_allowed(unsigned long pagenr); |
61 | extern void map_devmem(unsigned long pfn, unsigned long size, | ||
62 | pgprot_t vma_prot); | ||
63 | extern void unmap_devmem(unsigned long pfn, unsigned long size, | ||
64 | pgprot_t vma_prot); | ||
56 | 65 | ||
66 | extern unsigned long max_low_pfn_mapped; | ||
57 | extern unsigned long max_pfn_mapped; | 67 | extern unsigned long max_pfn_mapped; |
58 | 68 | ||
59 | struct page; | 69 | struct page; |
@@ -74,9 +84,6 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr, | |||
74 | alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr) | 84 | alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO | movableflags, vma, vaddr) |
75 | #define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE | 85 | #define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE |
76 | 86 | ||
77 | typedef struct { pgdval_t pgd; } pgd_t; | ||
78 | typedef struct { pgprotval_t pgprot; } pgprot_t; | ||
79 | |||
80 | static inline pgd_t native_make_pgd(pgdval_t val) | 87 | static inline pgd_t native_make_pgd(pgdval_t val) |
81 | { | 88 | { |
82 | return (pgd_t) { val }; | 89 | return (pgd_t) { val }; |
@@ -139,6 +146,11 @@ static inline pteval_t native_pte_val(pte_t pte) | |||
139 | return pte.pte; | 146 | return pte.pte; |
140 | } | 147 | } |
141 | 148 | ||
149 | static inline pteval_t native_pte_flags(pte_t pte) | ||
150 | { | ||
151 | return native_pte_val(pte) & PTE_FLAGS_MASK; | ||
152 | } | ||
153 | |||
142 | #define pgprot_val(x) ((x).pgprot) | 154 | #define pgprot_val(x) ((x).pgprot) |
143 | #define __pgprot(x) ((pgprot_t) { (x) } ) | 155 | #define __pgprot(x) ((pgprot_t) { (x) } ) |
144 | 156 | ||
@@ -160,6 +172,7 @@ static inline pteval_t native_pte_val(pte_t pte) | |||
160 | #endif | 172 | #endif |
161 | 173 | ||
162 | #define pte_val(x) native_pte_val(x) | 174 | #define pte_val(x) native_pte_val(x) |
175 | #define pte_flags(x) native_pte_flags(x) | ||
163 | #define __pte(x) native_make_pte(x) | 176 | #define __pte(x) native_make_pte(x) |
164 | 177 | ||
165 | #endif /* CONFIG_PARAVIRT */ | 178 | #endif /* CONFIG_PARAVIRT */ |