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