source: rtems-libbsd/rtemsbsd/include/rtems/bsd/sys/resource.h @ e599318

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since e599318 was e599318, checked in by Sebastian Huber <sebastian.huber@…>, on 10/09/13 at 20:52:54

Update files to match FreeBSD layout

Add compatibility with Newlib header files. Some FreeBSD header files
are mapped by the translation script:

o rtems/bsd/sys/_types.h
o rtems/bsd/sys/errno.h
o rtems/bsd/sys/lock.h
o rtems/bsd/sys/param.h
o rtems/bsd/sys/resource.h
o rtems/bsd/sys/time.h
o rtems/bsd/sys/timespec.h
o rtems/bsd/sys/types.h
o rtems/bsd/sys/unistd.h

It is now possible to include <sys/socket.h> directly for example.

Generate one Makefile which builds everything including tests.

  • Property mode set to 100644
File size: 5.1 KB
Line 
1/*-
2 * Copyright (c) 1982, 1986, 1993
3 *      The Regents of the University of California.  All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 *    notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 *    notice, this list of conditions and the following disclaimer in the
12 *    documentation and/or other materials provided with the distribution.
13 * 4. Neither the name of the University nor the names of its contributors
14 *    may be used to endorse or promote products derived from this software
15 *    without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 *      @(#)resource.h  8.4 (Berkeley) 1/9/95
30 * $FreeBSD$
31 */
32
33#ifndef _RTEMS_BSD_SYS_RESOURCE_H_
34#define _RTEMS_BSD_SYS_RESOURCE_H_
35
36#include <sys/cdefs.h>
37#include <sys/_timeval.h>
38#include <rtems/bsd/sys/_types.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 * All fields are only modified by curthread and
54 * no locks are required to read.
55 */
56
57#define RUSAGE_SELF     0
58#define RUSAGE_CHILDREN -1
59#ifndef __rtems__
60#define RUSAGE_THREAD   1
61
62struct rusage {
63        struct timeval ru_utime;        /* user time used */
64        struct timeval ru_stime;        /* system time used */
65        long    ru_maxrss;              /* max resident set size */
66#define ru_first        ru_ixrss
67        long    ru_ixrss;               /* integral shared memory size */
68        long    ru_idrss;               /* integral unshared data " */
69        long    ru_isrss;               /* integral unshared stack " */
70        long    ru_minflt;              /* page reclaims */
71        long    ru_majflt;              /* page faults */
72        long    ru_nswap;               /* swaps */
73        long    ru_inblock;             /* block input operations */
74        long    ru_oublock;             /* block output operations */
75        long    ru_msgsnd;              /* messages sent */
76        long    ru_msgrcv;              /* messages received */
77        long    ru_nsignals;            /* signals received */
78        long    ru_nvcsw;               /* voluntary context switches */
79        long    ru_nivcsw;              /* involuntary " */
80#define ru_last         ru_nivcsw
81};
82#else /* __rtems__ */
83#include <sys/resource.h>
84#endif /* __rtems__ */
85
86/*
87 * Resource limits
88 */
89#define RLIMIT_CPU      0               /* maximum cpu time in seconds */
90#define RLIMIT_FSIZE    1               /* maximum file size */
91#define RLIMIT_DATA     2               /* data size */
92#define RLIMIT_STACK    3               /* stack size */
93#define RLIMIT_CORE     4               /* core file size */
94#define RLIMIT_RSS      5               /* resident set size */
95#define RLIMIT_MEMLOCK  6               /* locked-in-memory address space */
96#define RLIMIT_NPROC    7               /* number of processes */
97#define RLIMIT_NOFILE   8               /* number of open files */
98#define RLIMIT_SBSIZE   9               /* maximum size of all socket buffers */
99#define RLIMIT_VMEM     10              /* virtual process size (inclusive of mmap) */
100#define RLIMIT_AS       RLIMIT_VMEM     /* standard name for RLIMIT_VMEM */
101#define RLIMIT_NPTS     11              /* pseudo-terminals */
102#define RLIMIT_SWAP     12              /* swap used */
103
104#define RLIM_NLIMITS    13              /* number of resource limits */
105
106#define RLIM_INFINITY   ((rlim_t)(((uint64_t)1 << 63) - 1))
107/* XXX Missing: RLIM_SAVED_MAX, RLIM_SAVED_CUR */
108
109
110/*
111 * Resource limit string identifiers
112 */
113
114#ifdef _RLIMIT_IDENT
115static char *rlimit_ident[RLIM_NLIMITS] = {
116        "cpu",
117        "fsize",
118        "data",
119        "stack",
120        "core",
121        "rss",
122        "memlock",
123        "nproc",
124        "nofile",
125        "sbsize",
126        "vmem",
127        "npts",
128        "swap",
129};
130#endif
131
132#ifndef _RLIM_T_DECLARED
133typedef __rlim_t        rlim_t;
134#define _RLIM_T_DECLARED
135#endif
136
137struct rlimit {
138        rlim_t  rlim_cur;               /* current (soft) limit */
139        rlim_t  rlim_max;               /* maximum value for rlim_cur */
140};
141
142#if __BSD_VISIBLE
143
144struct orlimit {
145        __int32_t       rlim_cur;       /* current (soft) limit */
146        __int32_t       rlim_max;       /* maximum value for rlim_cur */
147};
148
149struct loadavg {
150        __fixpt_t       ldavg[3];
151        long            fscale;
152};
153
154#define CP_USER         0
155#define CP_NICE         1
156#define CP_SYS          2
157#define CP_INTR         3
158#define CP_IDLE         4
159#define CPUSTATES       5
160
161#endif  /* __BSD_VISIBLE */
162
163#ifdef _KERNEL
164
165extern struct loadavg averunnable;
166void    read_cpu_time(long *cp_time);   /* Writes array of CPUSTATES */
167
168#else
169
170__BEGIN_DECLS
171/* XXX 2nd arg to [gs]etpriority() should be an id_t */
172int     getpriority(int, int);
173int     getrlimit(int, struct rlimit *);
174int     getrusage(int, struct rusage *);
175int     setpriority(int, int, int);
176int     setrlimit(int, const struct rlimit *);
177__END_DECLS
178
179#endif  /* _KERNEL */
180#endif  /* !_RTEMS_BSD_SYS_RESOURCE_H_ */
Note: See TracBrowser for help on using the repository browser.