Lines Matching refs:pmd

494 static inline int pmd_present(pmd_t pmd)  in pmd_present()  argument
496 return pmd_val(pmd) != _SEGMENT_ENTRY_INVALID; in pmd_present()
499 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
501 return pmd_val(pmd) == _SEGMENT_ENTRY_INVALID; in pmd_none()
504 static inline int pmd_large(pmd_t pmd) in pmd_large() argument
506 return (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) != 0; in pmd_large()
509 static inline unsigned long pmd_pfn(pmd_t pmd) in pmd_pfn() argument
514 if (pmd_large(pmd)) in pmd_pfn()
516 return (pmd_val(pmd) & origin_mask) >> PAGE_SHIFT; in pmd_pfn()
519 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
521 if (pmd_large(pmd)) in pmd_bad()
522 return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS_LARGE) != 0; in pmd_bad()
523 return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS) != 0; in pmd_bad()
540 static inline int pmd_write(pmd_t pmd) in pmd_write() argument
542 return (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) != 0; in pmd_write()
545 static inline int pmd_dirty(pmd_t pmd) in pmd_dirty() argument
548 if (pmd_large(pmd)) in pmd_dirty()
549 dirty = (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY) != 0; in pmd_dirty()
553 static inline int pmd_young(pmd_t pmd) in pmd_young() argument
556 if (pmd_large(pmd)) in pmd_young()
557 young = (pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG) != 0; in pmd_young()
597 static inline int pmd_protnone(pmd_t pmd) in pmd_protnone() argument
600 return pmd_large(pmd) && !(pmd_val(pmd) & _SEGMENT_ENTRY_READ); in pmd_protnone()
624 static inline int pmd_soft_dirty(pmd_t pmd) in pmd_soft_dirty() argument
626 return pmd_val(pmd) & _SEGMENT_ENTRY_SOFT_DIRTY; in pmd_soft_dirty()
629 static inline pmd_t pmd_mksoft_dirty(pmd_t pmd) in pmd_mksoft_dirty() argument
631 pmd_val(pmd) |= _SEGMENT_ENTRY_SOFT_DIRTY; in pmd_mksoft_dirty()
632 return pmd; in pmd_mksoft_dirty()
635 static inline pmd_t pmd_clear_soft_dirty(pmd_t pmd) in pmd_clear_soft_dirty() argument
637 pmd_val(pmd) &= ~_SEGMENT_ENTRY_SOFT_DIRTY; in pmd_clear_soft_dirty()
638 return pmd; in pmd_clear_soft_dirty()
1321 #define pmd_deref(pmd) (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN) argument
1335 pmd_t *pmd = (pmd_t *) pud; in pmd_offset() local
1337 pmd = (pmd_t *) pud_deref(*pud); in pmd_offset()
1338 return pmd + pmd_index(address); in pmd_offset()
1345 #define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) argument
1348 #define pte_offset(pmd, addr) ((pte_t *) pmd_deref(*(pmd)) + pte_index(addr)) argument
1349 #define pte_offset_kernel(pmd, address) pte_offset(pmd,address) argument
1350 #define pte_offset_map(pmd, address) pte_offset_kernel(pmd, address) argument
1367 static inline pmd_t pmd_wrprotect(pmd_t pmd) in pmd_wrprotect() argument
1369 pmd_val(pmd) &= ~_SEGMENT_ENTRY_WRITE; in pmd_wrprotect()
1370 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_wrprotect()
1371 return pmd; in pmd_wrprotect()
1374 static inline pmd_t pmd_mkwrite(pmd_t pmd) in pmd_mkwrite() argument
1376 pmd_val(pmd) |= _SEGMENT_ENTRY_WRITE; in pmd_mkwrite()
1377 if (pmd_large(pmd) && !(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY)) in pmd_mkwrite()
1378 return pmd; in pmd_mkwrite()
1379 pmd_val(pmd) &= ~_SEGMENT_ENTRY_PROTECT; in pmd_mkwrite()
1380 return pmd; in pmd_mkwrite()
1383 static inline pmd_t pmd_mkclean(pmd_t pmd) in pmd_mkclean() argument
1385 if (pmd_large(pmd)) { in pmd_mkclean()
1386 pmd_val(pmd) &= ~_SEGMENT_ENTRY_DIRTY; in pmd_mkclean()
1387 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_mkclean()
1389 return pmd; in pmd_mkclean()
1392 static inline pmd_t pmd_mkdirty(pmd_t pmd) in pmd_mkdirty() argument
1394 if (pmd_large(pmd)) { in pmd_mkdirty()
1395 pmd_val(pmd) |= _SEGMENT_ENTRY_DIRTY | in pmd_mkdirty()
1397 if (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) in pmd_mkdirty()
1398 pmd_val(pmd) &= ~_SEGMENT_ENTRY_PROTECT; in pmd_mkdirty()
1400 return pmd; in pmd_mkdirty()
1403 static inline pmd_t pmd_mkyoung(pmd_t pmd) in pmd_mkyoung() argument
1405 if (pmd_large(pmd)) { in pmd_mkyoung()
1406 pmd_val(pmd) |= _SEGMENT_ENTRY_YOUNG; in pmd_mkyoung()
1407 if (pmd_val(pmd) & _SEGMENT_ENTRY_READ) in pmd_mkyoung()
1408 pmd_val(pmd) &= ~_SEGMENT_ENTRY_INVALID; in pmd_mkyoung()
1410 return pmd; in pmd_mkyoung()
1413 static inline pmd_t pmd_mkold(pmd_t pmd) in pmd_mkold() argument
1415 if (pmd_large(pmd)) { in pmd_mkold()
1416 pmd_val(pmd) &= ~_SEGMENT_ENTRY_YOUNG; in pmd_mkold()
1417 pmd_val(pmd) |= _SEGMENT_ENTRY_INVALID; in pmd_mkold()
1419 return pmd; in pmd_mkold()
1422 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) in pmd_modify() argument
1424 if (pmd_large(pmd)) { in pmd_modify()
1425 pmd_val(pmd) &= _SEGMENT_ENTRY_ORIGIN_LARGE | in pmd_modify()
1429 pmd_val(pmd) |= massage_pgprot_pmd(newprot); in pmd_modify()
1430 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY)) in pmd_modify()
1431 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_modify()
1432 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG)) in pmd_modify()
1433 pmd_val(pmd) |= _SEGMENT_ENTRY_INVALID; in pmd_modify()
1434 return pmd; in pmd_modify()
1436 pmd_val(pmd) &= _SEGMENT_ENTRY_ORIGIN; in pmd_modify()
1437 pmd_val(pmd) |= massage_pgprot_pmd(newprot); in pmd_modify()
1438 return pmd; in pmd_modify()
1536 static inline int pmd_trans_splitting(pmd_t pmd) in pmd_trans_splitting() argument
1538 return (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) && in pmd_trans_splitting()
1539 (pmd_val(pmd) & _SEGMENT_ENTRY_SPLIT); in pmd_trans_splitting()
1548 static inline pmd_t pmd_mkhuge(pmd_t pmd) in pmd_mkhuge() argument
1550 pmd_val(pmd) |= _SEGMENT_ENTRY_LARGE; in pmd_mkhuge()
1551 pmd_val(pmd) |= _SEGMENT_ENTRY_YOUNG; in pmd_mkhuge()
1552 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_mkhuge()
1553 return pmd; in pmd_mkhuge()
1560 pmd_t pmd; in pmdp_test_and_clear_young() local
1562 pmd = *pmdp; in pmdp_test_and_clear_young()
1564 *pmdp = pmd_mkold(pmd); in pmdp_test_and_clear_young()
1565 return pmd_young(pmd); in pmdp_test_and_clear_young()
1572 pmd_t pmd = *pmdp; in pmdp_huge_get_and_clear() local
1576 return pmd; in pmdp_huge_get_and_clear()
1584 pmd_t pmd = *pmdp; in pmdp_huge_get_and_clear_full() local
1589 return pmd; in pmdp_huge_get_and_clear_full()
1610 pmd_t pmd = *pmdp; in pmdp_set_wrprotect() local
1612 if (pmd_write(pmd)) { in pmdp_set_wrprotect()
1614 set_pmd_at(mm, address, pmdp, pmd_wrprotect(pmd)); in pmdp_set_wrprotect()
1629 static inline int pmd_trans_huge(pmd_t pmd) in pmd_trans_huge() argument
1631 return pmd_val(pmd) & _SEGMENT_ENTRY_LARGE; in pmd_trans_huge()