|
@@ -1,34 +1,14 @@
|
|
|
#ifndef _ASM_POWERPC_BOOK3S_64_HASH_64K_H
|
|
|
#define _ASM_POWERPC_BOOK3S_64_HASH_64K_H
|
|
|
|
|
|
-#define PTE_INDEX_SIZE 8
|
|
|
-#define PMD_INDEX_SIZE 5
|
|
|
-#define PUD_INDEX_SIZE 5
|
|
|
-#define PGD_INDEX_SIZE 12
|
|
|
-
|
|
|
-#define PTRS_PER_PTE (1 << PTE_INDEX_SIZE)
|
|
|
-#define PTRS_PER_PMD (1 << PMD_INDEX_SIZE)
|
|
|
-#define PTRS_PER_PUD (1 << PUD_INDEX_SIZE)
|
|
|
-#define PTRS_PER_PGD (1 << PGD_INDEX_SIZE)
|
|
|
+#define H_PTE_INDEX_SIZE 8
|
|
|
+#define H_PMD_INDEX_SIZE 5
|
|
|
+#define H_PUD_INDEX_SIZE 5
|
|
|
+#define H_PGD_INDEX_SIZE 12
|
|
|
|
|
|
/* With 4k base page size, hugepage PTEs go at the PMD level */
|
|
|
#define MIN_HUGEPTE_SHIFT PAGE_SHIFT
|
|
|
|
|
|
-/* PMD_SHIFT determines what a second-level page table entry can map */
|
|
|
-#define PMD_SHIFT (PAGE_SHIFT + PTE_INDEX_SIZE)
|
|
|
-#define PMD_SIZE (1UL << PMD_SHIFT)
|
|
|
-#define PMD_MASK (~(PMD_SIZE-1))
|
|
|
-
|
|
|
-/* PUD_SHIFT determines what a third-level page table entry can map */
|
|
|
-#define PUD_SHIFT (PMD_SHIFT + PMD_INDEX_SIZE)
|
|
|
-#define PUD_SIZE (1UL << PUD_SHIFT)
|
|
|
-#define PUD_MASK (~(PUD_SIZE-1))
|
|
|
-
|
|
|
-/* PGDIR_SHIFT determines what a fourth-level page table entry can map */
|
|
|
-#define PGDIR_SHIFT (PUD_SHIFT + PUD_INDEX_SIZE)
|
|
|
-#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
|
|
|
-#define PGDIR_MASK (~(PGDIR_SIZE-1))
|
|
|
-
|
|
|
#define H_PAGE_COMBO 0x00001000 /* this is a combo 4k page */
|
|
|
#define H_PAGE_4K_PFN 0x00002000 /* PFN is for a single 4k page */
|
|
|
/*
|
|
@@ -57,13 +37,6 @@
|
|
|
#define PTE_FRAG_SIZE_SHIFT 12
|
|
|
#define PTE_FRAG_SIZE (1UL << PTE_FRAG_SIZE_SHIFT)
|
|
|
|
|
|
-/* Bits to mask out from a PMD to get to the PTE page */
|
|
|
-#define PMD_MASKED_BITS 0xc0000000000000ffUL
|
|
|
-/* Bits to mask out from a PUD to get to the PMD page */
|
|
|
-#define PUD_MASKED_BITS 0xc0000000000000ffUL
|
|
|
-/* Bits to mask out from a PGD to get to the PUD page */
|
|
|
-#define PGD_MASKED_BITS 0xc0000000000000ffUL
|
|
|
-
|
|
|
#ifndef __ASSEMBLY__
|
|
|
#include <asm/errno.h>
|
|
|
|
|
@@ -135,14 +108,15 @@ static inline int remap_4k_pfn(struct vm_area_struct *vma, unsigned long addr,
|
|
|
__pgprot(pgprot_val(prot) | H_PAGE_4K_PFN));
|
|
|
}
|
|
|
|
|
|
-#define PTE_TABLE_SIZE PTE_FRAG_SIZE
|
|
|
+#define H_PTE_TABLE_SIZE PTE_FRAG_SIZE
|
|
|
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
|
|
-#define PMD_TABLE_SIZE ((sizeof(pmd_t) << PMD_INDEX_SIZE) + (sizeof(unsigned long) << PMD_INDEX_SIZE))
|
|
|
+#define H_PMD_TABLE_SIZE ((sizeof(pmd_t) << PMD_INDEX_SIZE) + \
|
|
|
+ (sizeof(unsigned long) << PMD_INDEX_SIZE))
|
|
|
#else
|
|
|
-#define PMD_TABLE_SIZE (sizeof(pmd_t) << PMD_INDEX_SIZE)
|
|
|
+#define H_PMD_TABLE_SIZE (sizeof(pmd_t) << PMD_INDEX_SIZE)
|
|
|
#endif
|
|
|
-#define PUD_TABLE_SIZE (sizeof(pud_t) << PUD_INDEX_SIZE)
|
|
|
-#define PGD_TABLE_SIZE (sizeof(pgd_t) << PGD_INDEX_SIZE)
|
|
|
+#define H_PUD_TABLE_SIZE (sizeof(pud_t) << PUD_INDEX_SIZE)
|
|
|
+#define H_PGD_TABLE_SIZE (sizeof(pgd_t) << PGD_INDEX_SIZE)
|
|
|
|
|
|
#ifdef CONFIG_HUGETLB_PAGE
|
|
|
/*
|