Ignore:
Timestamp:
Sep 4, 2004, 8:22:38 AM (21 years ago)
Author:
bird
Message:

Joined with the fork() tree from netlabs.cvs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/include/sys/resource.h

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r1453 r1454  
    1 /* sys/resource.h (emx+gcc) */
     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 * 3. All advertising materials mentioning features or use of this software
     14 *    must display the following acknowledgement:
     15 *      This product includes software developed by the University of
     16 *      California, Berkeley and its contributors.
     17 * 4. Neither the name of the University nor the names of its contributors
     18 *    may be used to endorse or promote products derived from this software
     19 *    without specific prior written permission.
     20 *
     21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     24 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     31 * SUCH DAMAGE.
     32 *
     33 *      @(#)resource.h  8.4 (Berkeley) 1/9/95
     34 * $FreeBSD: src/sys/sys/resource.h,v 1.19 2003/02/16 13:30:29 phk Exp $
     35 */
     36
     37/** @file
     38 * FreeBSD 5.1
     39 */
     40
     41#ifndef _SYS_RESOURCE_H_
     42#define _SYS_RESOURCE_H_
     43
     44/*
     45 * Process priority specifications to get/setpriority.
     46 */
     47#define PRIO_MIN        -20
     48#define PRIO_MAX        20
     49#ifdef _KERNEL
     50#define PRIO_TOTAL      (PRIO_MAX - PRIO_MIN)
     51#endif /* _KERNEL */
     52
     53#define PRIO_PROCESS    0
     54#define PRIO_PGRP       1
     55#define PRIO_USER       2
     56
     57/*
     58 * Resource utilization information.
     59 */
     60
     61#define RUSAGE_SELF     0
     62#define RUSAGE_CHILDREN -1
     63
     64struct rusage {
     65        struct timeval ru_utime;        /* user time used */
     66        struct timeval ru_stime;        /* system time used */
     67        long    ru_maxrss;              /* max resident set size */
     68#define ru_first        ru_ixrss
     69        long    ru_ixrss;               /* integral shared memory size */
     70        long    ru_idrss;               /* integral unshared data " */
     71        long    ru_isrss;               /* integral unshared stack " */
     72        long    ru_minflt;              /* page reclaims */
     73        long    ru_majflt;              /* page faults */
     74        long    ru_nswap;               /* swaps */
     75        long    ru_inblock;             /* block input operations */
     76        long    ru_oublock;             /* block output operations */
     77        long    ru_msgsnd;              /* messages sent */
     78        long    ru_msgrcv;              /* messages received */
     79        long    ru_nsignals;            /* signals received */
     80        long    ru_nvcsw;               /* voluntary context switches */
     81        long    ru_nivcsw;              /* involuntary " */
     82#define ru_last         ru_nivcsw
     83};
     84
     85/*
     86 * Resource limits
     87 */
     88#define RLIMIT_CPU      0               /* cpu time in milliseconds */
     89#define RLIMIT_FSIZE    1               /* maximum file size */
     90#define RLIMIT_DATA     2               /* data size */
     91#define RLIMIT_STACK    3               /* stack size */
     92#define RLIMIT_CORE     4               /* core file size */
     93#define RLIMIT_RSS      5               /* resident set size */
     94#define RLIMIT_MEMLOCK  6               /* locked-in-memory address space */
     95#define RLIMIT_NPROC    7               /* number of processes */
     96#define RLIMIT_NOFILE   8               /* number of open files */
     97#define RLIMIT_SBSIZE   9               /* maximum size of all socket buffers */
     98#define RLIMIT_VMEM     10              /* virtual process size (inclusive of mmap) */
     99
     100#define RLIM_NLIMITS    11              /* number of resource limits */
     101
     102#define RLIM_INFINITY   ((rlim_t)(((u_quad_t)1 << 63) - 1))
     103
     104
     105/*
     106 * Resource limit string identifiers
     107 */
     108
     109#ifdef _RLIMIT_IDENT
     110static char *rlimit_ident[] = {
     111        "cpu",
     112        "fsize",
     113        "data",
     114        "stack",
     115        "core",
     116        "rss",
     117        "memlock",
     118        "nproc",
     119        "nofile",
     120        "sbsize",
     121        "vmem",
     122};
     123#endif
     124
     125struct orlimit {
     126        int32_t rlim_cur;               /* current (soft) limit */
     127        int32_t rlim_max;               /* maximum value for rlim_cur */
     128};
     129
     130struct rlimit {
     131        rlim_t  rlim_cur;               /* current (soft) limit */
     132        rlim_t  rlim_max;               /* maximum value for rlim_cur */
     133};
     134
     135/* Load average structure. */
     136struct loadavg {
     137        fixpt_t ldavg[3];
     138        long    fscale;
     139};
     140
     141#define CP_USER         0
     142#define CP_NICE         1
     143#define CP_SYS          2
     144#define CP_INTR         3
     145#define CP_IDLE         4
     146#define CPUSTATES       5
     147
     148#ifdef _KERNEL
     149extern struct loadavg averunnable;
     150extern long cp_time[CPUSTATES];
     151
     152int     dosetrlimit(struct thread *, u_int, struct rlimit *);
     153
     154#else
     155#include <sys/cdefs.h>
     156
     157__BEGIN_DECLS
     158int     getpriority(int, int);
     159int     getrlimit(int, struct rlimit *);
     160int     getrusage(int, struct rusage *);
     161int     setpriority(int, int, int);
     162int     setrlimit(int, const struct rlimit *);
     163__END_DECLS
     164
     165#endif  /* _KERNEL */
     166#endif  /* !_SYS_RESOURCE_H_ */
Note: See TracChangeset for help on using the changeset viewer.