]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/mach/vm_prot.h
xnu-3247.10.11.tar.gz
[apple/xnu.git] / osfmk / mach / vm_prot.h
index ed81997c283dfd3ed2c17f59563bc0ced1007a48..039390c26e8a1f5673b16445fe3146ab8910d049 100644 (file)
@@ -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_ */