aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/pgtable.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-x86/pgtable.h')
-rw-r--r--include/asm-x86/pgtable.h28
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 */
123static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; }
124static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
125static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_RW; }
126static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; }
127static inline int pte_huge(pte_t pte) { return pte_val(pte) & _PAGE_PSE; }
128
129static inline int pmd_large(pmd_t pte) {
130 return (pmd_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) ==
131 (_PAGE_PSE|_PAGE_PRESENT);
132}
133
134static inline pte_t pte_mkclean(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_DIRTY); }
135static inline pte_t pte_mkold(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_ACCESSED); }
136static inline pte_t pte_wrprotect(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_RW); }
137static inline pte_t pte_mkexec(pte_t pte) { return __pte(pte_val(pte) & ~_PAGE_NX); }
138static inline pte_t pte_mkdirty(pte_t pte) { return __pte(pte_val(pte) | _PAGE_DIRTY); }
139static inline pte_t pte_mkyoung(pte_t pte) { return __pte(pte_val(pte) | _PAGE_ACCESSED); }
140static inline pte_t pte_mkwrite(pte_t pte) { return __pte(pte_val(pte) | _PAGE_RW); }
141static inline pte_t pte_mkhuge(pte_t pte) { return __pte(pte_val(pte) | _PAGE_PSE); }
142static 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