• Home
  • Raw
  • Download

Lines Matching full:pmd

71 	printk("%s:%d: bad pmd %p.\n", __FILE__, __LINE__, (void *) pmd_val(e))
586 * pgd/p4d/pud/pmd/pte query functions
683 static inline int pmd_large(pmd_t pmd) in pmd_large() argument
685 return (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) != 0; in pmd_large()
688 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
690 if (pmd_large(pmd)) in pmd_bad()
691 return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS_LARGE) != 0; in pmd_bad()
692 return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS) != 0; in pmd_bad()
711 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
713 return pmd_val(pmd) != _SEGMENT_ENTRY_EMPTY; in pmd_present()
716 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
718 return pmd_val(pmd) == _SEGMENT_ENTRY_EMPTY; in pmd_none()
721 static inline unsigned long pmd_pfn(pmd_t pmd) in pmd_pfn() argument
726 if (pmd_large(pmd)) in pmd_pfn()
728 return (pmd_val(pmd) & origin_mask) >> PAGE_SHIFT; in pmd_pfn()
732 static inline int pmd_write(pmd_t pmd) in pmd_write() argument
734 return (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) != 0; in pmd_write()
737 static inline int pmd_dirty(pmd_t pmd) in pmd_dirty() argument
740 if (pmd_large(pmd)) in pmd_dirty()
741 dirty = (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY) != 0; in pmd_dirty()
745 static inline int pmd_young(pmd_t pmd) in pmd_young() argument
748 if (pmd_large(pmd)) in pmd_young()
749 young = (pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG) != 0; in pmd_young()
789 static inline int pmd_protnone(pmd_t pmd) in pmd_protnone() argument
791 /* pmd_large(pmd) implies pmd_present(pmd) */ in pmd_protnone()
792 return pmd_large(pmd) && !(pmd_val(pmd) & _SEGMENT_ENTRY_READ); in pmd_protnone()
816 static inline int pmd_soft_dirty(pmd_t pmd) in pmd_soft_dirty() argument
818 return pmd_val(pmd) & _SEGMENT_ENTRY_SOFT_DIRTY; in pmd_soft_dirty()
821 static inline pmd_t pmd_mksoft_dirty(pmd_t pmd) in pmd_mksoft_dirty() argument
823 pmd_val(pmd) |= _SEGMENT_ENTRY_SOFT_DIRTY; in pmd_mksoft_dirty()
824 return pmd; in pmd_mksoft_dirty()
827 static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd) in pmd_clear_soft_dirty() argument
829 pmd_val(pmd) &= ~_SEGMENT_ENTRY_SOFT_DIRTY; in pmd_clear_soft_dirty()
830 return pmd; in pmd_clear_soft_dirty()
859 * pgd/pmd/pte modification functions
1193 #define pmd_deref(pmd) (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN) argument
1218 pmd_t *pmd = (pmd_t *) pud; in pmd_offset() local
1221 pmd = (pmd_t *) pud_deref(*pud); in pmd_offset()
1222 return pmd + pmd_index(address); in pmd_offset()
1229 #define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) argument
1234 #define pte_offset(pmd, addr) ((pte_t *) pmd_deref(*(pmd)) + pte_index(addr)) argument
1235 #define pte_offset_kernel(pmd, address) pte_offset(pmd,address) argument
1236 #define pte_offset_map(pmd, address) pte_offset_kernel(pmd, address) argument
1239 static inline pmd_t pmd_wrprotect(pmd_t pmd) in pmd_wrprotect() argument
1241 pmd_val(pmd) &= ~_SEGMENT_ENTRY_WRITE; in pmd_wrprotect()
1242 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_wrprotect()
1243 return pmd; in pmd_wrprotect()
1246 static inline pmd_t pmd_mkwrite(pmd_t pmd) in pmd_mkwrite() argument
1248 pmd_val(pmd) |= _SEGMENT_ENTRY_WRITE; in pmd_mkwrite()
1249 if (pmd_large(pmd) && !(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY)) in pmd_mkwrite()
1250 return pmd; in pmd_mkwrite()
1251 pmd_val(pmd) &= ~_SEGMENT_ENTRY_PROTECT; in pmd_mkwrite()
1252 return pmd; in pmd_mkwrite()
1255 static inline pmd_t pmd_mkclean(pmd_t pmd) in pmd_mkclean() argument
1257 if (pmd_large(pmd)) { in pmd_mkclean()
1258 pmd_val(pmd) &= ~_SEGMENT_ENTRY_DIRTY; in pmd_mkclean()
1259 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_mkclean()
1261 return pmd; in pmd_mkclean()
1264 static inline pmd_t pmd_mkdirty(pmd_t pmd) in pmd_mkdirty() argument
1266 if (pmd_large(pmd)) { in pmd_mkdirty()
1267 pmd_val(pmd) |= _SEGMENT_ENTRY_DIRTY | in pmd_mkdirty()
1269 if (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) in pmd_mkdirty()
1270 pmd_val(pmd) &= ~_SEGMENT_ENTRY_PROTECT; in pmd_mkdirty()
1272 return pmd; in pmd_mkdirty()
1329 static inline pmd_t pmd_mkyoung(pmd_t pmd) in pmd_mkyoung() argument
1331 if (pmd_large(pmd)) { in pmd_mkyoung()
1332 pmd_val(pmd) |= _SEGMENT_ENTRY_YOUNG; in pmd_mkyoung()
1333 if (pmd_val(pmd) & _SEGMENT_ENTRY_READ) in pmd_mkyoung()
1334 pmd_val(pmd) &= ~_SEGMENT_ENTRY_INVALID; in pmd_mkyoung()
1336 return pmd; in pmd_mkyoung()
1339 static inline pmd_t pmd_mkold(pmd_t pmd) in pmd_mkold() argument
1341 if (pmd_large(pmd)) { in pmd_mkold()
1342 pmd_val(pmd) &= ~_SEGMENT_ENTRY_YOUNG; in pmd_mkold()
1343 pmd_val(pmd) |= _SEGMENT_ENTRY_INVALID; in pmd_mkold()
1345 return pmd; in pmd_mkold()
1348 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) in pmd_modify() argument
1350 if (pmd_large(pmd)) { in pmd_modify()
1351 pmd_val(pmd) &= _SEGMENT_ENTRY_ORIGIN_LARGE | in pmd_modify()
1354 pmd_val(pmd) |= massage_pgprot_pmd(newprot); in pmd_modify()
1355 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY)) in pmd_modify()
1356 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_modify()
1357 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG)) in pmd_modify()
1358 pmd_val(pmd) |= _SEGMENT_ENTRY_INVALID; in pmd_modify()
1359 return pmd; in pmd_modify()
1361 pmd_val(pmd) &= _SEGMENT_ENTRY_ORIGIN; in pmd_modify()
1362 pmd_val(pmd) |= massage_pgprot_pmd(newprot); in pmd_modify()
1363 return pmd; in pmd_modify()
1474 pmd_t pmd = *pmdp; in pmdp_test_and_clear_young() local
1476 pmd = pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd_mkold(pmd)); in pmdp_test_and_clear_young()
1477 return pmd_young(pmd); in pmdp_test_and_clear_young()
1496 static inline pmd_t pmd_mkhuge(pmd_t pmd) in pmd_mkhuge() argument
1498 pmd_val(pmd) |= _SEGMENT_ENTRY_LARGE; in pmd_mkhuge()
1499 pmd_val(pmd) |= _SEGMENT_ENTRY_YOUNG; in pmd_mkhuge()
1500 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_mkhuge()
1501 return pmd; in pmd_mkhuge()
1517 pmd_t pmd = *pmdp; in pmdp_huge_get_and_clear_full() local
1519 return pmd; in pmdp_huge_get_and_clear_full()
1535 pmd_t pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID); in pmdp_invalidate() local
1537 return pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd); in pmdp_invalidate()
1544 pmd_t pmd = *pmdp; in pmdp_set_wrprotect() local
1546 if (pmd_write(pmd)) in pmdp_set_wrprotect()
1547 pmd = pmdp_xchg_lazy(mm, addr, pmdp, pmd_wrprotect(pmd)); in pmdp_set_wrprotect()
1561 static inline int pmd_trans_huge(pmd_t pmd) in pmd_trans_huge() argument
1563 return pmd_val(pmd) & _SEGMENT_ENTRY_LARGE; in pmd_trans_huge()