OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [posix/] [libposix/] [include/] [posix/] [bits/] [resource.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 drasko
/* 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.  */
33
enum __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
127
typedef __rlim_t rlim_t;
128
#else
129
typedef __rlim64_t rlim_t;
130
#endif
131
#ifdef __USE_LARGEFILE64
132
typedef __rlim64_t rlim64_t;
133
#endif
134
 
135
struct 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
144
struct 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?  */
154
enum __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.  */
169
struct 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.  */
217
enum __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
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.