t2ex/bsd_source/lib/libc/src_bsd/include/sys/resource.h | bare source | permlink (0.02 seconds) |
1: /* $OpenBSD: resource.h,v 1.9 2010/11/02 10:51:06 kettenis Exp $ */ 2: /* $NetBSD: resource.h,v 1.14 1996/02/09 18:25:27 christos Exp $ */ 3: 4: /* 5: * Copyright (c) 1982, 1986, 1993 6: * The Regents of the University of California. All rights reserved. 7: * 8: * Redistribution and use in source and binary forms, with or without 9: * modification, are permitted provided that the following conditions 10: * are met: 11: * 1. Redistributions of source code must retain the above copyright 12: * notice, this list of conditions and the following disclaimer. 13: * 2. Redistributions in binary form must reproduce the above copyright 14: * notice, this list of conditions and the following disclaimer in the 15: * documentation and/or other materials provided with the distribution. 16: * 3. Neither the name of the University nor the names of its contributors 17: * may be used to endorse or promote products derived from this software 18: * without specific prior written permission. 19: * 20: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30: * SUCH DAMAGE. 31: * 32: * @(#)resource.h 8.2 (Berkeley) 1/4/94 33: */ 34: 35: #ifndef _SYS_RESOURCE_H_ 36: #define _SYS_RESOURCE_H_ 37: 38: #include <sys/time.h> 39: 40: /* 41: * Process priority specifications to get/setpriority. 42: */ 43: #define PRIO_MIN -20 44: #define PRIO_MAX 20 45: 46: #define PRIO_PROCESS 0 47: #define PRIO_PGRP 1 48: #define PRIO_USER 2 49: 50: /* 51: * Resource utilization information. 52: */ 53: 54: #define RUSAGE_SELF 0 55: #define RUSAGE_CHILDREN -1 56: #define RUSAGE_THREAD 1 57: 58: struct rusage { 59: struct timeval ru_utime; /* user time used */ 60: struct timeval ru_stime; /* system time used */ 61: long ru_maxrss; /* max resident set size */ 62: #define ru_first ru_ixrss 63: long ru_ixrss; /* integral shared text memory size */ 64: long ru_idrss; /* integral unshared data " */ 65: long ru_isrss; /* integral unshared stack " */ 66: long ru_minflt; /* page reclaims */ 67: long ru_majflt; /* page faults */ 68: long ru_nswap; /* swaps */ 69: long ru_inblock; /* block input operations */ 70: long ru_oublock; /* block output operations */ 71: long ru_msgsnd; /* messages sent */ 72: long ru_msgrcv; /* messages received */ 73: long ru_nsignals; /* signals received */ 74: long ru_nvcsw; /* voluntary context switches */ 75: long ru_nivcsw; /* involuntary " */ 76: #define ru_last ru_nivcsw 77: }; 78: 79: /* 80: * Resource limits 81: */ 82: #define RLIMIT_CPU 0 /* cpu time in milliseconds */ 83: #define RLIMIT_FSIZE 1 /* maximum file size */ 84: #define RLIMIT_DATA 2 /* data size */ 85: #define RLIMIT_STACK 3 /* stack size */ 86: #define RLIMIT_CORE 4 /* core file size */ 87: #define RLIMIT_RSS 5 /* resident set size */ 88: #define RLIMIT_MEMLOCK 6 /* locked-in-memory address space */ 89: #define RLIMIT_NPROC 7 /* number of processes */ 90: #define RLIMIT_NOFILE 8 /* number of open files */ 91: 92: #define RLIM_NLIMITS 9 /* number of resource limits */ 93: 94: #define RLIM_INFINITY (((rlim_t)1 << 63) - 1) 95: #define RLIM_SAVED_MAX RLIM_INFINITY 96: #define RLIM_SAVED_CUR RLIM_INFINITY 97: 98: struct orlimit { 99: int32_t rlim_cur; /* current (soft) limit */ 100: int32_t rlim_max; /* maximum value for rlim_cur */ 101: }; 102: 103: struct rlimit { 104: rlim_t rlim_cur; /* current (soft) limit */ 105: rlim_t rlim_max; /* maximum value for rlim_cur */ 106: }; 107: 108: /* Load average structure. */ 109: struct loadavg { 110: fixpt_t ldavg[3]; 111: long fscale; 112: }; 113: 114: #ifdef _KERNEL 115: extern struct loadavg averunnable; 116: struct process; 117: int dosetrlimit(struct proc *, u_int, struct rlimit *); 118: int donice(struct proc *, struct process *, int); 119: 120: #else 121: #include <sys/cdefs.h> 122: 123: __BEGIN_DECLS 124: int getpriority(int, id_t); 125: int getrlimit(int, struct rlimit *); 126: int getrusage(int, struct rusage *); 127: int setpriority(int, id_t, int); 128: int setrlimit(int, const struct rlimit *); 129: __END_DECLS 130: 131: #endif /* _KERNEL */ 132: #endif /* !_SYS_RESOURCE_H_ */