Lines Matching defs:pmd

72 	printk("%s:%d: bad pmd %p.\n", __FILE__, __LINE__, (void *) pmd_val(e))
605 * pgd/p4d/pud/pmd/pte query functions
696 static inline int pmd_large(pmd_t pmd)
698 return (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) != 0;
701 static inline int pmd_bad(pmd_t pmd)
703 if ((pmd_val(pmd) & _SEGMENT_ENTRY_TYPE_MASK) > 0 || pmd_large(pmd))
705 return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS) != 0;
730 static inline int pmd_present(pmd_t pmd)
732 return pmd_val(pmd) != _SEGMENT_ENTRY_EMPTY;
735 static inline int pmd_none(pmd_t pmd)
737 return pmd_val(pmd) == _SEGMENT_ENTRY_EMPTY;
741 static inline int pmd_write(pmd_t pmd)
743 return (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) != 0;
752 static inline int pmd_dirty(pmd_t pmd)
754 return (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY) != 0;
757 static inline int pmd_young(pmd_t pmd)
759 return (pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG) != 0;
798 static inline int pmd_protnone(pmd_t pmd)
800 /* pmd_large(pmd) implies pmd_present(pmd) */
801 return pmd_large(pmd) && !(pmd_val(pmd) & _SEGMENT_ENTRY_READ);
825 static inline int pmd_soft_dirty(pmd_t pmd)
827 return pmd_val(pmd) & _SEGMENT_ENTRY_SOFT_DIRTY;
830 static inline pmd_t pmd_mksoft_dirty(pmd_t pmd)
832 pmd_val(pmd) |= _SEGMENT_ENTRY_SOFT_DIRTY;
833 return pmd;
836 static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd)
838 pmd_val(pmd) &= ~_SEGMENT_ENTRY_SOFT_DIRTY;
839 return pmd;
887 * pgd/pmd/pte modification functions
1243 static inline unsigned long pmd_deref(pmd_t pmd)
1248 if (pmd_large(pmd))
1250 return pmd_val(pmd) & origin_mask;
1253 static inline unsigned long pmd_pfn(pmd_t pmd)
1255 return pmd_deref(pmd) >> PAGE_SHIFT;
1339 static inline unsigned long pmd_page_vaddr(pmd_t pmd)
1341 return (unsigned long) pmd_deref(pmd);
1354 #define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd))
1359 static inline pmd_t pmd_wrprotect(pmd_t pmd)
1361 pmd_val(pmd) &= ~_SEGMENT_ENTRY_WRITE;
1362 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT;
1363 return pmd;
1366 static inline pmd_t pmd_mkwrite(pmd_t pmd)
1368 pmd_val(pmd) |= _SEGMENT_ENTRY_WRITE;
1369 if (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY)
1370 pmd_val(pmd) &= ~_SEGMENT_ENTRY_PROTECT;
1371 return pmd;
1374 static inline pmd_t pmd_mkclean(pmd_t pmd)
1376 pmd_val(pmd) &= ~_SEGMENT_ENTRY_DIRTY;
1377 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT;
1378 return pmd;
1381 static inline pmd_t pmd_mkdirty(pmd_t pmd)
1383 pmd_val(pmd) |= _SEGMENT_ENTRY_DIRTY | _SEGMENT_ENTRY_SOFT_DIRTY;
1384 if (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE)
1385 pmd_val(pmd) &= ~_SEGMENT_ENTRY_PROTECT;
1386 return pmd;
1437 static inline pmd_t pmd_mkyoung(pmd_t pmd)
1439 pmd_val(pmd) |= _SEGMENT_ENTRY_YOUNG;
1440 if (pmd_val(pmd) & _SEGMENT_ENTRY_READ)
1441 pmd_val(pmd) &= ~_SEGMENT_ENTRY_INVALID;
1442 return pmd;
1445 static inline pmd_t pmd_mkold(pmd_t pmd)
1447 pmd_val(pmd) &= ~_SEGMENT_ENTRY_YOUNG;
1448 pmd_val(pmd) |= _SEGMENT_ENTRY_INVALID;
1449 return pmd;
1452 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
1454 pmd_val(pmd) &= _SEGMENT_ENTRY_ORIGIN_LARGE |
1457 pmd_val(pmd) |= massage_pgprot_pmd(newprot);
1458 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY))
1459 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT;
1460 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG))
1461 pmd_val(pmd) |= _SEGMENT_ENTRY_INVALID;
1462 return pmd;
1573 pmd_t pmd = *pmdp;
1575 pmd = pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd_mkold(pmd));
1576 return pmd_young(pmd);
1595 static inline pmd_t pmd_mkhuge(pmd_t pmd)
1597 pmd_val(pmd) |= _SEGMENT_ENTRY_LARGE;
1598 pmd_val(pmd) |= _SEGMENT_ENTRY_YOUNG;
1599 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT;
1600 return pmd;
1616 pmd_t pmd = *pmdp;
1618 return pmd;
1634 pmd_t pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID);
1636 return pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd);
1643 pmd_t pmd = *pmdp;
1645 if (pmd_write(pmd))
1646 pmd = pmdp_xchg_lazy(mm, addr, pmdp, pmd_wrprotect(pmd));
1660 static inline int pmd_trans_huge(pmd_t pmd)
1662 return pmd_val(pmd) & _SEGMENT_ENTRY_LARGE;