Commit 9b3651cb authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge

x86: move more pagetable-related definitions into pgtable*.h

PAGETABLE_LEVELS and the PTE masks should be in pgtable*.h
Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
parent 0341c14d
...@@ -33,12 +33,10 @@ ...@@ -33,12 +33,10 @@
/* 44=32+12, the limit we can fit into an unsigned long pfn */ /* 44=32+12, the limit we can fit into an unsigned long pfn */
#define __PHYSICAL_MASK_SHIFT 44 #define __PHYSICAL_MASK_SHIFT 44
#define __VIRTUAL_MASK_SHIFT 32 #define __VIRTUAL_MASK_SHIFT 32
#define PAGETABLE_LEVELS 3
#else /* !CONFIG_X86_PAE */ #else /* !CONFIG_X86_PAE */
#define __PHYSICAL_MASK_SHIFT 32 #define __PHYSICAL_MASK_SHIFT 32
#define __VIRTUAL_MASK_SHIFT 32 #define __VIRTUAL_MASK_SHIFT 32
#define PAGETABLE_LEVELS 2
#endif /* CONFIG_X86_PAE */ #endif /* CONFIG_X86_PAE */
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
......
#ifndef _ASM_X86_PAGE_64_DEFS_H #ifndef _ASM_X86_PAGE_64_DEFS_H
#define _ASM_X86_PAGE_64_DEFS_H #define _ASM_X86_PAGE_64_DEFS_H
#define PAGETABLE_LEVELS 4
#define THREAD_ORDER 1 #define THREAD_ORDER 1
#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER) #define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
#define CURRENT_MASK (~(THREAD_SIZE - 1)) #define CURRENT_MASK (~(THREAD_SIZE - 1))
......
...@@ -16,12 +16,6 @@ ...@@ -16,12 +16,6 @@
(ie, 32-bit PAE). */ (ie, 32-bit PAE). */
#define PHYSICAL_PAGE_MASK (((signed long)PAGE_MASK) & __PHYSICAL_MASK) #define PHYSICAL_PAGE_MASK (((signed long)PAGE_MASK) & __PHYSICAL_MASK)
/* PTE_PFN_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */
#define PTE_PFN_MASK ((pteval_t)PHYSICAL_PAGE_MASK)
/* PTE_FLAGS_MASK extracts the flags from a (pte|pmd|pud|pgd)val_t */
#define PTE_FLAGS_MASK (~PTE_PFN_MASK)
#define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT) #define PMD_PAGE_SIZE (_AC(1, UL) << PMD_SHIFT)
#define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1)) #define PMD_PAGE_MASK (~(PMD_PAGE_SIZE-1))
......
...@@ -17,6 +17,7 @@ typedef union { ...@@ -17,6 +17,7 @@ typedef union {
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
#define SHARED_KERNEL_PMD 0 #define SHARED_KERNEL_PMD 0
#define PAGETABLE_LEVELS 2
/* /*
* traditional i386 two-level paging structure: * traditional i386 two-level paging structure:
...@@ -25,6 +26,7 @@ typedef union { ...@@ -25,6 +26,7 @@ typedef union {
#define PGDIR_SHIFT 22 #define PGDIR_SHIFT 22
#define PTRS_PER_PGD 1024 #define PTRS_PER_PGD 1024
/* /*
* the i386 is two-level, so we don't really have any * the i386 is two-level, so we don't really have any
* PMD directory physically. * PMD directory physically.
......
...@@ -24,6 +24,8 @@ typedef union { ...@@ -24,6 +24,8 @@ typedef union {
#define SHARED_KERNEL_PMD 1 #define SHARED_KERNEL_PMD 1
#endif #endif
#define PAGETABLE_LEVELS 3
/* /*
* PGDIR_SHIFT determines what a top-level page table entry can map * PGDIR_SHIFT determines what a top-level page table entry can map
*/ */
......
...@@ -18,6 +18,7 @@ typedef struct { pteval_t pte; } pte_t; ...@@ -18,6 +18,7 @@ typedef struct { pteval_t pte; } pte_t;
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
#define SHARED_KERNEL_PMD 0 #define SHARED_KERNEL_PMD 0
#define PAGETABLE_LEVELS 4
/* /*
* PGDIR_SHIFT determines what a top-level page table entry can map * PGDIR_SHIFT determines what a top-level page table entry can map
......
...@@ -173,6 +173,12 @@ ...@@ -173,6 +173,12 @@
#include <linux/types.h> #include <linux/types.h>
/* PTE_PFN_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */
#define PTE_PFN_MASK ((pteval_t)PHYSICAL_PAGE_MASK)
/* PTE_FLAGS_MASK extracts the flags from a (pte|pmd|pud|pgd)val_t */
#define PTE_FLAGS_MASK (~PTE_PFN_MASK)
typedef struct pgprot { pgprotval_t pgprot; } pgprot_t; typedef struct pgprot { pgprotval_t pgprot; } pgprot_t;
typedef struct { pgdval_t pgd; } pgd_t; typedef struct { pgdval_t pgd; } pgd_t;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment