Lines Matching defs:pmd

113 	pr_err("%s:%d: bad pmd %016lx.\n", __FILE__, __LINE__, pmd_val(e))
172 typedef struct { unsigned long pmd; } pmd_t;
173 #define pmd_val(x) ((x).pmd)
214 * Empty pmd entries point to the invalid_pte_table.
216 static inline int pmd_none(pmd_t pmd)
218 return pmd_val(pmd) == (unsigned long)invalid_pte_table;
221 static inline int pmd_bad(pmd_t pmd)
223 return (pmd_val(pmd) & ~PAGE_MASK);
226 static inline int pmd_present(pmd_t pmd)
228 if (unlikely(pmd_val(pmd) & _PAGE_HUGE))
229 return !!(pmd_val(pmd) & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PRESENT_INVALID));
231 return pmd_val(pmd) != (unsigned long)invalid_pte_table;
241 #define pmd_phys(pmd) PHYSADDR(pmd_val(pmd))
244 #define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT))
247 #define pmd_page_vaddr(pmd) pmd_val(pmd)
250 extern void set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd);
258 * Initialize a new pgd / pud / pmd table with invalid pointers.
289 #define __pmd_to_swp_entry(pmd) ((swp_entry_t) { pmd_val(pmd) })
482 static inline unsigned long pmd_pfn(pmd_t pmd)
484 return (pmd_val(pmd) & _PFN_MASK) >> PFN_PTE_SHIFT;
492 static inline int pmd_trans_huge(pmd_t pmd)
494 return !!(pmd_val(pmd) & _PAGE_HUGE) && pmd_present(pmd);
497 static inline pmd_t pmd_mkhuge(pmd_t pmd)
499 pmd_val(pmd) = (pmd_val(pmd) & ~(_PAGE_GLOBAL)) |
500 ((pmd_val(pmd) & _PAGE_GLOBAL) << (_PAGE_HGLOBAL_SHIFT - _PAGE_GLOBAL_SHIFT));
501 pmd_val(pmd) |= _PAGE_HUGE;
503 return pmd;
507 static inline int pmd_write(pmd_t pmd)
509 return !!(pmd_val(pmd) & _PAGE_WRITE);
512 static inline pmd_t pmd_mkwrite_novma(pmd_t pmd)
514 pmd_val(pmd) |= _PAGE_WRITE;
515 if (pmd_val(pmd) & _PAGE_MODIFIED)
516 pmd_val(pmd) |= _PAGE_DIRTY;
517 return pmd;
520 static inline pmd_t pmd_wrprotect(pmd_t pmd)
522 pmd_val(pmd) &= ~(_PAGE_WRITE | _PAGE_DIRTY);
523 return pmd;
526 static inline int pmd_dirty(pmd_t pmd)
528 return !!(pmd_val(pmd) & (_PAGE_DIRTY | _PAGE_MODIFIED));
531 static inline pmd_t pmd_mkclean(pmd_t pmd)
533 pmd_val(pmd) &= ~(_PAGE_DIRTY | _PAGE_MODIFIED);
534 return pmd;
537 static inline pmd_t pmd_mkdirty(pmd_t pmd)
539 pmd_val(pmd) |= _PAGE_MODIFIED;
540 if (pmd_val(pmd) & _PAGE_WRITE)
541 pmd_val(pmd) |= _PAGE_DIRTY;
542 return pmd;
546 static inline int pmd_young(pmd_t pmd)
548 return !!(pmd_val(pmd) & _PAGE_ACCESSED);
551 static inline pmd_t pmd_mkold(pmd_t pmd)
553 pmd_val(pmd) &= ~_PAGE_ACCESSED;
554 return pmd;
557 static inline pmd_t pmd_mkyoung(pmd_t pmd)
559 pmd_val(pmd) |= _PAGE_ACCESSED;
560 return pmd;
563 static inline struct page *pmd_page(pmd_t pmd)
565 if (pmd_trans_huge(pmd))
566 return pfn_to_page(pmd_pfn(pmd));
568 return pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT);
571 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
573 pmd_val(pmd) = (pmd_val(pmd) & _HPAGE_CHG_MASK) |
575 return pmd;
578 static inline pmd_t pmd_mkinvalid(pmd_t pmd)
580 pmd_val(pmd) |= _PAGE_PRESENT_INVALID;
581 pmd_val(pmd) &= ~(_PAGE_PRESENT | _PAGE_VALID | _PAGE_DIRTY | _PAGE_PROTNONE);
583 return pmd;
609 static inline long pmd_protnone(pmd_t pmd)
611 return (pmd_val(pmd) & _PAGE_PROTNONE);
615 #define pmd_leaf(pmd) ((pmd_val(pmd) & _PAGE_HUGE) != 0)