1*f6217f89SApple OSS Distributions /* 2*f6217f89SApple OSS Distributions * Copyright (c) 2000-2018 Apple Inc. All rights reserved. 3*f6217f89SApple OSS Distributions * 4*f6217f89SApple OSS Distributions * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5*f6217f89SApple OSS Distributions * 6*f6217f89SApple OSS Distributions * This file contains Original Code and/or Modifications of Original Code 7*f6217f89SApple OSS Distributions * as defined in and that are subject to the Apple Public Source License 8*f6217f89SApple OSS Distributions * Version 2.0 (the 'License'). You may not use this file except in 9*f6217f89SApple OSS Distributions * compliance with the License. The rights granted to you under the License 10*f6217f89SApple OSS Distributions * may not be used to create, or enable the creation or redistribution of, 11*f6217f89SApple OSS Distributions * unlawful or unlicensed copies of an Apple operating system, or to 12*f6217f89SApple OSS Distributions * circumvent, violate, or enable the circumvention or violation of, any 13*f6217f89SApple OSS Distributions * terms of an Apple operating system software license agreement. 14*f6217f89SApple OSS Distributions * 15*f6217f89SApple OSS Distributions * Please obtain a copy of the License at 16*f6217f89SApple OSS Distributions * http://www.opensource.apple.com/apsl/ and read it before using this file. 17*f6217f89SApple OSS Distributions * 18*f6217f89SApple OSS Distributions * The Original Code and all software distributed under the License are 19*f6217f89SApple OSS Distributions * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20*f6217f89SApple OSS Distributions * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21*f6217f89SApple OSS Distributions * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22*f6217f89SApple OSS Distributions * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23*f6217f89SApple OSS Distributions * Please see the License for the specific language governing rights and 24*f6217f89SApple OSS Distributions * limitations under the License. 25*f6217f89SApple OSS Distributions * 26*f6217f89SApple OSS Distributions * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27*f6217f89SApple OSS Distributions */ 28*f6217f89SApple OSS Distributions /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ 29*f6217f89SApple OSS Distributions /* 30*f6217f89SApple OSS Distributions * Copyright (c) 1982, 1986, 1993 31*f6217f89SApple OSS Distributions * The Regents of the University of California. All rights reserved. 32*f6217f89SApple OSS Distributions * 33*f6217f89SApple OSS Distributions * Redistribution and use in source and binary forms, with or without 34*f6217f89SApple OSS Distributions * modification, are permitted provided that the following conditions 35*f6217f89SApple OSS Distributions * are met: 36*f6217f89SApple OSS Distributions * 1. Redistributions of source code must retain the above copyright 37*f6217f89SApple OSS Distributions * notice, this list of conditions and the following disclaimer. 38*f6217f89SApple OSS Distributions * 2. Redistributions in binary form must reproduce the above copyright 39*f6217f89SApple OSS Distributions * notice, this list of conditions and the following disclaimer in the 40*f6217f89SApple OSS Distributions * documentation and/or other materials provided with the distribution. 41*f6217f89SApple OSS Distributions * 3. All advertising materials mentioning features or use of this software 42*f6217f89SApple OSS Distributions * must display the following acknowledgement: 43*f6217f89SApple OSS Distributions * This product includes software developed by the University of 44*f6217f89SApple OSS Distributions * California, Berkeley and its contributors. 45*f6217f89SApple OSS Distributions * 4. Neither the name of the University nor the names of its contributors 46*f6217f89SApple OSS Distributions * may be used to endorse or promote products derived from this software 47*f6217f89SApple OSS Distributions * without specific prior written permission. 48*f6217f89SApple OSS Distributions * 49*f6217f89SApple OSS Distributions * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 50*f6217f89SApple OSS Distributions * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 51*f6217f89SApple OSS Distributions * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 52*f6217f89SApple OSS Distributions * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 53*f6217f89SApple OSS Distributions * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 54*f6217f89SApple OSS Distributions * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 55*f6217f89SApple OSS Distributions * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 56*f6217f89SApple OSS Distributions * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 57*f6217f89SApple OSS Distributions * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 58*f6217f89SApple OSS Distributions * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 59*f6217f89SApple OSS Distributions * SUCH DAMAGE. 60*f6217f89SApple OSS Distributions * 61*f6217f89SApple OSS Distributions * @(#)resource.h 8.2 (Berkeley) 1/4/94 62*f6217f89SApple OSS Distributions */ 63*f6217f89SApple OSS Distributions 64*f6217f89SApple OSS Distributions #ifndef _SYS_RESOURCE_H_ 65*f6217f89SApple OSS Distributions #define _SYS_RESOURCE_H_ 66*f6217f89SApple OSS Distributions 67*f6217f89SApple OSS Distributions #include <sys/appleapiopts.h> 68*f6217f89SApple OSS Distributions #include <sys/cdefs.h> 69*f6217f89SApple OSS Distributions #include <sys/_types.h> 70*f6217f89SApple OSS Distributions 71*f6217f89SApple OSS Distributions #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL 72*f6217f89SApple OSS Distributions #include <stdint.h> 73*f6217f89SApple OSS Distributions #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 74*f6217f89SApple OSS Distributions 75*f6217f89SApple OSS Distributions #ifndef KERNEL 76*f6217f89SApple OSS Distributions #include <Availability.h> 77*f6217f89SApple OSS Distributions #endif 78*f6217f89SApple OSS Distributions 79*f6217f89SApple OSS Distributions /* [XSI] The timeval structure shall be defined as described in 80*f6217f89SApple OSS Distributions * <sys/time.h> 81*f6217f89SApple OSS Distributions */ 82*f6217f89SApple OSS Distributions #include <sys/_types/_timeval.h> 83*f6217f89SApple OSS Distributions #ifdef KERNEL 84*f6217f89SApple OSS Distributions #include <sys/_types/_user32_timeval.h> 85*f6217f89SApple OSS Distributions #include <sys/_types/_user64_timeval.h> 86*f6217f89SApple OSS Distributions #endif 87*f6217f89SApple OSS Distributions 88*f6217f89SApple OSS Distributions /* The id_t type shall be defined as described in <sys/types.h> */ 89*f6217f89SApple OSS Distributions #include <sys/_types/_id_t.h> 90*f6217f89SApple OSS Distributions 91*f6217f89SApple OSS Distributions 92*f6217f89SApple OSS Distributions /* 93*f6217f89SApple OSS Distributions * Resource limit type (low 63 bits, excluding the sign bit) 94*f6217f89SApple OSS Distributions */ 95*f6217f89SApple OSS Distributions typedef __uint64_t rlim_t; 96*f6217f89SApple OSS Distributions 97*f6217f89SApple OSS Distributions 98*f6217f89SApple OSS Distributions /***** 99*f6217f89SApple OSS Distributions * PRIORITY 100*f6217f89SApple OSS Distributions */ 101*f6217f89SApple OSS Distributions 102*f6217f89SApple OSS Distributions /* 103*f6217f89SApple OSS Distributions * Possible values of the first parameter to getpriority()/setpriority(), 104*f6217f89SApple OSS Distributions * used to indicate the type of the second parameter. 105*f6217f89SApple OSS Distributions */ 106*f6217f89SApple OSS Distributions #define PRIO_PROCESS 0 /* Second argument is a PID */ 107*f6217f89SApple OSS Distributions #define PRIO_PGRP 1 /* Second argument is a GID */ 108*f6217f89SApple OSS Distributions #define PRIO_USER 2 /* Second argument is a UID */ 109*f6217f89SApple OSS Distributions 110*f6217f89SApple OSS Distributions #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL 111*f6217f89SApple OSS Distributions #define PRIO_DARWIN_THREAD 3 /* Second argument is always 0 (current thread) */ 112*f6217f89SApple OSS Distributions #define PRIO_DARWIN_PROCESS 4 /* Second argument is a PID */ 113*f6217f89SApple OSS Distributions /* Additional private parameters to getpriority()/setpriority() are in resource_private.h */ 114*f6217f89SApple OSS Distributions 115*f6217f89SApple OSS Distributions /* 116*f6217f89SApple OSS Distributions * Range limitations for the value of the third parameter to setpriority(). 117*f6217f89SApple OSS Distributions */ 118*f6217f89SApple OSS Distributions #define PRIO_MIN -20 119*f6217f89SApple OSS Distributions #define PRIO_MAX 20 120*f6217f89SApple OSS Distributions 121*f6217f89SApple OSS Distributions /* 122*f6217f89SApple OSS Distributions * use PRIO_DARWIN_BG to set the current thread into "background" state 123*f6217f89SApple OSS Distributions * which lowers CPU, disk IO, and networking priorites until thread terminates 124*f6217f89SApple OSS Distributions * or "background" state is revoked 125*f6217f89SApple OSS Distributions */ 126*f6217f89SApple OSS Distributions #define PRIO_DARWIN_BG 0x1000 127*f6217f89SApple OSS Distributions 128*f6217f89SApple OSS Distributions /* 129*f6217f89SApple OSS Distributions * use PRIO_DARWIN_NONUI to restrict a process's ability to make calls to 130*f6217f89SApple OSS Distributions * the GPU. (deprecated) 131*f6217f89SApple OSS Distributions */ 132*f6217f89SApple OSS Distributions #define PRIO_DARWIN_NONUI 0x1001 133*f6217f89SApple OSS Distributions 134*f6217f89SApple OSS Distributions #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 135*f6217f89SApple OSS Distributions 136*f6217f89SApple OSS Distributions 137*f6217f89SApple OSS Distributions 138*f6217f89SApple OSS Distributions /***** 139*f6217f89SApple OSS Distributions * RESOURCE USAGE 140*f6217f89SApple OSS Distributions */ 141*f6217f89SApple OSS Distributions 142*f6217f89SApple OSS Distributions /* 143*f6217f89SApple OSS Distributions * Possible values of the first parameter to getrusage(), used to indicate 144*f6217f89SApple OSS Distributions * the scope of the information to be returned. 145*f6217f89SApple OSS Distributions */ 146*f6217f89SApple OSS Distributions #define RUSAGE_SELF 0 /* Current process information */ 147*f6217f89SApple OSS Distributions #define RUSAGE_CHILDREN -1 /* Current process' children */ 148*f6217f89SApple OSS Distributions 149*f6217f89SApple OSS Distributions /* 150*f6217f89SApple OSS Distributions * A structure representing an accounting of resource utilization. The 151*f6217f89SApple OSS Distributions * address of an instance of this structure is the second parameter to 152*f6217f89SApple OSS Distributions * getrusage(). 153*f6217f89SApple OSS Distributions * 154*f6217f89SApple OSS Distributions * Note: All values other than ru_utime and ru_stime are implementaiton 155*f6217f89SApple OSS Distributions * defined and subject to change in a future release. Their use 156*f6217f89SApple OSS Distributions * is discouraged for standards compliant programs. 157*f6217f89SApple OSS Distributions */ 158*f6217f89SApple OSS Distributions struct rusage { 159*f6217f89SApple OSS Distributions struct timeval ru_utime; /* user time used (PL) */ 160*f6217f89SApple OSS Distributions struct timeval ru_stime; /* system time used (PL) */ 161*f6217f89SApple OSS Distributions #if __DARWIN_C_LEVEL < __DARWIN_C_FULL 162*f6217f89SApple OSS Distributions long ru_opaque[14]; /* implementation defined */ 163*f6217f89SApple OSS Distributions #else 164*f6217f89SApple OSS Distributions /* 165*f6217f89SApple OSS Distributions * Informational aliases for source compatibility with programs 166*f6217f89SApple OSS Distributions * that need more information than that provided by standards, 167*f6217f89SApple OSS Distributions * and which do not mind being OS-dependent. 168*f6217f89SApple OSS Distributions */ 169*f6217f89SApple OSS Distributions long ru_maxrss; /* max resident set size (PL) */ 170*f6217f89SApple OSS Distributions #define ru_first ru_ixrss /* internal: ruadd() range start */ 171*f6217f89SApple OSS Distributions long ru_ixrss; /* integral shared memory size (NU) */ 172*f6217f89SApple OSS Distributions long ru_idrss; /* integral unshared data (NU) */ 173*f6217f89SApple OSS Distributions long ru_isrss; /* integral unshared stack (NU) */ 174*f6217f89SApple OSS Distributions long ru_minflt; /* page reclaims (NU) */ 175*f6217f89SApple OSS Distributions long ru_majflt; /* page faults (NU) */ 176*f6217f89SApple OSS Distributions long ru_nswap; /* swaps (NU) */ 177*f6217f89SApple OSS Distributions long ru_inblock; /* block input operations (atomic) */ 178*f6217f89SApple OSS Distributions long ru_oublock; /* block output operations (atomic) */ 179*f6217f89SApple OSS Distributions long ru_msgsnd; /* messages sent (atomic) */ 180*f6217f89SApple OSS Distributions long ru_msgrcv; /* messages received (atomic) */ 181*f6217f89SApple OSS Distributions long ru_nsignals; /* signals received (atomic) */ 182*f6217f89SApple OSS Distributions long ru_nvcsw; /* voluntary context switches (atomic) */ 183*f6217f89SApple OSS Distributions long ru_nivcsw; /* involuntary " */ 184*f6217f89SApple OSS Distributions #define ru_last ru_nivcsw /* internal: ruadd() range end */ 185*f6217f89SApple OSS Distributions #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 186*f6217f89SApple OSS Distributions }; 187*f6217f89SApple OSS Distributions 188*f6217f89SApple OSS Distributions #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL 189*f6217f89SApple OSS Distributions /* 190*f6217f89SApple OSS Distributions * Flavors for proc_pid_rusage(). 191*f6217f89SApple OSS Distributions */ 192*f6217f89SApple OSS Distributions #define RUSAGE_INFO_V0 0 193*f6217f89SApple OSS Distributions #define RUSAGE_INFO_V1 1 194*f6217f89SApple OSS Distributions #define RUSAGE_INFO_V2 2 195*f6217f89SApple OSS Distributions #define RUSAGE_INFO_V3 3 196*f6217f89SApple OSS Distributions #define RUSAGE_INFO_V4 4 197*f6217f89SApple OSS Distributions #define RUSAGE_INFO_V5 5 198*f6217f89SApple OSS Distributions #define RUSAGE_INFO_V6 6 199*f6217f89SApple OSS Distributions #define RUSAGE_INFO_CURRENT RUSAGE_INFO_V6 200*f6217f89SApple OSS Distributions 201*f6217f89SApple OSS Distributions /* 202*f6217f89SApple OSS Distributions * Flags for RUSAGE_INFO_V5 203*f6217f89SApple OSS Distributions */ 204*f6217f89SApple OSS Distributions #define RU_PROC_RUNS_RESLIDE 0x00000001 /* proc has reslid shared cache */ 205*f6217f89SApple OSS Distributions 206*f6217f89SApple OSS Distributions typedef void *rusage_info_t; 207*f6217f89SApple OSS Distributions 208*f6217f89SApple OSS Distributions struct rusage_info_v0 { 209*f6217f89SApple OSS Distributions uint8_t ri_uuid[16]; 210*f6217f89SApple OSS Distributions uint64_t ri_user_time; 211*f6217f89SApple OSS Distributions uint64_t ri_system_time; 212*f6217f89SApple OSS Distributions uint64_t ri_pkg_idle_wkups; 213*f6217f89SApple OSS Distributions uint64_t ri_interrupt_wkups; 214*f6217f89SApple OSS Distributions uint64_t ri_pageins; 215*f6217f89SApple OSS Distributions uint64_t ri_wired_size; 216*f6217f89SApple OSS Distributions uint64_t ri_resident_size; 217*f6217f89SApple OSS Distributions uint64_t ri_phys_footprint; 218*f6217f89SApple OSS Distributions uint64_t ri_proc_start_abstime; 219*f6217f89SApple OSS Distributions uint64_t ri_proc_exit_abstime; 220*f6217f89SApple OSS Distributions }; 221*f6217f89SApple OSS Distributions 222*f6217f89SApple OSS Distributions struct rusage_info_v1 { 223*f6217f89SApple OSS Distributions uint8_t ri_uuid[16]; 224*f6217f89SApple OSS Distributions uint64_t ri_user_time; 225*f6217f89SApple OSS Distributions uint64_t ri_system_time; 226*f6217f89SApple OSS Distributions uint64_t ri_pkg_idle_wkups; 227*f6217f89SApple OSS Distributions uint64_t ri_interrupt_wkups; 228*f6217f89SApple OSS Distributions uint64_t ri_pageins; 229*f6217f89SApple OSS Distributions uint64_t ri_wired_size; 230*f6217f89SApple OSS Distributions uint64_t ri_resident_size; 231*f6217f89SApple OSS Distributions uint64_t ri_phys_footprint; 232*f6217f89SApple OSS Distributions uint64_t ri_proc_start_abstime; 233*f6217f89SApple OSS Distributions uint64_t ri_proc_exit_abstime; 234*f6217f89SApple OSS Distributions uint64_t ri_child_user_time; 235*f6217f89SApple OSS Distributions uint64_t ri_child_system_time; 236*f6217f89SApple OSS Distributions uint64_t ri_child_pkg_idle_wkups; 237*f6217f89SApple OSS Distributions uint64_t ri_child_interrupt_wkups; 238*f6217f89SApple OSS Distributions uint64_t ri_child_pageins; 239*f6217f89SApple OSS Distributions uint64_t ri_child_elapsed_abstime; 240*f6217f89SApple OSS Distributions }; 241*f6217f89SApple OSS Distributions 242*f6217f89SApple OSS Distributions struct rusage_info_v2 { 243*f6217f89SApple OSS Distributions uint8_t ri_uuid[16]; 244*f6217f89SApple OSS Distributions uint64_t ri_user_time; 245*f6217f89SApple OSS Distributions uint64_t ri_system_time; 246*f6217f89SApple OSS Distributions uint64_t ri_pkg_idle_wkups; 247*f6217f89SApple OSS Distributions uint64_t ri_interrupt_wkups; 248*f6217f89SApple OSS Distributions uint64_t ri_pageins; 249*f6217f89SApple OSS Distributions uint64_t ri_wired_size; 250*f6217f89SApple OSS Distributions uint64_t ri_resident_size; 251*f6217f89SApple OSS Distributions uint64_t ri_phys_footprint; 252*f6217f89SApple OSS Distributions uint64_t ri_proc_start_abstime; 253*f6217f89SApple OSS Distributions uint64_t ri_proc_exit_abstime; 254*f6217f89SApple OSS Distributions uint64_t ri_child_user_time; 255*f6217f89SApple OSS Distributions uint64_t ri_child_system_time; 256*f6217f89SApple OSS Distributions uint64_t ri_child_pkg_idle_wkups; 257*f6217f89SApple OSS Distributions uint64_t ri_child_interrupt_wkups; 258*f6217f89SApple OSS Distributions uint64_t ri_child_pageins; 259*f6217f89SApple OSS Distributions uint64_t ri_child_elapsed_abstime; 260*f6217f89SApple OSS Distributions uint64_t ri_diskio_bytesread; 261*f6217f89SApple OSS Distributions uint64_t ri_diskio_byteswritten; 262*f6217f89SApple OSS Distributions }; 263*f6217f89SApple OSS Distributions 264*f6217f89SApple OSS Distributions struct rusage_info_v3 { 265*f6217f89SApple OSS Distributions uint8_t ri_uuid[16]; 266*f6217f89SApple OSS Distributions uint64_t ri_user_time; 267*f6217f89SApple OSS Distributions uint64_t ri_system_time; 268*f6217f89SApple OSS Distributions uint64_t ri_pkg_idle_wkups; 269*f6217f89SApple OSS Distributions uint64_t ri_interrupt_wkups; 270*f6217f89SApple OSS Distributions uint64_t ri_pageins; 271*f6217f89SApple OSS Distributions uint64_t ri_wired_size; 272*f6217f89SApple OSS Distributions uint64_t ri_resident_size; 273*f6217f89SApple OSS Distributions uint64_t ri_phys_footprint; 274*f6217f89SApple OSS Distributions uint64_t ri_proc_start_abstime; 275*f6217f89SApple OSS Distributions uint64_t ri_proc_exit_abstime; 276*f6217f89SApple OSS Distributions uint64_t ri_child_user_time; 277*f6217f89SApple OSS Distributions uint64_t ri_child_system_time; 278*f6217f89SApple OSS Distributions uint64_t ri_child_pkg_idle_wkups; 279*f6217f89SApple OSS Distributions uint64_t ri_child_interrupt_wkups; 280*f6217f89SApple OSS Distributions uint64_t ri_child_pageins; 281*f6217f89SApple OSS Distributions uint64_t ri_child_elapsed_abstime; 282*f6217f89SApple OSS Distributions uint64_t ri_diskio_bytesread; 283*f6217f89SApple OSS Distributions uint64_t ri_diskio_byteswritten; 284*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_default; 285*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_maintenance; 286*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_background; 287*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_utility; 288*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_legacy; 289*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_user_initiated; 290*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_user_interactive; 291*f6217f89SApple OSS Distributions uint64_t ri_billed_system_time; 292*f6217f89SApple OSS Distributions uint64_t ri_serviced_system_time; 293*f6217f89SApple OSS Distributions }; 294*f6217f89SApple OSS Distributions 295*f6217f89SApple OSS Distributions struct rusage_info_v4 { 296*f6217f89SApple OSS Distributions uint8_t ri_uuid[16]; 297*f6217f89SApple OSS Distributions uint64_t ri_user_time; 298*f6217f89SApple OSS Distributions uint64_t ri_system_time; 299*f6217f89SApple OSS Distributions uint64_t ri_pkg_idle_wkups; 300*f6217f89SApple OSS Distributions uint64_t ri_interrupt_wkups; 301*f6217f89SApple OSS Distributions uint64_t ri_pageins; 302*f6217f89SApple OSS Distributions uint64_t ri_wired_size; 303*f6217f89SApple OSS Distributions uint64_t ri_resident_size; 304*f6217f89SApple OSS Distributions uint64_t ri_phys_footprint; 305*f6217f89SApple OSS Distributions uint64_t ri_proc_start_abstime; 306*f6217f89SApple OSS Distributions uint64_t ri_proc_exit_abstime; 307*f6217f89SApple OSS Distributions uint64_t ri_child_user_time; 308*f6217f89SApple OSS Distributions uint64_t ri_child_system_time; 309*f6217f89SApple OSS Distributions uint64_t ri_child_pkg_idle_wkups; 310*f6217f89SApple OSS Distributions uint64_t ri_child_interrupt_wkups; 311*f6217f89SApple OSS Distributions uint64_t ri_child_pageins; 312*f6217f89SApple OSS Distributions uint64_t ri_child_elapsed_abstime; 313*f6217f89SApple OSS Distributions uint64_t ri_diskio_bytesread; 314*f6217f89SApple OSS Distributions uint64_t ri_diskio_byteswritten; 315*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_default; 316*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_maintenance; 317*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_background; 318*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_utility; 319*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_legacy; 320*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_user_initiated; 321*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_user_interactive; 322*f6217f89SApple OSS Distributions uint64_t ri_billed_system_time; 323*f6217f89SApple OSS Distributions uint64_t ri_serviced_system_time; 324*f6217f89SApple OSS Distributions uint64_t ri_logical_writes; 325*f6217f89SApple OSS Distributions uint64_t ri_lifetime_max_phys_footprint; 326*f6217f89SApple OSS Distributions uint64_t ri_instructions; 327*f6217f89SApple OSS Distributions uint64_t ri_cycles; 328*f6217f89SApple OSS Distributions uint64_t ri_billed_energy; 329*f6217f89SApple OSS Distributions uint64_t ri_serviced_energy; 330*f6217f89SApple OSS Distributions uint64_t ri_interval_max_phys_footprint; 331*f6217f89SApple OSS Distributions uint64_t ri_runnable_time; 332*f6217f89SApple OSS Distributions }; 333*f6217f89SApple OSS Distributions 334*f6217f89SApple OSS Distributions struct rusage_info_v5 { 335*f6217f89SApple OSS Distributions uint8_t ri_uuid[16]; 336*f6217f89SApple OSS Distributions uint64_t ri_user_time; 337*f6217f89SApple OSS Distributions uint64_t ri_system_time; 338*f6217f89SApple OSS Distributions uint64_t ri_pkg_idle_wkups; 339*f6217f89SApple OSS Distributions uint64_t ri_interrupt_wkups; 340*f6217f89SApple OSS Distributions uint64_t ri_pageins; 341*f6217f89SApple OSS Distributions uint64_t ri_wired_size; 342*f6217f89SApple OSS Distributions uint64_t ri_resident_size; 343*f6217f89SApple OSS Distributions uint64_t ri_phys_footprint; 344*f6217f89SApple OSS Distributions uint64_t ri_proc_start_abstime; 345*f6217f89SApple OSS Distributions uint64_t ri_proc_exit_abstime; 346*f6217f89SApple OSS Distributions uint64_t ri_child_user_time; 347*f6217f89SApple OSS Distributions uint64_t ri_child_system_time; 348*f6217f89SApple OSS Distributions uint64_t ri_child_pkg_idle_wkups; 349*f6217f89SApple OSS Distributions uint64_t ri_child_interrupt_wkups; 350*f6217f89SApple OSS Distributions uint64_t ri_child_pageins; 351*f6217f89SApple OSS Distributions uint64_t ri_child_elapsed_abstime; 352*f6217f89SApple OSS Distributions uint64_t ri_diskio_bytesread; 353*f6217f89SApple OSS Distributions uint64_t ri_diskio_byteswritten; 354*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_default; 355*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_maintenance; 356*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_background; 357*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_utility; 358*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_legacy; 359*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_user_initiated; 360*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_user_interactive; 361*f6217f89SApple OSS Distributions uint64_t ri_billed_system_time; 362*f6217f89SApple OSS Distributions uint64_t ri_serviced_system_time; 363*f6217f89SApple OSS Distributions uint64_t ri_logical_writes; 364*f6217f89SApple OSS Distributions uint64_t ri_lifetime_max_phys_footprint; 365*f6217f89SApple OSS Distributions uint64_t ri_instructions; 366*f6217f89SApple OSS Distributions uint64_t ri_cycles; 367*f6217f89SApple OSS Distributions uint64_t ri_billed_energy; 368*f6217f89SApple OSS Distributions uint64_t ri_serviced_energy; 369*f6217f89SApple OSS Distributions uint64_t ri_interval_max_phys_footprint; 370*f6217f89SApple OSS Distributions uint64_t ri_runnable_time; 371*f6217f89SApple OSS Distributions uint64_t ri_flags; 372*f6217f89SApple OSS Distributions }; 373*f6217f89SApple OSS Distributions 374*f6217f89SApple OSS Distributions struct rusage_info_v6 { 375*f6217f89SApple OSS Distributions uint8_t ri_uuid[16]; 376*f6217f89SApple OSS Distributions uint64_t ri_user_time; 377*f6217f89SApple OSS Distributions uint64_t ri_system_time; 378*f6217f89SApple OSS Distributions uint64_t ri_pkg_idle_wkups; 379*f6217f89SApple OSS Distributions uint64_t ri_interrupt_wkups; 380*f6217f89SApple OSS Distributions uint64_t ri_pageins; 381*f6217f89SApple OSS Distributions uint64_t ri_wired_size; 382*f6217f89SApple OSS Distributions uint64_t ri_resident_size; 383*f6217f89SApple OSS Distributions uint64_t ri_phys_footprint; 384*f6217f89SApple OSS Distributions uint64_t ri_proc_start_abstime; 385*f6217f89SApple OSS Distributions uint64_t ri_proc_exit_abstime; 386*f6217f89SApple OSS Distributions uint64_t ri_child_user_time; 387*f6217f89SApple OSS Distributions uint64_t ri_child_system_time; 388*f6217f89SApple OSS Distributions uint64_t ri_child_pkg_idle_wkups; 389*f6217f89SApple OSS Distributions uint64_t ri_child_interrupt_wkups; 390*f6217f89SApple OSS Distributions uint64_t ri_child_pageins; 391*f6217f89SApple OSS Distributions uint64_t ri_child_elapsed_abstime; 392*f6217f89SApple OSS Distributions uint64_t ri_diskio_bytesread; 393*f6217f89SApple OSS Distributions uint64_t ri_diskio_byteswritten; 394*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_default; 395*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_maintenance; 396*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_background; 397*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_utility; 398*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_legacy; 399*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_user_initiated; 400*f6217f89SApple OSS Distributions uint64_t ri_cpu_time_qos_user_interactive; 401*f6217f89SApple OSS Distributions uint64_t ri_billed_system_time; 402*f6217f89SApple OSS Distributions uint64_t ri_serviced_system_time; 403*f6217f89SApple OSS Distributions uint64_t ri_logical_writes; 404*f6217f89SApple OSS Distributions uint64_t ri_lifetime_max_phys_footprint; 405*f6217f89SApple OSS Distributions uint64_t ri_instructions; 406*f6217f89SApple OSS Distributions uint64_t ri_cycles; 407*f6217f89SApple OSS Distributions uint64_t ri_billed_energy; 408*f6217f89SApple OSS Distributions uint64_t ri_serviced_energy; 409*f6217f89SApple OSS Distributions uint64_t ri_interval_max_phys_footprint; 410*f6217f89SApple OSS Distributions uint64_t ri_runnable_time; 411*f6217f89SApple OSS Distributions uint64_t ri_flags; 412*f6217f89SApple OSS Distributions uint64_t ri_user_ptime; 413*f6217f89SApple OSS Distributions uint64_t ri_system_ptime; 414*f6217f89SApple OSS Distributions uint64_t ri_pinstructions; 415*f6217f89SApple OSS Distributions uint64_t ri_pcycles; 416*f6217f89SApple OSS Distributions uint64_t ri_energy_nj; 417*f6217f89SApple OSS Distributions uint64_t ri_penergy_nj; 418*f6217f89SApple OSS Distributions uint64_t ri_secure_time_in_system; 419*f6217f89SApple OSS Distributions uint64_t ri_secure_ptime_in_system; 420*f6217f89SApple OSS Distributions uint64_t ri_neural_footprint; 421*f6217f89SApple OSS Distributions uint64_t ri_lifetime_max_neural_footprint; 422*f6217f89SApple OSS Distributions uint64_t ri_interval_max_neural_footprint; 423*f6217f89SApple OSS Distributions uint64_t ri_reserved[9]; 424*f6217f89SApple OSS Distributions }; 425*f6217f89SApple OSS Distributions 426*f6217f89SApple OSS Distributions typedef struct rusage_info_v6 rusage_info_current; 427*f6217f89SApple OSS Distributions 428*f6217f89SApple OSS Distributions #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 429*f6217f89SApple OSS Distributions 430*f6217f89SApple OSS Distributions #ifdef KERNEL 431*f6217f89SApple OSS Distributions 432*f6217f89SApple OSS Distributions struct rusage_superset { 433*f6217f89SApple OSS Distributions struct rusage ru; 434*f6217f89SApple OSS Distributions rusage_info_current ri; 435*f6217f89SApple OSS Distributions }; 436*f6217f89SApple OSS Distributions 437*f6217f89SApple OSS Distributions struct rusage_info_child { 438*f6217f89SApple OSS Distributions uint64_t ri_child_user_time; 439*f6217f89SApple OSS Distributions uint64_t ri_child_system_time; 440*f6217f89SApple OSS Distributions uint64_t ri_child_pkg_idle_wkups; 441*f6217f89SApple OSS Distributions uint64_t ri_child_interrupt_wkups; 442*f6217f89SApple OSS Distributions uint64_t ri_child_pageins; 443*f6217f89SApple OSS Distributions uint64_t ri_child_elapsed_abstime; 444*f6217f89SApple OSS Distributions }; 445*f6217f89SApple OSS Distributions 446*f6217f89SApple OSS Distributions struct user64_rusage { 447*f6217f89SApple OSS Distributions struct user64_timeval ru_utime; /* user time used */ 448*f6217f89SApple OSS Distributions struct user64_timeval ru_stime; /* system time used */ 449*f6217f89SApple OSS Distributions user64_long_t ru_maxrss; /* max resident set size */ 450*f6217f89SApple OSS Distributions user64_long_t ru_ixrss; /* integral shared memory size */ 451*f6217f89SApple OSS Distributions user64_long_t ru_idrss; /* integral unshared data " */ 452*f6217f89SApple OSS Distributions user64_long_t ru_isrss; /* integral unshared stack " */ 453*f6217f89SApple OSS Distributions user64_long_t ru_minflt; /* page reclaims */ 454*f6217f89SApple OSS Distributions user64_long_t ru_majflt; /* page faults */ 455*f6217f89SApple OSS Distributions user64_long_t ru_nswap; /* swaps */ 456*f6217f89SApple OSS Distributions user64_long_t ru_inblock; /* block input operations */ 457*f6217f89SApple OSS Distributions user64_long_t ru_oublock; /* block output operations */ 458*f6217f89SApple OSS Distributions user64_long_t ru_msgsnd; /* messages sent */ 459*f6217f89SApple OSS Distributions user64_long_t ru_msgrcv; /* messages received */ 460*f6217f89SApple OSS Distributions user64_long_t ru_nsignals; /* signals received */ 461*f6217f89SApple OSS Distributions user64_long_t ru_nvcsw; /* voluntary context switches */ 462*f6217f89SApple OSS Distributions user64_long_t ru_nivcsw; /* involuntary " */ 463*f6217f89SApple OSS Distributions }; 464*f6217f89SApple OSS Distributions 465*f6217f89SApple OSS Distributions struct user32_rusage { 466*f6217f89SApple OSS Distributions struct user32_timeval ru_utime; /* user time used */ 467*f6217f89SApple OSS Distributions struct user32_timeval ru_stime; /* system time used */ 468*f6217f89SApple OSS Distributions user32_long_t ru_maxrss; /* max resident set size */ 469*f6217f89SApple OSS Distributions user32_long_t ru_ixrss; /* integral shared memory size */ 470*f6217f89SApple OSS Distributions user32_long_t ru_idrss; /* integral unshared data " */ 471*f6217f89SApple OSS Distributions user32_long_t ru_isrss; /* integral unshared stack " */ 472*f6217f89SApple OSS Distributions user32_long_t ru_minflt; /* page reclaims */ 473*f6217f89SApple OSS Distributions user32_long_t ru_majflt; /* page faults */ 474*f6217f89SApple OSS Distributions user32_long_t ru_nswap; /* swaps */ 475*f6217f89SApple OSS Distributions user32_long_t ru_inblock; /* block input operations */ 476*f6217f89SApple OSS Distributions user32_long_t ru_oublock; /* block output operations */ 477*f6217f89SApple OSS Distributions user32_long_t ru_msgsnd; /* messages sent */ 478*f6217f89SApple OSS Distributions user32_long_t ru_msgrcv; /* messages received */ 479*f6217f89SApple OSS Distributions user32_long_t ru_nsignals; /* signals received */ 480*f6217f89SApple OSS Distributions user32_long_t ru_nvcsw; /* voluntary context switches */ 481*f6217f89SApple OSS Distributions user32_long_t ru_nivcsw; /* involuntary " */ 482*f6217f89SApple OSS Distributions }; 483*f6217f89SApple OSS Distributions 484*f6217f89SApple OSS Distributions #endif /* KERNEL */ 485*f6217f89SApple OSS Distributions 486*f6217f89SApple OSS Distributions 487*f6217f89SApple OSS Distributions /***** 488*f6217f89SApple OSS Distributions * RESOURCE LIMITS 489*f6217f89SApple OSS Distributions */ 490*f6217f89SApple OSS Distributions 491*f6217f89SApple OSS Distributions /* 492*f6217f89SApple OSS Distributions * Symbolic constants for resource limits; since all limits are representable 493*f6217f89SApple OSS Distributions * as a type rlim_t, we are permitted to define RLIM_SAVED_* in terms of 494*f6217f89SApple OSS Distributions * RLIM_INFINITY. 495*f6217f89SApple OSS Distributions */ 496*f6217f89SApple OSS Distributions #define RLIM_INFINITY (((__uint64_t)1 << 63) - 1) /* no limit */ 497*f6217f89SApple OSS Distributions #define RLIM_SAVED_MAX RLIM_INFINITY /* Unrepresentable hard limit */ 498*f6217f89SApple OSS Distributions #define RLIM_SAVED_CUR RLIM_INFINITY /* Unrepresentable soft limit */ 499*f6217f89SApple OSS Distributions 500*f6217f89SApple OSS Distributions /* 501*f6217f89SApple OSS Distributions * Possible values of the first parameter to getrlimit()/setrlimit(), to 502*f6217f89SApple OSS Distributions * indicate for which resource the operation is being performed. 503*f6217f89SApple OSS Distributions */ 504*f6217f89SApple OSS Distributions #define RLIMIT_CPU 0 /* cpu time per process */ 505*f6217f89SApple OSS Distributions #define RLIMIT_FSIZE 1 /* file size */ 506*f6217f89SApple OSS Distributions #define RLIMIT_DATA 2 /* data segment size */ 507*f6217f89SApple OSS Distributions #define RLIMIT_STACK 3 /* stack size */ 508*f6217f89SApple OSS Distributions #define RLIMIT_CORE 4 /* core file size */ 509*f6217f89SApple OSS Distributions #define RLIMIT_AS 5 /* address space (resident set size) */ 510*f6217f89SApple OSS Distributions #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL 511*f6217f89SApple OSS Distributions #define RLIMIT_RSS RLIMIT_AS /* source compatibility alias */ 512*f6217f89SApple OSS Distributions #define RLIMIT_MEMLOCK 6 /* locked-in-memory address space */ 513*f6217f89SApple OSS Distributions #define RLIMIT_NPROC 7 /* number of processes */ 514*f6217f89SApple OSS Distributions #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 515*f6217f89SApple OSS Distributions #define RLIMIT_NOFILE 8 /* number of open files */ 516*f6217f89SApple OSS Distributions #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL 517*f6217f89SApple OSS Distributions #define RLIM_NLIMITS 9 /* total number of resource limits */ 518*f6217f89SApple OSS Distributions #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 519*f6217f89SApple OSS Distributions #define _RLIMIT_POSIX_FLAG 0x1000 /* Set bit for strict POSIX */ 520*f6217f89SApple OSS Distributions 521*f6217f89SApple OSS Distributions /* 522*f6217f89SApple OSS Distributions * A structure representing a resource limit. The address of an instance 523*f6217f89SApple OSS Distributions * of this structure is the second parameter to getrlimit()/setrlimit(). 524*f6217f89SApple OSS Distributions */ 525*f6217f89SApple OSS Distributions struct rlimit { 526*f6217f89SApple OSS Distributions rlim_t rlim_cur; /* current (soft) limit */ 527*f6217f89SApple OSS Distributions rlim_t rlim_max; /* maximum value for rlim_cur */ 528*f6217f89SApple OSS Distributions }; 529*f6217f89SApple OSS Distributions 530*f6217f89SApple OSS Distributions #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL 531*f6217f89SApple OSS Distributions /* 532*f6217f89SApple OSS Distributions * proc_rlimit_control() 533*f6217f89SApple OSS Distributions * 534*f6217f89SApple OSS Distributions * Resource limit flavors 535*f6217f89SApple OSS Distributions */ 536*f6217f89SApple OSS Distributions #define RLIMIT_WAKEUPS_MONITOR 0x1 /* Configure the wakeups monitor. */ 537*f6217f89SApple OSS Distributions #define RLIMIT_CPU_USAGE_MONITOR 0x2 /* Configure the CPU usage monitor. */ 538*f6217f89SApple OSS Distributions #define RLIMIT_THREAD_CPULIMITS 0x3 /* Configure a blocking, per-thread, CPU limits. */ 539*f6217f89SApple OSS Distributions #define RLIMIT_FOOTPRINT_INTERVAL 0x4 /* Configure memory footprint interval tracking */ 540*f6217f89SApple OSS Distributions 541*f6217f89SApple OSS Distributions /* 542*f6217f89SApple OSS Distributions * Flags for wakeups monitor control. 543*f6217f89SApple OSS Distributions */ 544*f6217f89SApple OSS Distributions #define WAKEMON_ENABLE 0x01 545*f6217f89SApple OSS Distributions #define WAKEMON_DISABLE 0x02 546*f6217f89SApple OSS Distributions #define WAKEMON_GET_PARAMS 0x04 547*f6217f89SApple OSS Distributions #define WAKEMON_SET_DEFAULTS 0x08 548*f6217f89SApple OSS Distributions #define WAKEMON_MAKE_FATAL 0x10 /* Configure the task so that violations are fatal. */ 549*f6217f89SApple OSS Distributions 550*f6217f89SApple OSS Distributions /* 551*f6217f89SApple OSS Distributions * Flags for CPU usage monitor control. 552*f6217f89SApple OSS Distributions */ 553*f6217f89SApple OSS Distributions #define CPUMON_MAKE_FATAL 0x1000 554*f6217f89SApple OSS Distributions 555*f6217f89SApple OSS Distributions /* 556*f6217f89SApple OSS Distributions * Flags for memory footprint interval tracking. 557*f6217f89SApple OSS Distributions */ 558*f6217f89SApple OSS Distributions #define FOOTPRINT_INTERVAL_RESET 0x1 /* Reset the footprint interval counter to zero */ 559*f6217f89SApple OSS Distributions 560*f6217f89SApple OSS Distributions struct proc_rlimit_control_wakeupmon { 561*f6217f89SApple OSS Distributions uint32_t wm_flags; 562*f6217f89SApple OSS Distributions int32_t wm_rate; 563*f6217f89SApple OSS Distributions }; 564*f6217f89SApple OSS Distributions 565*f6217f89SApple OSS Distributions /* Additional private I/O policies are in resource_private.h */ 566*f6217f89SApple OSS Distributions 567*f6217f89SApple OSS Distributions /* I/O type */ 568*f6217f89SApple OSS Distributions #define IOPOL_TYPE_DISK 0 569*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_ATIME_UPDATES 2 570*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES 3 571*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME 4 572*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_TRIGGER_RESOLVE 5 573*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION 6 574*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_IGNORE_PERMISSIONS 7 575*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE 8 576*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES 9 577*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY 10 578*f6217f89SApple OSS Distributions #define IOPOL_TYPE_VFS_ENTITLED_RESERVE_ACCESS 14 579*f6217f89SApple OSS Distributions 580*f6217f89SApple OSS Distributions /* scope */ 581*f6217f89SApple OSS Distributions #define IOPOL_SCOPE_PROCESS 0 582*f6217f89SApple OSS Distributions #define IOPOL_SCOPE_THREAD 1 583*f6217f89SApple OSS Distributions #define IOPOL_SCOPE_DARWIN_BG 2 584*f6217f89SApple OSS Distributions 585*f6217f89SApple OSS Distributions /* I/O Priority */ 586*f6217f89SApple OSS Distributions #define IOPOL_DEFAULT 0 587*f6217f89SApple OSS Distributions #define IOPOL_IMPORTANT 1 588*f6217f89SApple OSS Distributions #define IOPOL_PASSIVE 2 589*f6217f89SApple OSS Distributions #define IOPOL_THROTTLE 3 590*f6217f89SApple OSS Distributions #define IOPOL_UTILITY 4 591*f6217f89SApple OSS Distributions #define IOPOL_STANDARD 5 592*f6217f89SApple OSS Distributions 593*f6217f89SApple OSS Distributions /* compatibility with older names */ 594*f6217f89SApple OSS Distributions #define IOPOL_APPLICATION IOPOL_STANDARD 595*f6217f89SApple OSS Distributions #define IOPOL_NORMAL IOPOL_IMPORTANT 596*f6217f89SApple OSS Distributions 597*f6217f89SApple OSS Distributions #define IOPOL_ATIME_UPDATES_DEFAULT 0 598*f6217f89SApple OSS Distributions #define IOPOL_ATIME_UPDATES_OFF 1 599*f6217f89SApple OSS Distributions 600*f6217f89SApple OSS Distributions #define IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT 0 601*f6217f89SApple OSS Distributions #define IOPOL_MATERIALIZE_DATALESS_FILES_OFF 1 602*f6217f89SApple OSS Distributions #define IOPOL_MATERIALIZE_DATALESS_FILES_ON 2 603*f6217f89SApple OSS Distributions 604*f6217f89SApple OSS Distributions #define IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT 0 605*f6217f89SApple OSS Distributions #define IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME 1 606*f6217f89SApple OSS Distributions 607*f6217f89SApple OSS Distributions #define IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT 0 608*f6217f89SApple OSS Distributions #define IOPOL_VFS_TRIGGER_RESOLVE_OFF 1 609*f6217f89SApple OSS Distributions 610*f6217f89SApple OSS Distributions #define IOPOL_VFS_CONTENT_PROTECTION_DEFAULT 0 611*f6217f89SApple OSS Distributions #define IOPOL_VFS_CONTENT_PROTECTION_IGNORE 1 612*f6217f89SApple OSS Distributions 613*f6217f89SApple OSS Distributions #define IOPOL_VFS_IGNORE_PERMISSIONS_OFF 0 614*f6217f89SApple OSS Distributions #define IOPOL_VFS_IGNORE_PERMISSIONS_ON 1 615*f6217f89SApple OSS Distributions 616*f6217f89SApple OSS Distributions #define IOPOL_VFS_SKIP_MTIME_UPDATE_OFF 0 617*f6217f89SApple OSS Distributions #define IOPOL_VFS_SKIP_MTIME_UPDATE_ON 1 618*f6217f89SApple OSS Distributions #define IOPOL_VFS_SKIP_MTIME_UPDATE_IGNORE 2 619*f6217f89SApple OSS Distributions 620*f6217f89SApple OSS Distributions #define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF 0 621*f6217f89SApple OSS Distributions #define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON 1 622*f6217f89SApple OSS Distributions 623*f6217f89SApple OSS Distributions #define IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT 0 624*f6217f89SApple OSS Distributions #define IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON 1 625*f6217f89SApple OSS Distributions 626*f6217f89SApple OSS Distributions #define IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_DEFAULT 0 627*f6217f89SApple OSS Distributions #define IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_ON 1 628*f6217f89SApple OSS Distributions 629*f6217f89SApple OSS Distributions #define IOPOL_VFS_ENTITLED_RESERVE_ACCESS_OFF 0 630*f6217f89SApple OSS Distributions #define IOPOL_VFS_ENTITLED_RESERVE_ACCESS_ON 1 631*f6217f89SApple OSS Distributions 632*f6217f89SApple OSS Distributions #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 633*f6217f89SApple OSS Distributions 634*f6217f89SApple OSS Distributions #ifndef KERNEL 635*f6217f89SApple OSS Distributions 636*f6217f89SApple OSS Distributions __BEGIN_DECLS 637*f6217f89SApple OSS Distributions int getpriority(int, id_t); 638*f6217f89SApple OSS Distributions #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL 639*f6217f89SApple OSS Distributions int getiopolicy_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); 640*f6217f89SApple OSS Distributions #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 641*f6217f89SApple OSS Distributions int getrlimit(int, struct rlimit *) __DARWIN_ALIAS(getrlimit); 642*f6217f89SApple OSS Distributions int getrusage(int, struct rusage *); 643*f6217f89SApple OSS Distributions int setpriority(int, id_t, int); 644*f6217f89SApple OSS Distributions #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL 645*f6217f89SApple OSS Distributions int setiopolicy_np(int, int, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); 646*f6217f89SApple OSS Distributions #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ 647*f6217f89SApple OSS Distributions int setrlimit(int, const struct rlimit *) __DARWIN_ALIAS(setrlimit); 648*f6217f89SApple OSS Distributions __END_DECLS 649*f6217f89SApple OSS Distributions 650*f6217f89SApple OSS Distributions #endif /* !KERNEL */ 651*f6217f89SApple OSS Distributions 652*f6217f89SApple OSS Distributions #ifdef PRIVATE 653*f6217f89SApple OSS Distributions #include <sys/resource_private.h> 654*f6217f89SApple OSS Distributions #endif 655*f6217f89SApple OSS Distributions 656*f6217f89SApple OSS Distributions #endif /* !_SYS_RESOURCE_H_ */ 657