aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-i386
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-i386')
-rw-r--r--include/asm-i386/pgtable.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asm-i386/pgtable.h b/include/asm-i386/pgtable.h
index f51fd2c956bb..d74185aee15b 100644
--- a/include/asm-i386/pgtable.h
+++ b/include/asm-i386/pgtable.h
@@ -260,6 +260,18 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned
260 return test_and_clear_bit(_PAGE_BIT_ACCESSED, &ptep->pte_low); 260 return test_and_clear_bit(_PAGE_BIT_ACCESSED, &ptep->pte_low);
261} 261}
262 262
263static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long addr, pte_t *ptep, int full)
264{
265 pte_t pte;
266 if (full) {
267 pte = *ptep;
268 *ptep = __pte(0);
269 } else {
270 pte = ptep_get_and_clear(mm, addr, ptep);
271 }
272 return pte;
273}
274
263static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep) 275static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
264{ 276{
265 clear_bit(_PAGE_BIT_RW, &ptep->pte_low); 277 clear_bit(_PAGE_BIT_RW, &ptep->pte_low);
@@ -417,6 +429,7 @@ extern void noexec_setup(const char *str);
417#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG 429#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
418#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY 430#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_DIRTY
419#define __HAVE_ARCH_PTEP_GET_AND_CLEAR 431#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
432#define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL
420#define __HAVE_ARCH_PTEP_SET_WRPROTECT 433#define __HAVE_ARCH_PTEP_SET_WRPROTECT
421#define __HAVE_ARCH_PTE_SAME 434#define __HAVE_ARCH_PTE_SAME
422#include <asm-generic/pgtable.h> 435#include <asm-generic/pgtable.h>