Lines Matching defs:pmd

92 #define pmd_phys(pmd)		virt_to_phys((void *)pmd_val(pmd))
94 #define __pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT))
96 #define pmd_page(pmd) __pmd_page(pmd)
99 #define pmd_page_vaddr(pmd) pmd_val(pmd)
585 static inline int pmd_trans_huge(pmd_t pmd)
587 return !!(pmd_val(pmd) & _PAGE_HUGE);
590 static inline pmd_t pmd_mkhuge(pmd_t pmd)
592 pmd_val(pmd) |= _PAGE_HUGE;
594 return pmd;
598 pmd_t *pmdp, pmd_t pmd);
601 static inline int pmd_write(pmd_t pmd)
603 return !!(pmd_val(pmd) & _PAGE_WRITE);
606 static inline pmd_t pmd_wrprotect(pmd_t pmd)
608 pmd_val(pmd) &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE);
609 return pmd;
612 static inline pmd_t pmd_mkwrite(pmd_t pmd)
614 pmd_val(pmd) |= _PAGE_WRITE;
615 if (pmd_val(pmd) & _PAGE_MODIFIED)
616 pmd_val(pmd) |= _PAGE_SILENT_WRITE;
618 return pmd;
621 static inline int pmd_dirty(pmd_t pmd)
623 return !!(pmd_val(pmd) & _PAGE_MODIFIED);
626 static inline pmd_t pmd_mkclean(pmd_t pmd)
628 pmd_val(pmd) &= ~(_PAGE_MODIFIED | _PAGE_SILENT_WRITE);
629 return pmd;
632 static inline pmd_t pmd_mkdirty(pmd_t pmd)
634 pmd_val(pmd) |= _PAGE_MODIFIED | _PAGE_SOFT_DIRTY;
635 if (pmd_val(pmd) & _PAGE_WRITE)
636 pmd_val(pmd) |= _PAGE_SILENT_WRITE;
638 return pmd;
641 static inline int pmd_young(pmd_t pmd)
643 return !!(pmd_val(pmd) & _PAGE_ACCESSED);
646 static inline pmd_t pmd_mkold(pmd_t pmd)
648 pmd_val(pmd) &= ~(_PAGE_ACCESSED|_PAGE_SILENT_READ);
650 return pmd;
653 static inline pmd_t pmd_mkyoung(pmd_t pmd)
655 pmd_val(pmd) |= _PAGE_ACCESSED;
657 if (!(pmd_val(pmd) & _PAGE_NO_READ))
658 pmd_val(pmd) |= _PAGE_SILENT_READ;
660 return pmd;
664 static inline int pmd_soft_dirty(pmd_t pmd)
666 return !!(pmd_val(pmd) & _PAGE_SOFT_DIRTY);
669 static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
671 pmd_val(pmd) |= _PAGE_SOFT_DIRTY;
672 return pmd;
675 static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
677 pmd_val(pmd) &= ~(_PAGE_SOFT_DIRTY);
678 return pmd;
686 static inline unsigned long pmd_pfn(pmd_t pmd)
688 return pmd_val(pmd) >> _PFN_SHIFT;
691 static inline struct page *pmd_page(pmd_t pmd)
693 if (pmd_trans_huge(pmd))
694 return pfn_to_page(pmd_pfn(pmd));
696 return pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT);
699 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
701 pmd_val(pmd) = (pmd_val(pmd) & (_PAGE_CHG_MASK | _PAGE_HUGE)) |
703 return pmd;
706 static inline pmd_t pmd_mkinvalid(pmd_t pmd)
708 pmd_val(pmd) &= ~(_PAGE_PRESENT | _PAGE_VALID | _PAGE_DIRTY);
710 return pmd;
731 #define pmd_leaf(pmd) ((pmd_val(pmd) & _PAGE_HUGE) != 0)