• Home
  • Raw
  • Download

Lines Matching full:pmd

28 bool __init __early_make_pgtable(unsigned long address, pmdval_t pmd);
74 #define set_pmd(pmdp, pmd) native_set_pmd(pmdp, pmd) argument
98 #define pmd_clear(pmd) native_pmd_clear(pmd) argument
144 static inline bool pmd_dirty(pmd_t pmd) in pmd_dirty() argument
146 return pmd_flags(pmd) & _PAGE_DIRTY_BITS; in pmd_dirty()
149 static inline bool pmd_shstk(pmd_t pmd) in pmd_shstk() argument
152 (pmd_flags(pmd) & (_PAGE_RW | _PAGE_DIRTY | _PAGE_PSE)) == in pmd_shstk()
157 static inline int pmd_young(pmd_t pmd) in pmd_young() argument
159 return pmd_flags(pmd) & _PAGE_ACCESSED; in pmd_young()
182 static inline int pmd_write(pmd_t pmd) in pmd_write() argument
188 return (pmd_flags(pmd) & _PAGE_RW) || pmd_shstk(pmd); in pmd_write()
230 static inline unsigned long pmd_pfn(pmd_t pmd) in pmd_pfn() argument
232 phys_addr_t pfn = pmd_val(pmd); in pmd_pfn()
234 return (pfn & pmd_pfn_mask(pmd)) >> PAGE_SHIFT; in pmd_pfn()
271 static inline int pmd_trans_huge(pmd_t pmd) in pmd_trans_huge() argument
273 return (pmd_val(pmd) & (_PAGE_PSE|_PAGE_DEVMAP)) == _PAGE_PSE; in pmd_trans_huge()
290 static inline int pmd_devmap(pmd_t pmd) in pmd_devmap() argument
292 return !!(pmd_val(pmd) & _PAGE_DEVMAP); in pmd_devmap()
493 static inline pmd_t pmd_set_flags(pmd_t pmd, pmdval_t set) in pmd_set_flags() argument
495 pmdval_t v = native_pmd_val(pmd); in pmd_set_flags()
500 static inline pmd_t pmd_clear_flags(pmd_t pmd, pmdval_t clear) in pmd_clear_flags() argument
502 pmdval_t v = native_pmd_val(pmd); in pmd_clear_flags()
508 static inline pmd_t pmd_mksaveddirty(pmd_t pmd) in pmd_mksaveddirty() argument
510 pmdval_t v = native_pmd_val(pmd); in pmd_mksaveddirty()
517 static inline pmd_t pmd_clear_saveddirty(pmd_t pmd) in pmd_clear_saveddirty() argument
519 pmdval_t v = native_pmd_val(pmd); in pmd_clear_saveddirty()
525 static inline pmd_t pmd_wrprotect(pmd_t pmd) in pmd_wrprotect() argument
527 pmd = pmd_clear_flags(pmd, _PAGE_RW); in pmd_wrprotect()
531 * a shadow stack PMD (RW=0, Dirty=1). Move the hardware in pmd_wrprotect()
534 return pmd_mksaveddirty(pmd); in pmd_wrprotect()
538 static inline int pmd_uffd_wp(pmd_t pmd) in pmd_uffd_wp() argument
540 return pmd_flags(pmd) & _PAGE_UFFD_WP; in pmd_uffd_wp()
543 static inline pmd_t pmd_mkuffd_wp(pmd_t pmd) in pmd_mkuffd_wp() argument
545 return pmd_wrprotect(pmd_set_flags(pmd, _PAGE_UFFD_WP)); in pmd_mkuffd_wp()
548 static inline pmd_t pmd_clear_uffd_wp(pmd_t pmd) in pmd_clear_uffd_wp() argument
550 return pmd_clear_flags(pmd, _PAGE_UFFD_WP); in pmd_clear_uffd_wp()
554 static inline pmd_t pmd_mkold(pmd_t pmd) in pmd_mkold() argument
556 return pmd_clear_flags(pmd, _PAGE_ACCESSED); in pmd_mkold()
559 static inline pmd_t pmd_mkclean(pmd_t pmd) in pmd_mkclean() argument
561 return pmd_clear_flags(pmd, _PAGE_DIRTY_BITS); in pmd_mkclean()
564 static inline pmd_t pmd_mkdirty(pmd_t pmd) in pmd_mkdirty() argument
566 pmd = pmd_set_flags(pmd, _PAGE_DIRTY | _PAGE_SOFT_DIRTY); in pmd_mkdirty()
568 return pmd_mksaveddirty(pmd); in pmd_mkdirty()
571 static inline pmd_t pmd_mkwrite_shstk(pmd_t pmd) in pmd_mkwrite_shstk() argument
573 pmd = pmd_clear_flags(pmd, _PAGE_RW); in pmd_mkwrite_shstk()
575 return pmd_set_flags(pmd, _PAGE_DIRTY); in pmd_mkwrite_shstk()
578 static inline pmd_t pmd_mkdevmap(pmd_t pmd) in pmd_mkdevmap() argument
580 return pmd_set_flags(pmd, _PAGE_DEVMAP); in pmd_mkdevmap()
583 static inline pmd_t pmd_mkhuge(pmd_t pmd) in pmd_mkhuge() argument
585 return pmd_set_flags(pmd, _PAGE_PSE); in pmd_mkhuge()
588 static inline pmd_t pmd_mkyoung(pmd_t pmd) in pmd_mkyoung() argument
590 return pmd_set_flags(pmd, _PAGE_ACCESSED); in pmd_mkyoung()
593 static inline pmd_t pmd_mkwrite_novma(pmd_t pmd) in pmd_mkwrite_novma() argument
595 return pmd_set_flags(pmd, _PAGE_RW); in pmd_mkwrite_novma()
598 pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma);
690 static inline int pmd_soft_dirty(pmd_t pmd) in pmd_soft_dirty() argument
692 return pmd_flags(pmd) & _PAGE_SOFT_DIRTY; in pmd_soft_dirty()
705 static inline pmd_t pmd_mksoft_dirty(pmd_t pmd) in pmd_mksoft_dirty() argument
707 return pmd_set_flags(pmd, _PAGE_SOFT_DIRTY); in pmd_mksoft_dirty()
720 static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd) in pmd_clear_soft_dirty() argument
722 return pmd_clear_flags(pmd, _PAGE_SOFT_DIRTY); in pmd_clear_soft_dirty()
787 static inline pmd_t pmd_mkinvalid(pmd_t pmd) in pmd_mkinvalid() argument
789 return pfn_pmd(pmd_pfn(pmd), in pmd_mkinvalid()
790 __pgprot(pmd_flags(pmd) & ~(_PAGE_PRESENT|_PAGE_PROTNONE))); in pmd_mkinvalid()
828 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) in pmd_modify() argument
830 pmdval_t val = pmd_val(pmd), oldval = val; in pmd_modify()
991 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
999 return pmd_flags(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PSE); in pmd_present()
1013 static inline int pmd_protnone(pmd_t pmd) in pmd_protnone() argument
1015 return (pmd_flags(pmd) & (_PAGE_PROTNONE | _PAGE_PRESENT)) in pmd_protnone()
1020 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
1024 unsigned long val = native_pmd_val(pmd); in pmd_none()
1028 static inline unsigned long pmd_page_vaddr(pmd_t pmd) in pmd_page_vaddr() argument
1030 return (unsigned long)__va(pmd_val(pmd) & pmd_pfn_mask(pmd)); in pmd_page_vaddr()
1037 #define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) argument
1055 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
1057 return (pmd_flags(pmd) & ~(_PAGE_USER | _PAGE_ACCESSED)) != in pmd_bad()
1245 pmd_t *pmdp, pmd_t pmd) in set_pmd_at() argument
1247 page_table_check_pmd_set(mm, pmdp, pmd); in set_pmd_at()
1248 set_pmd(pmdp, pmd); in set_pmd_at()
1352 pmd_t pmd = native_pmdp_get_and_clear(pmdp); in pmdp_huge_get_and_clear() local
1354 page_table_check_pmd_clear(mm, pmd); in pmdp_huge_get_and_clear()
1356 return pmd; in pmdp_huge_get_and_clear()
1390 unsigned long address, pmd_t *pmdp, pmd_t pmd) in pmdp_establish()
1392 page_table_check_pmd_set(vma->vm_mm, pmdp, pmd); in pmdp_establish()
1394 return xchg(pmdp, pmd); in pmdp_establish()
1397 WRITE_ONCE(*pmdp, pmd); in pmdp_establish()
1523 unsigned long addr, pmd_t *pmd) in update_mmu_cache_pmd() argument
1562 static inline pmd_t pmd_swp_mksoft_dirty(pmd_t pmd) in pmd_swp_mksoft_dirty() argument
1564 return pmd_set_flags(pmd, _PAGE_SWP_SOFT_DIRTY); in pmd_swp_mksoft_dirty()
1567 static inline int pmd_swp_soft_dirty(pmd_t pmd) in pmd_swp_soft_dirty() argument
1569 return pmd_flags(pmd) & _PAGE_SWP_SOFT_DIRTY; in pmd_swp_soft_dirty()
1572 static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd) in pmd_swp_clear_soft_dirty() argument
1574 return pmd_clear_flags(pmd, _PAGE_SWP_SOFT_DIRTY); in pmd_swp_clear_soft_dirty()
1595 static inline pmd_t pmd_swp_mkuffd_wp(pmd_t pmd) in pmd_swp_mkuffd_wp() argument
1597 return pmd_set_flags(pmd, _PAGE_SWP_UFFD_WP); in pmd_swp_mkuffd_wp()
1600 static inline int pmd_swp_uffd_wp(pmd_t pmd) in pmd_swp_uffd_wp() argument
1602 return pmd_flags(pmd) & _PAGE_SWP_UFFD_WP; in pmd_swp_uffd_wp()
1605 static inline pmd_t pmd_swp_clear_uffd_wp(pmd_t pmd) in pmd_swp_clear_uffd_wp() argument
1607 return pmd_clear_flags(pmd, _PAGE_SWP_UFFD_WP); in pmd_swp_clear_uffd_wp()
1634 * 'pteval' can come from a PTE, PMD or PUD. We only check
1663 static inline bool pmd_access_permitted(pmd_t pmd, bool write) in pmd_access_permitted() argument
1665 return __pte_access_permitted(pmd_val(pmd), write); in pmd_access_permitted()
1692 void arch_check_zapped_pmd(struct vm_area_struct *vma, pmd_t pmd);
1708 static inline bool pmd_user_accessible_page(pmd_t pmd) in pmd_user_accessible_page() argument
1710 return pmd_leaf(pmd) && (pmd_val(pmd) & _PAGE_PRESENT) && (pmd_val(pmd) & _PAGE_USER); in pmd_user_accessible_page()