X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/89b3af67bb32e691275bf6fa803d1834b2284115..2dced7af2b695f87fe26496a3e73c219b7880cbc:/osfmk/mach/vm_prot.h diff --git a/osfmk/mach/vm_prot.h b/osfmk/mach/vm_prot.h index ed81997c2..039390c26 100644 --- a/osfmk/mach/vm_prot.h +++ b/osfmk/mach/vm_prot.h @@ -84,12 +84,6 @@ typedef int vm_prot_t; #define VM_PROT_WRITE ((vm_prot_t) 0x02) /* write permission */ #define VM_PROT_EXECUTE ((vm_prot_t) 0x04) /* execute permission */ -/* - * For now we can only support no execute on stacks... too many - * entries are marked w/o VM_PROT_EXECUTE that actually have code - */ -#define STACK_ONLY_NX 1 - /* * The default protection for newly-created virtual memory */ @@ -135,5 +129,26 @@ typedef int vm_prot_t; #define VM_PROT_WANTS_COPY ((vm_prot_t) 0x10) +#ifdef PRIVATE +/* + * The caller wants this memory region treated as if it had a valid + * code signature. + */ + +#define VM_PROT_TRUSTED ((vm_prot_t) 0x20) +#endif /* PRIVATE */ + +/* + * Another invalid protection value. + * Indicates that the other protection bits are to be applied as a mask + * against the actual protection bits of the map entry. + */ +#define VM_PROT_IS_MASK ((vm_prot_t) 0x40) + + +#define VM_PROT_MEMORY_TAG_MASK 0xFF000000 +#define VM_PROT_MEMORY_TAG_SHIFT 24 +#define VM_PROT_MEMORY_TAG(x) (((x) >> VM_PROT_MEMORY_TAG_SHIFT) & 0xFF) +#define VM_PROT_MEMORY_TAG_MAKE(x) (((x) & 0xFF) << VM_PROT_MEMORY_TAG_SHIFT) #endif /* _MACH_VM_PROT_H_ */