diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2008-01-30 07:31:02 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:31:02 -0500 |
commit | 1c6f70309900c47eeaef12c97b206fcccde1ebe2 (patch) | |
tree | 26b1908adb72b6093ccbd128357d842861450934 /include/asm-x86/pgtable_64.h | |
parent | 2ba7deef09dad6662dc4fa8b275af8d0794fd9fc (diff) |
x86: define all _PAGE_* in terms of _PAGE_BIT_* on 64-bit
This patch defines the _PAGE_* paging attributes in pgtable_64.h in terms of
the former defined _PAGE_BIT_* values.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/pgtable_64.h')
-rw-r--r-- | include/asm-x86/pgtable_64.h | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h index 9b0ff477b39e..9d4f11dd566f 100644 --- a/include/asm-x86/pgtable_64.h +++ b/include/asm-x86/pgtable_64.h | |||
@@ -150,19 +150,23 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long | |||
150 | #define _PAGE_BIT_ACCESSED 5 | 150 | #define _PAGE_BIT_ACCESSED 5 |
151 | #define _PAGE_BIT_DIRTY 6 | 151 | #define _PAGE_BIT_DIRTY 6 |
152 | #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ | 152 | #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ |
153 | #define _PAGE_BIT_FILE 6 | ||
153 | #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ | 154 | #define _PAGE_BIT_GLOBAL 8 /* Global TLB entry PPro+ */ |
154 | #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ | 155 | #define _PAGE_BIT_NX 63 /* No execute: only valid after cpuid check */ |
155 | 156 | ||
156 | #define _PAGE_PRESENT 0x001 | 157 | #define _PAGE_PRESENT (_AC(1,UL)<<_PAGE_BIT_PRESENT) |
157 | #define _PAGE_RW 0x002 | 158 | #define _PAGE_RW (_AC(1,UL)<<_PAGE_BIT_RW) |
158 | #define _PAGE_USER 0x004 | 159 | #define _PAGE_USER (_AC(1,UL)<<_PAGE_BIT_USER) |
159 | #define _PAGE_PWT 0x008 | 160 | #define _PAGE_PWT (_AC(1,UL)<<_PAGE_BIT_PWT) |
160 | #define _PAGE_PCD 0x010 | 161 | #define _PAGE_PCD (_AC(1,UL)<<_PAGE_BIT_PCD) |
161 | #define _PAGE_ACCESSED 0x020 | 162 | #define _PAGE_ACCESSED (_AC(1,UL)<<_PAGE_BIT_ACCESSED) |
162 | #define _PAGE_DIRTY 0x040 | 163 | #define _PAGE_DIRTY (_AC(1,UL)<<_PAGE_BIT_DIRTY) |
163 | #define _PAGE_PSE 0x080 /* 2MB page */ | 164 | /* 2MB page */ |
164 | #define _PAGE_FILE 0x040 /* nonlinear file mapping, saved PTE; unset:swap */ | 165 | #define _PAGE_PSE (_AC(1,UL)<<_PAGE_BIT_PSE) |
165 | #define _PAGE_GLOBAL 0x100 /* Global TLB entry */ | 166 | /* nonlinear file mapping, saved PTE; unset:swap */ |
167 | #define _PAGE_FILE (_AC(1,UL)<<_PAGE_BIT_FILE) | ||
168 | /* Global TLB entry */ | ||
169 | #define _PAGE_GLOBAL (_AC(1,UL)<<_PAGE_BIT_GLOBAL) | ||
166 | 170 | ||
167 | #define _PAGE_PROTNONE 0x080 /* If not present */ | 171 | #define _PAGE_PROTNONE 0x080 /* If not present */ |
168 | #define _PAGE_NX (_AC(1,UL)<<_PAGE_BIT_NX) | 172 | #define _PAGE_NX (_AC(1,UL)<<_PAGE_BIT_NX) |
@@ -248,8 +252,7 @@ static inline unsigned long pmd_bad(pmd_t pmd) | |||
248 | #define pte_present(x) (pte_val(x) & (_PAGE_PRESENT | _PAGE_PROTNONE)) | 252 | #define pte_present(x) (pte_val(x) & (_PAGE_PRESENT | _PAGE_PROTNONE)) |
249 | #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0) | 253 | #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0) |
250 | 254 | ||
251 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) /* FIXME: is this | 255 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) /* FIXME: is this right? */ |
252 | right? */ | ||
253 | #define pte_page(x) pfn_to_page(pte_pfn(x)) | 256 | #define pte_page(x) pfn_to_page(pte_pfn(x)) |
254 | #define pte_pfn(x) ((pte_val(x) & __PHYSICAL_MASK) >> PAGE_SHIFT) | 257 | #define pte_pfn(x) ((pte_val(x) & __PHYSICAL_MASK) >> PAGE_SHIFT) |
255 | 258 | ||