aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-s390/pgtable.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-s390/pgtable.h')
-rw-r--r--include/asm-s390/pgtable.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h
index 4c0698c0dda5..f8347ce9c5a1 100644
--- a/include/asm-s390/pgtable.h
+++ b/include/asm-s390/pgtable.h
@@ -220,6 +220,8 @@ extern char empty_zero_page[PAGE_SIZE];
220/* Software bits in the page table entry */ 220/* Software bits in the page table entry */
221#define _PAGE_SWT 0x001 /* SW pte type bit t */ 221#define _PAGE_SWT 0x001 /* SW pte type bit t */
222#define _PAGE_SWX 0x002 /* SW pte type bit x */ 222#define _PAGE_SWX 0x002 /* SW pte type bit x */
223#define _PAGE_SPECIAL 0x004 /* SW associated with special page */
224#define __HAVE_ARCH_PTE_SPECIAL
223 225
224/* Six different types of pages. */ 226/* Six different types of pages. */
225#define _PAGE_TYPE_EMPTY 0x400 227#define _PAGE_TYPE_EMPTY 0x400
@@ -518,6 +520,11 @@ static inline int pte_file(pte_t pte)
518 return (pte_val(pte) & mask) == _PAGE_TYPE_FILE; 520 return (pte_val(pte) & mask) == _PAGE_TYPE_FILE;
519} 521}
520 522
523static inline int pte_special(pte_t pte)
524{
525 return (pte_val(pte) & _PAGE_SPECIAL);
526}
527
521#define __HAVE_ARCH_PTE_SAME 528#define __HAVE_ARCH_PTE_SAME
522#define pte_same(a,b) (pte_val(a) == pte_val(b)) 529#define pte_same(a,b) (pte_val(a) == pte_val(b))
523 530
@@ -715,6 +722,12 @@ static inline pte_t pte_mkyoung(pte_t pte)
715 return pte; 722 return pte;
716} 723}
717 724
725static inline pte_t pte_mkspecial(pte_t pte)
726{
727 pte_val(pte) |= _PAGE_SPECIAL;
728 return pte;
729}
730
718#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG 731#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
719static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, 732static inline int ptep_test_and_clear_young(struct vm_area_struct *vma,
720 unsigned long addr, pte_t *ptep) 733 unsigned long addr, pte_t *ptep)