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