]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/kern_memorystatus.h
xnu-1699.26.8.tar.gz
[apple/xnu.git] / bsd / sys / kern_memorystatus.h
index 92f687f3ee13ee10836ac55089c06aad89fb98b0..4a05a490f5a405fe99802049a0a2ed00d9309f41 100644 (file)
@@ -52,7 +52,8 @@
 
 enum {
        kMemoryStatusLevelNote = 1,
-       kMemoryStatusSnapshotNote = 2
+       kMemoryStatusSnapshotNote = 2,
+       kMemoryStatusHibernationNote = 3
 };
 
 enum {
@@ -109,17 +110,48 @@ typedef struct jetsam_snapshot {
        jetsam_snapshot_entry_t entries[1];
 } jetsam_snapshot_t;
 
+typedef struct jetsam_hibernation_entry {
+       uint32_t pid;
+       uint32_t flags;
+       uint32_t pages;
+} jetsam_hibernation_entry_t;
+
+#endif /* !MACH_KERNEL_PRIVATE */
+
 enum {
-       kJetsamFlagsFrontmost = (1 << 0),
-       kJetsamFlagsKilled =    (1 << 1)
+       kJetsamFlagsFrontmost =        (1 << 0),
+       kJetsamFlagsKilled =           (1 << 1),
+       kJetsamFlagsKilledHiwat =      (1 << 2),
+       kJetsamFlagsHibernated =       (1 << 3),
+       kJetsamFlagsKilledVnodes =     (1 << 4),
+       kJetsamFlagsKilledSwap =       (1 << 5),
+       kJetsamFlagsThawed =           (1 << 6),
+       kJetsamFlagsKilledVM =         (1 << 7),
+       kJetsamFlagsSuspForDiagnosis = (1 << 8)
 };
-#endif /* !MACH_KERNEL_PRIVATE */
 
 #ifdef KERNEL
 extern void kern_memorystatus_init(void) __attribute__((section("__TEXT, initcode")));
+extern int jetsam_kill_top_proc(boolean_t any, uint32_t reason);
 
 extern int kern_memorystatus_wakeup;
 extern int kern_memorystatus_level;
+extern unsigned int kern_memorystatus_delta;
+
+#ifdef CONFIG_FREEZE
+extern void kern_hibernation_init(void) __attribute__((section("__TEXT, initcode")));
+extern int kern_hibernation_wakeup;
+
+void kern_hibernation_on_pid_suspend(int pid);
+void kern_hibernation_on_pid_resume(int pid, task_t task);
+void kern_hibernation_on_pid_hibernate(int pid);
+#endif
+
+#if CONFIG_EMBEDDED
+#define VM_CHECK_MEMORYSTATUS do { vm_check_memorystatus(); } while(0)
+#else /*CONFIG_EMBEDDED*/
+#define VM_CHECK_MEMORYSTATUS do {} while(0)
+#endif
 
 #endif /* KERNEL */
 #endif /* SYS_KERN_MEMORYSTATUS_H */