Lines Matching refs:pmd
607 static inline pmd_t clear_pmd_bit(pmd_t pmd, pgprot_t prot) in clear_pmd_bit() argument
609 return __pmd(pmd_val(pmd) & ~pgprot_val(prot)); in clear_pmd_bit()
612 static inline pmd_t set_pmd_bit(pmd_t pmd, pgprot_t prot) in set_pmd_bit() argument
614 return __pmd(pmd_val(pmd) | pgprot_val(prot)); in set_pmd_bit()
806 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
808 return (pmd_val(pmd) & _SEGMENT_ENTRY_PRESENT) != 0; in pmd_present()
812 static inline bool pmd_leaf(pmd_t pmd) in pmd_leaf() argument
814 return (pmd_present(pmd) && (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) != 0); in pmd_leaf()
817 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
819 if ((pmd_val(pmd) & _SEGMENT_ENTRY_TYPE_MASK) > 0 || pmd_leaf(pmd)) in pmd_bad()
821 return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS) != 0; in pmd_bad()
846 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
848 return pmd_val(pmd) == _SEGMENT_ENTRY_EMPTY; in pmd_none()
852 static inline int pmd_write(pmd_t pmd) in pmd_write() argument
854 return (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) != 0; in pmd_write()
864 static inline int pmd_dirty(pmd_t pmd) in pmd_dirty() argument
866 return (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY) != 0; in pmd_dirty()
870 static inline int pmd_young(pmd_t pmd) in pmd_young() argument
872 return (pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG) != 0; in pmd_young()
911 static inline int pmd_protnone(pmd_t pmd) in pmd_protnone() argument
914 return pmd_leaf(pmd) && !(pmd_val(pmd) & _SEGMENT_ENTRY_READ); in pmd_protnone()
951 static inline int pmd_soft_dirty(pmd_t pmd) in pmd_soft_dirty() argument
953 return pmd_val(pmd) & _SEGMENT_ENTRY_SOFT_DIRTY; in pmd_soft_dirty()
956 static inline pmd_t pmd_mksoft_dirty(pmd_t pmd) in pmd_mksoft_dirty() argument
958 return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_SOFT_DIRTY)); in pmd_mksoft_dirty()
961 static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd) in pmd_clear_soft_dirty() argument
963 return clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_SOFT_DIRTY)); in pmd_clear_soft_dirty()
967 #define pmd_swp_soft_dirty(pmd) pmd_soft_dirty(pmd) argument
968 #define pmd_swp_mksoft_dirty(pmd) pmd_mksoft_dirty(pmd) argument
969 #define pmd_swp_clear_soft_dirty(pmd) pmd_clear_soft_dirty(pmd) argument
1036 static inline void set_pmd(pmd_t *pmdp, pmd_t pmd) in set_pmd() argument
1038 WRITE_ONCE(*pmdp, pmd); in set_pmd()
1465 static inline unsigned long pmd_deref(pmd_t pmd) in pmd_deref() argument
1470 if (pmd_leaf(pmd)) in pmd_deref()
1472 return (unsigned long)__va(pmd_val(pmd) & origin_mask); in pmd_deref()
1475 static inline unsigned long pmd_pfn(pmd_t pmd) in pmd_pfn() argument
1477 return __pa(pmd_deref(pmd)) >> PAGE_SHIFT; in pmd_pfn()
1562 static inline unsigned long pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument
1564 return (unsigned long) pmd_deref(pmd); in pmd_page_vaddr()
1577 #define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) argument
1582 static inline pmd_t pmd_wrprotect(pmd_t pmd) in pmd_wrprotect() argument
1584 pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_WRITE)); in pmd_wrprotect()
1585 return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT)); in pmd_wrprotect()
1588 static inline pmd_t pmd_mkwrite_novma(pmd_t pmd) in pmd_mkwrite_novma() argument
1590 pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_WRITE)); in pmd_mkwrite_novma()
1591 if (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY) in pmd_mkwrite_novma()
1592 pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT)); in pmd_mkwrite_novma()
1593 return pmd; in pmd_mkwrite_novma()
1596 static inline pmd_t pmd_mkclean(pmd_t pmd) in pmd_mkclean() argument
1598 pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_DIRTY)); in pmd_mkclean()
1599 return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT)); in pmd_mkclean()
1602 static inline pmd_t pmd_mkdirty(pmd_t pmd) in pmd_mkdirty() argument
1604 pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_DIRTY | _SEGMENT_ENTRY_SOFT_DIRTY)); in pmd_mkdirty()
1605 if (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) in pmd_mkdirty()
1606 pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT)); in pmd_mkdirty()
1607 return pmd; in pmd_mkdirty()
1656 static inline pmd_t pmd_mkyoung(pmd_t pmd) in pmd_mkyoung() argument
1658 pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_YOUNG)); in pmd_mkyoung()
1659 if (pmd_val(pmd) & _SEGMENT_ENTRY_READ) in pmd_mkyoung()
1660 pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_INVALID)); in pmd_mkyoung()
1661 return pmd; in pmd_mkyoung()
1664 static inline pmd_t pmd_mkold(pmd_t pmd) in pmd_mkold() argument
1666 pmd = clear_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_YOUNG)); in pmd_mkold()
1667 return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_INVALID)); in pmd_mkold()
1670 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) in pmd_modify() argument
1679 pmd = __pmd(pmd_val(pmd) & mask); in pmd_modify()
1680 pmd = set_pmd_bit(pmd, __pgprot(massage_pgprot_pmd(newprot))); in pmd_modify()
1681 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY)) in pmd_modify()
1682 pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT)); in pmd_modify()
1683 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG)) in pmd_modify()
1684 pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_INVALID)); in pmd_modify()
1685 return pmd; in pmd_modify()
1794 pmd_t pmd = *pmdp; in pmdp_test_and_clear_young() local
1796 pmd = pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd_mkold(pmd)); in pmdp_test_and_clear_young()
1797 return pmd_young(pmd); in pmdp_test_and_clear_young()
1814 static inline pmd_t pmd_mkhuge(pmd_t pmd) in pmd_mkhuge() argument
1816 pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_LARGE)); in pmd_mkhuge()
1817 pmd = set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_YOUNG)); in pmd_mkhuge()
1818 return set_pmd_bit(pmd, __pgprot(_SEGMENT_ENTRY_PROTECT)); in pmd_mkhuge()
1834 pmd_t pmd = *pmdp; in pmdp_huge_get_and_clear_full() local
1836 return pmd; in pmdp_huge_get_and_clear_full()
1852 pmd_t pmd; in pmdp_invalidate() local
1855 pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID); in pmdp_invalidate()
1856 return pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd); in pmdp_invalidate()
1863 pmd_t pmd = *pmdp; in pmdp_set_wrprotect() local
1865 if (pmd_write(pmd)) in pmdp_set_wrprotect()
1866 pmd = pmdp_xchg_lazy(mm, addr, pmdp, pmd_wrprotect(pmd)); in pmdp_set_wrprotect()
1879 static inline int pmd_trans_huge(pmd_t pmd) in pmd_trans_huge() argument
1881 return pmd_leaf(pmd); in pmd_trans_huge()
2009 static inline swp_entry_t __pmd_to_swp_entry(pmd_t pmd) in __pmd_to_swp_entry() argument
2014 arch_entry = __rste_to_swp_entry(pmd_val(pmd)); in __pmd_to_swp_entry()
2021 pmd_t pmd; in __swp_entry_to_pmd() local
2023 pmd = __pmd(mk_swap_rste(__swp_type(arch_entry), __swp_offset(arch_entry))); in __swp_entry_to_pmd()
2024 return pmd; in __swp_entry_to_pmd()
2041 #define pmd_pgtable(pmd) \ argument
2042 ((pgtable_t)__va(pmd_val(pmd) & -sizeof(pte_t)*PTRS_PER_PTE))