diff options
Diffstat (limited to 'include/asm-arm/pgtable.h')
| -rw-r--r-- | include/asm-arm/pgtable.h | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/include/asm-arm/pgtable.h b/include/asm-arm/pgtable.h index e85c08d78dda..ed8cb5963e99 100644 --- a/include/asm-arm/pgtable.h +++ b/include/asm-arm/pgtable.h | |||
| @@ -11,9 +11,15 @@ | |||
| 11 | #define _ASMARM_PGTABLE_H | 11 | #define _ASMARM_PGTABLE_H |
| 12 | 12 | ||
| 13 | #include <asm-generic/4level-fixup.h> | 13 | #include <asm-generic/4level-fixup.h> |
| 14 | #include <asm/proc-fns.h> | ||
| 15 | |||
| 16 | #ifndef CONFIG_MMU | ||
| 17 | |||
| 18 | #include "pgtable-nommu.h" | ||
| 19 | |||
| 20 | #else | ||
| 14 | 21 | ||
| 15 | #include <asm/memory.h> | 22 | #include <asm/memory.h> |
| 16 | #include <asm/proc-fns.h> | ||
| 17 | #include <asm/arch/vmalloc.h> | 23 | #include <asm/arch/vmalloc.h> |
| 18 | 24 | ||
| 19 | /* | 25 | /* |
| @@ -130,6 +136,13 @@ extern void __pgd_error(const char *file, int line, unsigned long val); | |||
| 130 | #define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR) | 136 | #define USER_PTRS_PER_PGD ((TASK_SIZE/PGDIR_SIZE) - FIRST_USER_PGD_NR) |
| 131 | 137 | ||
| 132 | /* | 138 | /* |
| 139 | * section address mask and size definitions. | ||
| 140 | */ | ||
| 141 | #define SECTION_SHIFT 20 | ||
| 142 | #define SECTION_SIZE (1UL << SECTION_SHIFT) | ||
| 143 | #define SECTION_MASK (~(SECTION_SIZE-1)) | ||
| 144 | |||
| 145 | /* | ||
| 133 | * ARMv6 supersection address mask and size definitions. | 146 | * ARMv6 supersection address mask and size definitions. |
| 134 | */ | 147 | */ |
| 135 | #define SUPERSECTION_SHIFT 24 | 148 | #define SUPERSECTION_SHIFT 24 |
| @@ -218,9 +231,9 @@ extern struct page *empty_zero_page; | |||
| 218 | #define pte_none(pte) (!pte_val(pte)) | 231 | #define pte_none(pte) (!pte_val(pte)) |
| 219 | #define pte_clear(mm,addr,ptep) set_pte_at((mm),(addr),(ptep), __pte(0)) | 232 | #define pte_clear(mm,addr,ptep) set_pte_at((mm),(addr),(ptep), __pte(0)) |
| 220 | #define pte_page(pte) (pfn_to_page(pte_pfn(pte))) | 233 | #define pte_page(pte) (pfn_to_page(pte_pfn(pte))) |
| 221 | #define pte_offset_kernel(dir,addr) (pmd_page_kernel(*(dir)) + __pte_index(addr)) | 234 | #define pte_offset_kernel(dir,addr) (pmd_page_vaddr(*(dir)) + __pte_index(addr)) |
| 222 | #define pte_offset_map(dir,addr) (pmd_page_kernel(*(dir)) + __pte_index(addr)) | 235 | #define pte_offset_map(dir,addr) (pmd_page_vaddr(*(dir)) + __pte_index(addr)) |
| 223 | #define pte_offset_map_nested(dir,addr) (pmd_page_kernel(*(dir)) + __pte_index(addr)) | 236 | #define pte_offset_map_nested(dir,addr) (pmd_page_vaddr(*(dir)) + __pte_index(addr)) |
| 224 | #define pte_unmap(pte) do { } while (0) | 237 | #define pte_unmap(pte) do { } while (0) |
| 225 | #define pte_unmap_nested(pte) do { } while (0) | 238 | #define pte_unmap_nested(pte) do { } while (0) |
| 226 | 239 | ||
| @@ -285,7 +298,7 @@ PTE_BIT_FUNC(mkyoung, |= L_PTE_YOUNG); | |||
| 285 | clean_pmd_entry(pmdp); \ | 298 | clean_pmd_entry(pmdp); \ |
| 286 | } while (0) | 299 | } while (0) |
| 287 | 300 | ||
| 288 | static inline pte_t *pmd_page_kernel(pmd_t pmd) | 301 | static inline pte_t *pmd_page_vaddr(pmd_t pmd) |
| 289 | { | 302 | { |
| 290 | unsigned long ptr; | 303 | unsigned long ptr; |
| 291 | 304 | ||
| @@ -378,4 +391,6 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | |||
| 378 | 391 | ||
| 379 | #endif /* !__ASSEMBLY__ */ | 392 | #endif /* !__ASSEMBLY__ */ |
| 380 | 393 | ||
| 394 | #endif /* CONFIG_MMU */ | ||
| 395 | |||
| 381 | #endif /* _ASMARM_PGTABLE_H */ | 396 | #endif /* _ASMARM_PGTABLE_H */ |
