]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/resource.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / bsd / sys / resource.h
index 357768313cbb0bba7aa4ac9f21d2f9cbfb0c6ef2..e3b86028ae078a5c3f21f9ab0d897e574f5b5e4c 100644 (file)
@@ -212,7 +212,13 @@ struct  rusage {
 #define RUSAGE_INFO_V2  2
 #define RUSAGE_INFO_V3  3
 #define RUSAGE_INFO_V4  4
-#define RUSAGE_INFO_CURRENT     RUSAGE_INFO_V4
+#define RUSAGE_INFO_V5  5
+#define RUSAGE_INFO_CURRENT     RUSAGE_INFO_V5
+
+/*
+ * Flags for RUSAGE_INFO_V5
+ */
+#define RU_PROC_RUNS_RESLIDE    0x00000001      /* proc has reslid shared cache */
 
 typedef void *rusage_info_t;
 
@@ -339,11 +345,50 @@ struct rusage_info_v4 {
        uint64_t ri_billed_energy;
        uint64_t ri_serviced_energy;
        uint64_t ri_interval_max_phys_footprint;
-       // 1 reserve counter(s) remaining for future extension
-       uint64_t ri_unused[1];
+       uint64_t ri_runnable_time;
+};
+
+struct rusage_info_v5 {
+       uint8_t  ri_uuid[16];
+       uint64_t ri_user_time;
+       uint64_t ri_system_time;
+       uint64_t ri_pkg_idle_wkups;
+       uint64_t ri_interrupt_wkups;
+       uint64_t ri_pageins;
+       uint64_t ri_wired_size;
+       uint64_t ri_resident_size;
+       uint64_t ri_phys_footprint;
+       uint64_t ri_proc_start_abstime;
+       uint64_t ri_proc_exit_abstime;
+       uint64_t ri_child_user_time;
+       uint64_t ri_child_system_time;
+       uint64_t ri_child_pkg_idle_wkups;
+       uint64_t ri_child_interrupt_wkups;
+       uint64_t ri_child_pageins;
+       uint64_t ri_child_elapsed_abstime;
+       uint64_t ri_diskio_bytesread;
+       uint64_t ri_diskio_byteswritten;
+       uint64_t ri_cpu_time_qos_default;
+       uint64_t ri_cpu_time_qos_maintenance;
+       uint64_t ri_cpu_time_qos_background;
+       uint64_t ri_cpu_time_qos_utility;
+       uint64_t ri_cpu_time_qos_legacy;
+       uint64_t ri_cpu_time_qos_user_initiated;
+       uint64_t ri_cpu_time_qos_user_interactive;
+       uint64_t ri_billed_system_time;
+       uint64_t ri_serviced_system_time;
+       uint64_t ri_logical_writes;
+       uint64_t ri_lifetime_max_phys_footprint;
+       uint64_t ri_instructions;
+       uint64_t ri_cycles;
+       uint64_t ri_billed_energy;
+       uint64_t ri_serviced_energy;
+       uint64_t ri_interval_max_phys_footprint;
+       uint64_t ri_runnable_time;
+       uint64_t ri_flags;
 };
 
-typedef struct rusage_info_v4 rusage_info_current;
+typedef struct rusage_info_v5 rusage_info_current;
 
 #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
 
@@ -498,6 +543,12 @@ struct proc_rlimit_control_wakeupmon {
 #define IOPOL_TYPE_VFS_HFS_CASE_SENSITIVITY 1
 #endif
 #define IOPOL_TYPE_VFS_ATIME_UPDATES 2
+#define IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES 3
+#define IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME 4
+#define IOPOL_TYPE_VFS_TRIGGER_RESOLVE 5
+#define IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION 6
+#define IOPOL_TYPE_VFS_IGNORE_PERMISSIONS 7
+#define IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE 8
 
 /* scope */
 #define IOPOL_SCOPE_PROCESS   0
@@ -524,6 +575,25 @@ struct proc_rlimit_control_wakeupmon {
 #define IOPOL_ATIME_UPDATES_DEFAULT     0
 #define IOPOL_ATIME_UPDATES_OFF         1
 
+#define IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT 0
+#define IOPOL_MATERIALIZE_DATALESS_FILES_OFF     1
+#define IOPOL_MATERIALIZE_DATALESS_FILES_ON      2
+
+#define IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT 0
+#define IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME   1
+
+#define IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT 0
+#define IOPOL_VFS_TRIGGER_RESOLVE_OFF     1
+
+#define IOPOL_VFS_CONTENT_PROTECTION_DEFAULT 0
+#define IOPOL_VFS_CONTENT_PROTECTION_IGNORE  1
+
+#define IOPOL_VFS_IGNORE_PERMISSIONS_OFF 0
+#define IOPOL_VFS_IGNORE_PERMISSIONS_ON  1
+
+#define IOPOL_VFS_SKIP_MTIME_UPDATE_OFF 0
+#define IOPOL_VFS_SKIP_MTIME_UPDATE_ON 1
+
 #ifdef PRIVATE
 /*
  * Structures for use in communicating via iopolicysys() between Libc and the