MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pmap_pte_memattr

Function pmap_pte_memattr

freebsd/arm64/arm64/pmap.c:653–680  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

651CTASSERT(L1_BLOCK == L2_BLOCK);
652
653static pt_entry_t
654pmap_pte_memattr(pmap_t pmap, vm_memattr_t memattr)
655{
656 pt_entry_t val;
657
658 if (pmap->pm_stage == PM_STAGE1) {
659 val = ATTR_S1_IDX(memattr);
660 if (memattr == VM_MEMATTR_DEVICE)
661 val |= ATTR_S1_XN;
662 return (val);
663 }
664
665 val = 0;
666
667 switch (memattr) {
668 case VM_MEMATTR_DEVICE:
669 return (ATTR_S2_MEMATTR(ATTR_S2_MEMATTR_DEVICE_nGnRnE) |
670 ATTR_S2_XN(ATTR_S2_XN_ALL));
671 case VM_MEMATTR_UNCACHEABLE:
672 return (ATTR_S2_MEMATTR(ATTR_S2_MEMATTR_NC));
673 case VM_MEMATTR_WRITE_BACK:
674 return (ATTR_S2_MEMATTR(ATTR_S2_MEMATTR_WB));
675 case VM_MEMATTR_WRITE_THROUGH:
676 return (ATTR_S2_MEMATTR(ATTR_S2_MEMATTR_WT));
677 default:
678 panic("%s: invalid memory attribute %x", __func__, memattr);
679 }
680}
681
682static pt_entry_t
683pmap_pte_prot(pmap_t pmap, vm_prot_t prot)

Callers 1

pmap_enterFunction · 0.85

Calls 1

panicFunction · 0.50

Tested by

no test coverage detected