Lines Matching refs:pmd
482 static inline int pmd_present(pmd_t pmd) in pmd_present() argument
484 return pmd_val(pmd) != _SEGMENT_ENTRY_INVALID; in pmd_present()
487 static inline int pmd_none(pmd_t pmd) in pmd_none() argument
489 return pmd_val(pmd) == _SEGMENT_ENTRY_INVALID; in pmd_none()
492 static inline int pmd_large(pmd_t pmd) in pmd_large() argument
494 return (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) != 0; in pmd_large()
497 static inline unsigned long pmd_pfn(pmd_t pmd) in pmd_pfn() argument
502 if (pmd_large(pmd)) in pmd_pfn()
504 return (pmd_val(pmd) & origin_mask) >> PAGE_SHIFT; in pmd_pfn()
507 static inline int pmd_bad(pmd_t pmd) in pmd_bad() argument
509 if (pmd_large(pmd)) in pmd_bad()
510 return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS_LARGE) != 0; in pmd_bad()
511 return (pmd_val(pmd) & ~_SEGMENT_ENTRY_BITS) != 0; in pmd_bad()
528 static inline int pmd_write(pmd_t pmd) in pmd_write() argument
530 return (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) != 0; in pmd_write()
533 static inline int pmd_dirty(pmd_t pmd) in pmd_dirty() argument
536 if (pmd_large(pmd)) in pmd_dirty()
537 dirty = (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY) != 0; in pmd_dirty()
541 static inline int pmd_young(pmd_t pmd) in pmd_young() argument
544 if (pmd_large(pmd)) in pmd_young()
545 young = (pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG) != 0; in pmd_young()
1256 #define pmd_deref(pmd) (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN) argument
1270 pmd_t *pmd = (pmd_t *) pud; in pmd_offset() local
1272 pmd = (pmd_t *) pud_deref(*pud); in pmd_offset()
1273 return pmd + pmd_index(address); in pmd_offset()
1280 #define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) argument
1283 #define pte_offset(pmd, addr) ((pte_t *) pmd_deref(*(pmd)) + pte_index(addr)) argument
1284 #define pte_offset_kernel(pmd, address) pte_offset(pmd,address) argument
1285 #define pte_offset_map(pmd, address) pte_offset_kernel(pmd, address) argument
1302 static inline pmd_t pmd_wrprotect(pmd_t pmd) in pmd_wrprotect() argument
1304 pmd_val(pmd) &= ~_SEGMENT_ENTRY_WRITE; in pmd_wrprotect()
1305 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_wrprotect()
1306 return pmd; in pmd_wrprotect()
1309 static inline pmd_t pmd_mkwrite(pmd_t pmd) in pmd_mkwrite() argument
1311 pmd_val(pmd) |= _SEGMENT_ENTRY_WRITE; in pmd_mkwrite()
1312 if (pmd_large(pmd) && !(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY)) in pmd_mkwrite()
1313 return pmd; in pmd_mkwrite()
1314 pmd_val(pmd) &= ~_SEGMENT_ENTRY_PROTECT; in pmd_mkwrite()
1315 return pmd; in pmd_mkwrite()
1318 static inline pmd_t pmd_mkclean(pmd_t pmd) in pmd_mkclean() argument
1320 if (pmd_large(pmd)) { in pmd_mkclean()
1321 pmd_val(pmd) &= ~_SEGMENT_ENTRY_DIRTY; in pmd_mkclean()
1322 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_mkclean()
1324 return pmd; in pmd_mkclean()
1327 static inline pmd_t pmd_mkdirty(pmd_t pmd) in pmd_mkdirty() argument
1329 if (pmd_large(pmd)) { in pmd_mkdirty()
1330 pmd_val(pmd) |= _SEGMENT_ENTRY_DIRTY; in pmd_mkdirty()
1331 if (pmd_val(pmd) & _SEGMENT_ENTRY_WRITE) in pmd_mkdirty()
1332 pmd_val(pmd) &= ~_SEGMENT_ENTRY_PROTECT; in pmd_mkdirty()
1334 return pmd; in pmd_mkdirty()
1337 static inline pmd_t pmd_mkyoung(pmd_t pmd) in pmd_mkyoung() argument
1339 if (pmd_large(pmd)) { in pmd_mkyoung()
1340 pmd_val(pmd) |= _SEGMENT_ENTRY_YOUNG; in pmd_mkyoung()
1341 if (pmd_val(pmd) & _SEGMENT_ENTRY_READ) in pmd_mkyoung()
1342 pmd_val(pmd) &= ~_SEGMENT_ENTRY_INVALID; in pmd_mkyoung()
1344 return pmd; in pmd_mkyoung()
1347 static inline pmd_t pmd_mkold(pmd_t pmd) in pmd_mkold() argument
1349 if (pmd_large(pmd)) { in pmd_mkold()
1350 pmd_val(pmd) &= ~_SEGMENT_ENTRY_YOUNG; in pmd_mkold()
1351 pmd_val(pmd) |= _SEGMENT_ENTRY_INVALID; in pmd_mkold()
1353 return pmd; in pmd_mkold()
1356 static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) in pmd_modify() argument
1358 if (pmd_large(pmd)) { in pmd_modify()
1359 pmd_val(pmd) &= _SEGMENT_ENTRY_ORIGIN_LARGE | in pmd_modify()
1362 pmd_val(pmd) |= massage_pgprot_pmd(newprot); in pmd_modify()
1363 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY)) in pmd_modify()
1364 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_modify()
1365 if (!(pmd_val(pmd) & _SEGMENT_ENTRY_YOUNG)) in pmd_modify()
1366 pmd_val(pmd) |= _SEGMENT_ENTRY_INVALID; in pmd_modify()
1367 return pmd; in pmd_modify()
1369 pmd_val(pmd) &= _SEGMENT_ENTRY_ORIGIN; in pmd_modify()
1370 pmd_val(pmd) |= massage_pgprot_pmd(newprot); in pmd_modify()
1371 return pmd; in pmd_modify()
1469 static inline int pmd_trans_splitting(pmd_t pmd) in pmd_trans_splitting() argument
1471 return (pmd_val(pmd) & _SEGMENT_ENTRY_LARGE) && in pmd_trans_splitting()
1472 (pmd_val(pmd) & _SEGMENT_ENTRY_SPLIT); in pmd_trans_splitting()
1481 static inline pmd_t pmd_mkhuge(pmd_t pmd) in pmd_mkhuge() argument
1483 pmd_val(pmd) |= _SEGMENT_ENTRY_LARGE; in pmd_mkhuge()
1484 pmd_val(pmd) |= _SEGMENT_ENTRY_YOUNG; in pmd_mkhuge()
1485 pmd_val(pmd) |= _SEGMENT_ENTRY_PROTECT; in pmd_mkhuge()
1486 return pmd; in pmd_mkhuge()
1493 pmd_t pmd; in pmdp_test_and_clear_young() local
1495 pmd = *pmdp; in pmdp_test_and_clear_young()
1497 *pmdp = pmd_mkold(pmd); in pmdp_test_and_clear_young()
1498 return pmd_young(pmd); in pmdp_test_and_clear_young()
1505 pmd_t pmd = *pmdp; in pmdp_get_and_clear() local
1509 return pmd; in pmdp_get_and_clear()
1517 pmd_t pmd = *pmdp; in pmdp_get_and_clear_full() local
1522 return pmd; in pmdp_get_and_clear_full()
1543 pmd_t pmd = *pmdp; in pmdp_set_wrprotect() local
1545 if (pmd_write(pmd)) { in pmdp_set_wrprotect()
1547 set_pmd_at(mm, address, pmdp, pmd_wrprotect(pmd)); in pmdp_set_wrprotect()
1554 static inline int pmd_trans_huge(pmd_t pmd) in pmd_trans_huge() argument
1556 return pmd_val(pmd) & _SEGMENT_ENTRY_LARGE; in pmd_trans_huge()