aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/pgtable_64.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-01-30 07:32:55 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:32:55 -0500
commitdcbae6b377d78190954055ef2d8909ae83ff57de (patch)
tree8e180095b115a22cdf1d7e0b3a107b51188e443a /include/asm-x86/pgtable_64.h
parent61f38226def55d972cfd0e789971e952525ff8e5 (diff)
x86/pgtable: unify pagetable accessors, #1
based on: Subject: x86/pgtable: unify pagetable accessors From: Jeremy Fitzhardinge <jeremy@goop.org> 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.h24
1 files changed, 15 insertions, 9 deletions
diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h
index 93eb4df2ec11..3a0588088480 100644
--- a/include/asm-x86/pgtable_64.h
+++ b/include/asm-x86/pgtable_64.h
@@ -179,21 +179,27 @@ static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot)
179 * Undefined behaviour if not.. 179 * Undefined behaviour if not..
180 */ 180 */
181#define __LARGE_PTE (_PAGE_PSE|_PAGE_PRESENT) 181#define __LARGE_PTE (_PAGE_PSE|_PAGE_PRESENT)
182
182static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } 183static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; }
183static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } 184static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
184static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_RW; } 185static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_RW; }
185static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; } 186static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; }
186static inline int pte_huge(pte_t pte) { return pte_val(pte) & _PAGE_PSE; } 187static inline int pte_huge(pte_t pte) { return pte_val(pte) & _PAGE_PSE; }
187 188
188static inline pte_t pte_mkclean(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_DIRTY)); return pte; } 189static inline int pmd_large(pmd_t pte) {
189static inline pte_t pte_mkold(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_ACCESSED)); return pte; } 190 return (pmd_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) ==
190static inline pte_t pte_wrprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_RW)); return pte; } 191 (_PAGE_PSE|_PAGE_PRESENT);
191static inline pte_t pte_mkexec(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_NX)); return pte; } 192}
192static inline pte_t pte_mkdirty(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_DIRTY)); return pte; } 193
193static inline pte_t pte_mkyoung(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_ACCESSED)); return pte; } 194static inline pte_t pte_mkclean(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_DIRTY); }
194static inline pte_t pte_mkwrite(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_RW)); return pte; } 195static inline pte_t pte_mkold(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_ACCESSED); }
195static inline pte_t pte_mkhuge(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_PSE)); return pte; } 196static inline pte_t pte_wrprotect(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_RW); }
196static inline pte_t pte_clrhuge(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_PSE)); return pte; } 197static inline pte_t pte_mkexec(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_NX); }
198static inline pte_t pte_mkdirty(pte_t pte) { return __pte(pte_val(pte) | _PAGE_DIRTY); }
199static inline pte_t pte_mkyoung(pte_t pte) { return __pte(pte_val(pte) | _PAGE_ACCESSED); }
200static inline pte_t pte_mkwrite(pte_t pte) { return __pte(pte_val(pte) | _PAGE_RW); }
201static inline pte_t pte_mkhuge(pte_t pte) { return __pte(pte_val(pte) | _PAGE_PSE); }
202static inline pte_t pte_clrhuge(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_PSE); }
197 203
198struct vm_area_struct; 204struct vm_area_struct;
199 205