source: svn/trunk/newcon3bcm2_21bu/toolchain/mips-linux-uclibc/include/bits/resource.h @ 52

Last change on this file since 52 was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 6.2 KB
Line 
1/* Bit values & structures for resource limits.  Linux/MIPS version.
2   Copyright (C) 1994,1996,1997,1998,1999,2000 Free Software Foundation, Inc.
3   This file is part of the GNU C Library.
4
5   The GNU C Library is free software; you can redistribute it and/or
6   modify it under the terms of the GNU Lesser General Public
7   License as published by the Free Software Foundation; either
8   version 2.1 of the License, or (at your option) any later version.
9
10   The GNU C Library is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   Lesser General Public License for more details.
14
15   You should have received a copy of the GNU Lesser General Public
16   License along with the GNU C Library; if not, write to the Free
17   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18   02111-1307 USA.  */
19
20#ifndef _SYS_RESOURCE_H
21# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
22#endif
23
24#include <bits/types.h>
25
26/* Transmute defines to enumerations.  The macro re-definitions are
27   necessary because some programs want to test for operating system
28   features with #ifdef RUSAGE_SELF.  In ISO C the reflexive
29   definition is a no-op.  */
30
31/* Kinds of resource limit.  */
32enum __rlimit_resource
33{
34  /* Per-process CPU limit, in seconds.  */
35  RLIMIT_CPU = 0,
36#define RLIMIT_CPU RLIMIT_CPU
37
38  /* Largest file that can be created, in bytes.  */
39  RLIMIT_FSIZE = 1,
40#define RLIMIT_FSIZE RLIMIT_FSIZE
41
42  /* Maximum size of data segment, in bytes.  */
43  RLIMIT_DATA = 2,
44#define RLIMIT_DATA RLIMIT_DATA
45
46  /* Maximum size of stack segment, in bytes.  */
47  RLIMIT_STACK = 3,
48#define RLIMIT_STACK RLIMIT_STACK
49
50  /* Largest core file that can be created, in bytes.  */
51  RLIMIT_CORE = 4,
52#define RLIMIT_CORE RLIMIT_CORE
53
54  /* Largest resident set size, in bytes.
55     This affects swapping; processes that are exceeding their
56     resident set size will be more likely to have physical memory
57     taken from them.  */
58  RLIMIT_RSS = 7,
59#define RLIMIT_RSS RLIMIT_RSS
60
61  /* Number of open files.  */
62  RLIMIT_NOFILE = 5,
63  RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same.  */
64#define RLIMIT_NOFILE RLIMIT_NOFILE
65#define RLIMIT_OFILE RLIMIT_OFILE
66
67  /* Address space limit (?) */
68  RLIMIT_AS = 6,
69#define RLIMIT_AS RLIMIT_AS
70
71  /* Number of processes.  */
72  RLIMIT_NPROC = 8,
73#define RLIMIT_NPROC RLIMIT_NPROC
74
75  /* Locked-in-memory address space.  */
76  RLIMIT_MEMLOCK = 9,
77#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
78
79  /* Maximum number of file locks.  */
80  RLIMIT_LOCKS = 10,
81#define RLIMIT_LOCKS RLIMIT_LOCKS
82
83  RLIM_NLIMITS = 11
84#define RLIMIT_NLIMITS RLIMIT_NLIMITS
85#define RLIM_NLIMITS RLIM_NLIMITS
86};
87
88/* Value to indicate that there is no limit.  */
89#ifndef __USE_FILE_OFFSET64
90# define RLIM_INFINITY ((long int)(~0UL >> 1))
91#else
92# define RLIM_INFINITY 0x7fffffffffffffffLL
93#endif
94
95#ifdef __USE_LARGEFILE64
96# define RLIM64_INFINITY 0x7fffffffffffffffLL
97#endif
98
99/* We can represent all limits.  */
100#define RLIM_SAVED_MAX  RLIM_INFINITY
101#define RLIM_SAVED_CUR  RLIM_INFINITY
102
103
104/* Type for resource quantity measurement.  */
105#ifndef __USE_FILE_OFFSET64
106typedef __rlim_t rlim_t;
107#else
108typedef __rlim64_t rlim_t;
109#endif
110#ifdef __USE_LARGEFILE64
111typedef __rlim64_t rlim64_t;
112#endif
113
114struct rlimit
115  {
116    /* The current (soft) limit.  */
117    rlim_t rlim_cur;
118    /* The hard limit.  */
119    rlim_t rlim_max;
120  };
121
122#ifdef __USE_LARGEFILE64
123struct rlimit64
124  {
125    /* The current (soft) limit.  */
126    rlim64_t rlim_cur;
127    /* The hard limit.  */
128    rlim64_t rlim_max;
129 };
130#endif
131
132/* Whose usage statistics do you want?  */
133enum __rusage_who
134{
135  /* The calling process.  */
136  RUSAGE_SELF = 0,
137#define RUSAGE_SELF RUSAGE_SELF
138
139  /* All of its terminated child processes.  */
140  RUSAGE_CHILDREN = -1,
141#define RUSAGE_CHILDREN RUSAGE_CHILDREN
142
143  /* Both.  */
144  RUSAGE_BOTH = -2
145#define RUSAGE_BOTH RUSAGE_BOTH
146};
147
148#define __need_timeval
149#include <bits/time.h>          /* For `struct timeval'.  */
150
151/* Structure which says how much of each resource has been used.  */
152struct rusage
153  {
154    /* Total amount of user time used.  */
155    struct timeval ru_utime;
156    /* Total amount of system time used.  */
157    struct timeval ru_stime;
158    /* Maximum resident set size (in kilobytes).  */
159    long int ru_maxrss;
160    /* Amount of sharing of text segment memory
161       with other processes (kilobyte-seconds).  */
162    long int ru_ixrss;
163    /* Amount of data segment memory used (kilobyte-seconds).  */
164    long int ru_idrss;
165    /* Amount of stack memory used (kilobyte-seconds).  */
166    long int ru_isrss;
167    /* Number of soft page faults (i.e. those serviced by reclaiming
168       a page from the list of pages awaiting reallocation.  */
169    long int ru_minflt;
170    /* Number of hard page faults (i.e. those that required I/O).  */
171    long int ru_majflt;
172    /* Number of times a process was swapped out of physical memory.  */
173    long int ru_nswap;
174    /* Number of input operations via the file system.  Note: This
175       and `ru_oublock' do not include operations with the cache.  */
176    long int ru_inblock;
177    /* Number of output operations via the file system.  */
178    long int ru_oublock;
179    /* Number of IPC messages sent.  */
180    long int ru_msgsnd;
181    /* Number of IPC messages received.  */
182    long int ru_msgrcv;
183    /* Number of signals delivered.  */
184    long int ru_nsignals;
185    /* Number of voluntary context switches, i.e. because the process
186       gave up the process before it had to (usually to wait for some
187       resource to be available).  */
188    long int ru_nvcsw;
189    /* Number of involuntary context switches, i.e. a higher priority process
190       became runnable or the current process used up its time slice.  */
191    long int ru_nivcsw;
192  };
193
194/* Priority limits.  */
195#define PRIO_MIN        -20     /* Minimum priority a process can have.  */
196#define PRIO_MAX        20      /* Maximum priority a process can have.  */
197
198/* The type of the WHICH argument to `getpriority' and `setpriority',
199   indicating what flavor of entity the WHO argument specifies.  */
200enum __priority_which
201{
202  PRIO_PROCESS = 0,             /* WHO is a process ID.  */
203#define PRIO_PROCESS PRIO_PROCESS
204  PRIO_PGRP = 1,                /* WHO is a process group ID.  */
205#define PRIO_PGRP PRIO_PGRP
206  PRIO_USER = 2                 /* WHO is a user ID.  */
207#define PRIO_USER PRIO_USER
208};
Note: See TracBrowser for help on using the repository browser.