diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2008-01-30 07:32:56 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:32:56 -0500 |
commit | 4614139c6a74fe02c85f702ba9c0e57f8e38647e (patch) | |
tree | c5d2145a98ecdd5d275ee278c2fbc3d3c8bee8e1 /include/asm-x86/pgtable.h | |
parent | e8a4852453c5af27d2a9c606e76809afa3dedb64 (diff) |
x86/pgtable: unify pagetable accessors, #6
Unify functions to test and set bits in pagetable entries.
NOP: only moves existing code around, without any change to it.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/pgtable.h')
-rw-r--r-- | include/asm-x86/pgtable.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h index 73e2b47c055e..4c03ff2246fd 100644 --- a/include/asm-x86/pgtable.h +++ b/include/asm-x86/pgtable.h | |||
@@ -115,6 +115,34 @@ extern unsigned long long __PAGE_KERNEL, __PAGE_KERNEL_EXEC; | |||
115 | #define __S110 PAGE_SHARED_EXEC | 115 | #define __S110 PAGE_SHARED_EXEC |
116 | #define __S111 PAGE_SHARED_EXEC | 116 | #define __S111 PAGE_SHARED_EXEC |
117 | 117 | ||
118 | #ifndef __ASSEMBLY__ | ||
119 | /* | ||
120 | * The following only work if pte_present() is true. | ||
121 | * Undefined behaviour if not.. | ||
122 | */ | ||
123 | static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } | ||
124 | static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } | ||
125 | static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_RW; } | ||
126 | static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; } | ||
127 | static inline int pte_huge(pte_t pte) { return pte_val(pte) & _PAGE_PSE; } | ||
128 | |||
129 | static inline int pmd_large(pmd_t pte) { | ||
130 | return (pmd_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) == | ||
131 | (_PAGE_PSE|_PAGE_PRESENT); | ||
132 | } | ||
133 | |||
134 | static inline pte_t pte_mkclean(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_DIRTY); } | ||
135 | static inline pte_t pte_mkold(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_ACCESSED); } | ||
136 | static inline pte_t pte_wrprotect(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_RW); } | ||
137 | static inline pte_t pte_mkexec(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_NX); } | ||
138 | static inline pte_t pte_mkdirty(pte_t pte) { return __pte(pte_val(pte) | _PAGE_DIRTY); } | ||
139 | static inline pte_t pte_mkyoung(pte_t pte) { return __pte(pte_val(pte) | _PAGE_ACCESSED); } | ||
140 | static inline pte_t pte_mkwrite(pte_t pte) { return __pte(pte_val(pte) | _PAGE_RW); } | ||
141 | static inline pte_t pte_mkhuge(pte_t pte) { return __pte(pte_val(pte) | _PAGE_PSE); } | ||
142 | static inline pte_t pte_clrhuge(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_PSE); } | ||
143 | |||
144 | #endif /* __ASSEMBLY__ */ | ||
145 | |||
118 | #ifdef CONFIG_X86_32 | 146 | #ifdef CONFIG_X86_32 |
119 | # include "pgtable_32.h" | 147 | # include "pgtable_32.h" |
120 | #else | 148 | #else |