]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/mach/shared_region.h
xnu-3247.10.11.tar.gz
[apple/xnu.git] / osfmk / mach / shared_region.h
index ab5a722e11c52591ec2cd39edfd33e07252a6c8c..7f1d3fbb07ea916ca2200b07a1a557524c68dc70 100644 (file)
 #define SHARED_REGION_SIZE_I386                        0x20000000ULL
 #define SHARED_REGION_NESTING_BASE_I386                0x90000000ULL
 #define SHARED_REGION_NESTING_SIZE_I386                0x20000000ULL
-#define SHARED_REGION_NESTING_MIN_I386         0x00020000ULL
-#define SHARED_REGION_NESTING_MAX_I386         0xFFFE0000ULL
+#define SHARED_REGION_NESTING_MIN_I386         0x00200000ULL
+#define SHARED_REGION_NESTING_MAX_I386         0xFFE00000ULL
 
-#define SHARED_REGION_BASE_X86_64              0x00007FFF60000000ULL
-#define SHARED_REGION_SIZE_X86_64              0x000000009FE00000ULL
-#define SHARED_REGION_NESTING_BASE_X86_64      0x00007FFF60000000ULL
-#define SHARED_REGION_NESTING_SIZE_X86_64      0x000000009FE00000ULL
-#define SHARED_REGION_NESTING_MIN_X86_64       0x0000000000020000ULL
-#define SHARED_REGION_NESTING_MAX_X86_64       0xFFFFFFFFFFFE0000ULL
+#define SHARED_REGION_BASE_X86_64              0x00007FFF70000000ULL
+#define SHARED_REGION_SIZE_X86_64              0x000000008FE00000ULL
+#define SHARED_REGION_NESTING_BASE_X86_64      0x00007FFF80000000ULL
+#define SHARED_REGION_NESTING_SIZE_X86_64      0x0000000040000000ULL
+#define SHARED_REGION_NESTING_MIN_X86_64       0x0000000000200000ULL
+#define SHARED_REGION_NESTING_MAX_X86_64       0xFFFFFFFFFFE00000ULL
 
 #define SHARED_REGION_BASE_PPC                 0x90000000ULL
 #define SHARED_REGION_SIZE_PPC                 0x20000000ULL
 #define SHARED_REGION_NESTING_MIN_PPC64                0x0000000010000000ULL
 #define SHARED_REGION_NESTING_MAX_PPC64                0x0000000010000000ULL
 
-#define SHARED_REGION_BASE_ARM                 0x30000000ULL
-#define SHARED_REGION_SIZE_ARM                 0x10000000ULL
-#define SHARED_REGION_NESTING_BASE_ARM         0x30000000ULL
-#define SHARED_REGION_NESTING_SIZE_ARM         0x08000000ULL
+#define SHARED_REGION_BASE_ARM                 0x20000000ULL
+#define SHARED_REGION_SIZE_ARM                 0x20000000ULL
+#define SHARED_REGION_NESTING_BASE_ARM         0x20000000ULL
+#define SHARED_REGION_NESTING_SIZE_ARM         0x20000000ULL
 #define SHARED_REGION_NESTING_MIN_ARM          ?
 #define SHARED_REGION_NESTING_MAX_ARM          ?
 
+#ifdef XNU_KERNEL_PRIVATE
+/* ARM64_TODO: move to higher memory */
+#endif
+#define SHARED_REGION_BASE_ARM64               0x180000000ULL
+#define SHARED_REGION_SIZE_ARM64               0x28000000ULL
+#define SHARED_REGION_NESTING_BASE_ARM64       0x180000000ULL
+#define SHARED_REGION_NESTING_SIZE_ARM64       0x28000000ULL
+#define SHARED_REGION_NESTING_MIN_ARM64                ?
+#define SHARED_REGION_NESTING_MAX_ARM64                ?
+
+#if defined(__i386__)
+#define SHARED_REGION_BASE                     SHARED_REGION_BASE_I386
+#define SHARED_REGION_SIZE                     SHARED_REGION_SIZE_I386
+#define SHARED_REGION_NESTING_BASE             SHARED_REGION_NESTING_BASE_I386
+#define SHARED_REGION_NESTING_SIZE             SHARED_REGION_NESTING_SIZE_I386
+#define SHARED_REGION_NESTING_MIN              SHARED_REGION_NESTING_MIN_I386
+#define SHARED_REGION_NESTING_MAX              SHARED_REGION_NESTING_MAX_I386
+#elif defined(__x86_64__)
+#define SHARED_REGION_BASE                     SHARED_REGION_BASE_X86_64
+#define SHARED_REGION_SIZE                     SHARED_REGION_SIZE_X86_64
+#define SHARED_REGION_NESTING_BASE             SHARED_REGION_NESTING_BASE_X86_64
+#define SHARED_REGION_NESTING_SIZE             SHARED_REGION_NESTING_SIZE_X86_64
+#define SHARED_REGION_NESTING_MIN              SHARED_REGION_NESTING_MIN_X86_64
+#define SHARED_REGION_NESTING_MAX              SHARED_REGION_NESTING_MAX_X86_64
+#endif
+
+#ifdef KERNEL_PRIVATE
+
+/*
+ * This is routine sets  the current source of power.
+ * Arguments:
+ * 0 if it is external source (connected to power )
+ * 1 if it is internal power source ie battery
+ */
+
+void post_sys_powersource(int);
+
+#endif /* KERNEL_PRIVATE */
 /* 
  * All shared_region_* declarations are a private interface
  * between dyld and the kernel.
@@ -84,6 +122,7 @@ struct shared_file_mapping_np {
 };
 #define VM_PROT_COW  0x8  /* must not interfere with normal prot assignments */
 #define VM_PROT_ZF  0x10  /* must not interfere with normal prot assignments */
+#define VM_PROT_SLIDE  0x20  /* must not interfere with normal prot assignments */
 
 #ifndef KERNEL
 
@@ -92,6 +131,7 @@ int  shared_region_check_np(uint64_t *startaddress);
 int    shared_region_map_np(int fd,
                             uint32_t mappingCount,
                             const struct shared_file_mapping_np *mappings);
+int    shared_region_slide_np(void);
 __END_DECLS
 
 #endif /* !KERNEL */