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

Function pmap_pte_prot

freebsd/arm64/arm64/pmap.c:682–703  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

680}
681
682static pt_entry_t
683pmap_pte_prot(pmap_t pmap, vm_prot_t prot)
684{
685 pt_entry_t val;
686
687 val = 0;
688 if (pmap->pm_stage == PM_STAGE1) {
689 if ((prot & VM_PROT_EXECUTE) == 0)
690 val |= ATTR_S1_XN;
691 if ((prot & VM_PROT_WRITE) == 0)
692 val |= ATTR_S1_AP(ATTR_S1_AP_RO);
693 } else {
694 if ((prot & VM_PROT_WRITE) != 0)
695 val |= ATTR_S2_S2AP(ATTR_S2_S2AP_WRITE);
696 if ((prot & VM_PROT_READ) != 0)
697 val |= ATTR_S2_S2AP(ATTR_S2_S2AP_READ);
698 if ((prot & VM_PROT_EXECUTE) == 0)
699 val |= ATTR_S2_XN(ATTR_S2_XN_ALL);
700 }
701
702 return (val);
703}
704
705/*
706 * Checks if the PTE is dirty.

Callers 1

pmap_enterFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected