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_64.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_64.h')
-rw-r--r-- | include/asm-x86/pgtable_64.h | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h index 3a0588088480..84f47f9d7896 100644 --- a/include/asm-x86/pgtable_64.h +++ b/include/asm-x86/pgtable_64.h | |||
@@ -173,34 +173,6 @@ static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot) | |||
173 | pte_val(pte) &= __supported_pte_mask; | 173 | pte_val(pte) &= __supported_pte_mask; |
174 | return pte; | 174 | return pte; |
175 | } | 175 | } |
176 | |||
177 | /* | ||
178 | * The following only work if pte_present() is true. | ||
179 | * Undefined behaviour if not.. | ||
180 | */ | ||
181 | #define __LARGE_PTE (_PAGE_PSE|_PAGE_PRESENT) | ||
182 | |||
183 | static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } | ||
184 | static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } | ||
185 | static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_RW; } | ||
186 | static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; } | ||
187 | static inline int pte_huge(pte_t pte) { return pte_val(pte) & _PAGE_PSE; } | ||
188 | |||
189 | static inline int pmd_large(pmd_t pte) { | ||
190 | return (pmd_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) == | ||
191 | (_PAGE_PSE|_PAGE_PRESENT); | ||
192 | } | ||
193 | |||
194 | static inline pte_t pte_mkclean(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_DIRTY); } | ||
195 | static inline pte_t pte_mkold(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_ACCESSED); } | ||
196 | static inline pte_t pte_wrprotect(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_RW); } | ||
197 | static inline pte_t pte_mkexec(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_NX); } | ||
198 | static inline pte_t pte_mkdirty(pte_t pte) { return __pte(pte_val(pte) | _PAGE_DIRTY); } | ||
199 | static inline pte_t pte_mkyoung(pte_t pte) { return __pte(pte_val(pte) | _PAGE_ACCESSED); } | ||
200 | static inline pte_t pte_mkwrite(pte_t pte) { return __pte(pte_val(pte) | _PAGE_RW); } | ||
201 | static inline pte_t pte_mkhuge(pte_t pte) { return __pte(pte_val(pte) | _PAGE_PSE); } | ||
202 | static inline pte_t pte_clrhuge(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_PSE); } | ||
203 | |||
204 | struct vm_area_struct; | 176 | struct vm_area_struct; |
205 | 177 | ||
206 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) | 178 | static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) |
@@ -220,10 +192,6 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, | |||
220 | */ | 192 | */ |
221 | #define pgprot_noncached(prot) (__pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT)) | 193 | #define pgprot_noncached(prot) (__pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT)) |
222 | 194 | ||
223 | static inline int pmd_large(pmd_t pte) { | ||
224 | return (pmd_val(pte) & __LARGE_PTE) == __LARGE_PTE; | ||
225 | } | ||
226 | |||
227 | 195 | ||
228 | /* | 196 | /* |
229 | * Conversion functions: convert a page and protection to a page entry, | 197 | * Conversion functions: convert a page and protection to a page entry, |