|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ ! 23: /* ! 24: * Copyright (c) 1982, 1986, 1993 ! 25: * The Regents of the University of California. All rights reserved. ! 26: * ! 27: * Redistribution and use in source and binary forms, with or without ! 28: * modification, are permitted provided that the following conditions ! 29: * are met: ! 30: * 1. Redistributions of source code must retain the above copyright ! 31: * notice, this list of conditions and the following disclaimer. ! 32: * 2. Redistributions in binary form must reproduce the above copyright ! 33: * notice, this list of conditions and the following disclaimer in the ! 34: * documentation and/or other materials provided with the distribution. ! 35: * 3. All advertising materials mentioning features or use of this software ! 36: * must display the following acknowledgement: ! 37: * This product includes software developed by the University of ! 38: * California, Berkeley and its contributors. ! 39: * 4. Neither the name of the University nor the names of its contributors ! 40: * may be used to endorse or promote products derived from this software ! 41: * without specific prior written permission. ! 42: * ! 43: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 44: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 45: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 46: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 47: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 48: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 49: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 50: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 51: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 52: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 53: * SUCH DAMAGE. ! 54: * ! 55: * @(#)resource.h 8.2 (Berkeley) 1/4/94 ! 56: */ ! 57: ! 58: #ifndef _SYS_RESOURCE_H_ ! 59: #define _SYS_RESOURCE_H_ ! 60: ! 61: /* ! 62: * Process priority specifications to get/setpriority. ! 63: */ ! 64: #define PRIO_MIN -20 ! 65: #define PRIO_MAX 20 ! 66: ! 67: #define PRIO_PROCESS 0 ! 68: #define PRIO_PGRP 1 ! 69: #define PRIO_USER 2 ! 70: ! 71: /* ! 72: * Resource utilization information. ! 73: */ ! 74: ! 75: #define RUSAGE_SELF 0 ! 76: #define RUSAGE_CHILDREN -1 ! 77: ! 78: struct rusage { ! 79: struct timeval ru_utime; /* user time used */ ! 80: struct timeval ru_stime; /* system time used */ ! 81: long ru_maxrss; /* max resident set size */ ! 82: #define ru_first ru_ixrss ! 83: long ru_ixrss; /* integral shared memory size */ ! 84: long ru_idrss; /* integral unshared data " */ ! 85: long ru_isrss; /* integral unshared stack " */ ! 86: long ru_minflt; /* page reclaims */ ! 87: long ru_majflt; /* page faults */ ! 88: long ru_nswap; /* swaps */ ! 89: long ru_inblock; /* block input operations */ ! 90: long ru_oublock; /* block output operations */ ! 91: long ru_msgsnd; /* messages sent */ ! 92: long ru_msgrcv; /* messages received */ ! 93: long ru_nsignals; /* signals received */ ! 94: long ru_nvcsw; /* voluntary context switches */ ! 95: long ru_nivcsw; /* involuntary " */ ! 96: #define ru_last ru_nivcsw ! 97: }; ! 98: ! 99: /* ! 100: * Resource limits ! 101: */ ! 102: #define RLIMIT_CPU 0 /* cpu time in milliseconds */ ! 103: #define RLIMIT_FSIZE 1 /* maximum file size */ ! 104: #define RLIMIT_DATA 2 /* data size */ ! 105: #define RLIMIT_STACK 3 /* stack size */ ! 106: #define RLIMIT_CORE 4 /* core file size */ ! 107: #define RLIMIT_RSS 5 /* resident set size */ ! 108: #define RLIMIT_MEMLOCK 6 /* locked-in-memory address space */ ! 109: #define RLIMIT_NPROC 7 /* number of processes */ ! 110: #define RLIMIT_NOFILE 8 /* number of open files */ ! 111: ! 112: #define RLIM_NLIMITS 9 /* number of resource limits */ ! 113: ! 114: #define RLIM_INFINITY (((u_quad_t)1 << 63) - 1) ! 115: ! 116: struct orlimit { ! 117: int32_t rlim_cur; /* current (soft) limit */ ! 118: int32_t rlim_max; /* maximum value for rlim_cur */ ! 119: }; ! 120: ! 121: struct rlimit { ! 122: rlim_t rlim_cur; /* current (soft) limit */ ! 123: rlim_t rlim_max; /* maximum value for rlim_cur */ ! 124: }; ! 125: ! 126: /* Load average structure. */ ! 127: struct loadavg { ! 128: fixpt_t ldavg[3]; ! 129: long fscale; ! 130: }; ! 131: ! 132: #ifdef KERNEL ! 133: extern struct loadavg averunnable; ! 134: #define LSCALE 1000 /* scaling for "fixed point" arithmetic */ ! 135: #else ! 136: #include <sys/cdefs.h> ! 137: ! 138: __BEGIN_DECLS ! 139: int getpriority __P((int, int)); ! 140: int getrlimit __P((int, struct rlimit *)); ! 141: int getrusage __P((int, struct rusage *)); ! 142: int setpriority __P((int, int, int)); ! 143: int setrlimit __P((int, const struct rlimit *)); ! 144: __END_DECLS ! 145: ! 146: #endif /* KERNEL */ ! 147: #endif /* !_SYS_RESOURCE_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.