L2_XS_XN
npte |= L2_XS_XN;
npte &= ~L2_XS_XN;
npte &= ~L2_XS_XN; /* and executable */
npte &= ~L2_XS_XN; /* and executable */
if ((nflags & PVF_EXEC) && (npte & L2_XS_XN)) {
npte &= ~L2_XS_XN;
npte &= ~L2_XS_XN;
if ((opte & L2_S_PROT_U) == 0 || (opte & L2_XS_XN) == 0)
l2pte_set(ptep, opte & ~L2_XS_XN, 0);
if (user && (ftype & VM_PROT_EXECUTE) && (npte & L2_XS_XN)) {
npte &= ~L2_XS_XN;
} else if (user && (ftype & VM_PROT_EXECUTE) && (opte & L2_XS_XN)) {
l2pte_set(ptep, opte & ~L2_XS_XN, 0);
opte, opte & ~L2_XS_XN, 0, 0);
const pt_entry_t npte = (opte & ~(L2_S_PROT_MASK|L2_XS_XN))
npte &= ~L2_XS_XN;
| ((prot & VM_PROT_EXECUTE) ? 0 : L2_XS_XN)
npte &= ((prot & VM_PROT_EXECUTE) ? ~L2_XS_XN : ~0);
#define L2_S_PROTO_armv6n (L2_TYPE_S|L2_XS_XN)
#define L2_S_PROTO_armv7 (L2_TYPE_S|L2_XS_XN)