#include <sys/proc.h>
#include <sys/param.h>
#include <sys/kern_memorystatus.h>
+#include <mach/resource_monitors.h> // command/proc_name_t
typedef struct memorystatus_freeze_entry {
int32_t pid;
uint32_t pages;
} memorystatus_freeze_entry_t;
+#ifdef PRIVATE
+#define FREEZE_PROCESSES_MAX 20
+#endif /* PRIVATE */
+
#ifdef XNU_KERNEL_PRIVATE
extern unsigned long freeze_threshold_percentage;
#define FREEZE_PAGES_MAX (max_task_footprint_mb == 0 ? INT_MAX : (max_task_footprint_mb << (20 - PAGE_SHIFT)))
#define FREEZE_SUSPENDED_THRESHOLD_DEFAULT 4
-#define FREEZE_PROCESSES_MAX 20
#define FREEZE_DAILY_MB_MAX_DEFAULT 1024
#define FREEZE_DEGRADATION_BUDGET_THRESHOLD 25 //degraded perf. when the daily budget left falls below this threshold percentage
#endif /* XNU_KERNEL_PRIVATE */
+#ifdef PRIVATE
+/* Lists all the processes that are currently in the freezer. */
+#define FREEZER_CONTROL_GET_PROCS (2)
+
+#define FREEZER_CONTROL_GET_PROCS_MAX_COUNT (FREEZE_PROCESSES_MAX * 2)
+
+typedef struct _global_frozen_procs {
+ size_t gfp_num_frozen;
+ struct {
+ pid_t fp_pid;
+ proc_name_t fp_name;
+ } gfp_procs[FREEZER_CONTROL_GET_PROCS_MAX_COUNT];
+} global_frozen_procs_t;
+
+#endif /* PRIVATE */
+
#endif /* SYS_MEMORYSTATUS_FREEZE_H */