X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/2d21ac55c334faf3a56e5634905ed6987fc787d4..b7266188b87f3620ec3f9f717e57194a7dd989fe:/bsd/sys/kern_memorystatus.h diff --git a/bsd/sys/kern_memorystatus.h b/bsd/sys/kern_memorystatus.h index f94c4a7a7..92f687f3e 100644 --- a/bsd/sys/kern_memorystatus.h +++ b/bsd/sys/kern_memorystatus.h @@ -33,6 +33,12 @@ #ifndef SYS_KERN_MEMORYSTATUS_H #define SYS_KERN_MEMORYSTATUS_H +#ifndef MACH_KERNEL_PRIVATE + +#include +#include +#include + /* * Define Memory Status event subclass. * Subclass of KEV_SYSTEM_CLASS @@ -44,6 +50,11 @@ */ #define KEV_MEMORYSTATUS_SUBCLASS 3 +enum { + kMemoryStatusLevelNote = 1, + kMemoryStatusSnapshotNote = 2 +}; + enum { kMemoryStatusLevelAny = -1, kMemoryStatusLevelNormal = 0, @@ -52,6 +63,58 @@ enum { kMemoryStatusLevelCritical = 3 }; +typedef struct jetsam_priority_entry { + pid_t pid; + uint32_t flags; + int32_t hiwat_pages; + int32_t hiwat_reserved1; + int32_t hiwat_reserved2; + int32_t hiwat_reserved3; +} jetsam_priority_entry_t; + +/* +** maximum killable processes to keep track of +*/ +#define kMaxPriorityEntries 64 + +typedef struct jetsam_snapshot_entry { + pid_t pid; + char name[MAXCOMLEN+1]; + uint32_t pages; + uint32_t flags; + uint8_t uuid[16]; +} jetsam_snapshot_entry_t; + +/* +** how many processes to snapshot +*/ +#define kMaxSnapshotEntries 128 + +typedef struct jetsam_kernel_stats { + uint32_t free_pages; + uint32_t active_pages; + uint32_t inactive_pages; + uint32_t purgeable_pages; + uint32_t wired_pages; +} jetsam_kernel_stats_t; + +/* +** This is a variable-length struct. +** Allocate a buffer of the size returned by the sysctl, cast to a jetsam_snapshot_t * +*/ + +typedef struct jetsam_snapshot { + jetsam_kernel_stats_t stats; + size_t entry_count; + jetsam_snapshot_entry_t entries[1]; +} jetsam_snapshot_t; + +enum { + kJetsamFlagsFrontmost = (1 << 0), + kJetsamFlagsKilled = (1 << 1) +}; +#endif /* !MACH_KERNEL_PRIVATE */ + #ifdef KERNEL extern void kern_memorystatus_init(void) __attribute__((section("__TEXT, initcode")));