X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/b7266188b87f3620ec3f9f717e57194a7dd989fe..7ddcb079202367355dddccdfa4318e57d50318be:/bsd/sys/kern_memorystatus.h diff --git a/bsd/sys/kern_memorystatus.h b/bsd/sys/kern_memorystatus.h index 92f687f3e..4a05a490f 100644 --- a/bsd/sys/kern_memorystatus.h +++ b/bsd/sys/kern_memorystatus.h @@ -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 */