gonzui


Format: Advanced Search

t2ex/bsd_source/lib/libc/src_bsd/include/sys/resource.hbare sourcepermlink (0.01 seconds)

Search this content:

    1: /*      $OpenBSD: resource.h,v 1.9 2010/11/02 10:51:06 kettenis Exp $        */
    2: /*      $NetBSD: resource.h,v 1.14 1996/02/09 18:25:27 christos Exp $        */
    3: 
    4: /*
    5:  * Copyright (c) 1982, 1986, 1993
    6:  *      The Regents of the University of California.  All rights reserved.
    7:  *
    8:  * Redistribution and use in source and binary forms, with or without
    9:  * modification, are permitted provided that the following conditions
   10:  * are met:
   11:  * 1. Redistributions of source code must retain the above copyright
   12:  *    notice, this list of conditions and the following disclaimer.
   13:  * 2. Redistributions in binary form must reproduce the above copyright
   14:  *    notice, this list of conditions and the following disclaimer in the
   15:  *    documentation and/or other materials provided with the distribution.
   16:  * 3. Neither the name of the University nor the names of its contributors
   17:  *    may be used to endorse or promote products derived from this software
   18:  *    without specific prior written permission.
   19:  *
   20:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   21:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   22:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   23:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   24:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   25:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   26:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   27:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   28:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   29:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   30:  * SUCH DAMAGE.
   31:  *
   32:  *      @(#)resource.h       8.2 (Berkeley) 1/4/94
   33:  */
   34: 
   35: #ifndef _SYS_RESOURCE_H_
   36: #define _SYS_RESOURCE_H_
   37: 
   38: #include <sys/time.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: 
   54: #define RUSAGE_SELF     0
   55: #define RUSAGE_CHILDREN -1
   56: #define RUSAGE_THREAD   1
   57: 
   58: struct  rusage {
   59:         struct timeval ru_utime;       /* user time used */
   60:         struct timeval ru_stime;       /* system time used */
   61:         long   ru_maxrss;                /* max resident set size */
   62: #define ru_first        ru_ixrss
   63:         long   ru_ixrss;         /* integral shared text memory size */
   64:         long   ru_idrss;         /* integral unshared data " */
   65:         long   ru_isrss;         /* integral unshared stack " */
   66:         long   ru_minflt;                /* page reclaims */
   67:         long   ru_majflt;                /* page faults */
   68:         long   ru_nswap;         /* swaps */
   69:         long   ru_inblock;               /* block input operations */
   70:         long   ru_oublock;               /* block output operations */
   71:         long   ru_msgsnd;                /* messages sent */
   72:         long   ru_msgrcv;                /* messages received */
   73:         long   ru_nsignals;              /* signals received */
   74:         long   ru_nvcsw;         /* voluntary context switches */
   75:         long   ru_nivcsw;                /* involuntary " */
   76: #define ru_last         ru_nivcsw
   77: };
   78: 
   79: /*
   80:  * Resource limits
   81:  */
   82: #define RLIMIT_CPU      0            /* cpu time in milliseconds */
   83: #define RLIMIT_FSIZE    1          /* maximum file size */
   84: #define RLIMIT_DATA     2           /* data size */
   85: #define RLIMIT_STACK    3          /* stack size */
   86: #define RLIMIT_CORE     4           /* core file size */
   87: #define RLIMIT_RSS      5            /* resident set size */
   88: #define RLIMIT_MEMLOCK  6                /* locked-in-memory address space */
   89: #define RLIMIT_NPROC    7          /* number of processes */
   90: #define RLIMIT_NOFILE   8         /* number of open files */
   91: 
   92: #define RLIM_NLIMITS    9          /* number of resource limits */
   93: 
   94: #define RLIM_INFINITY   (((rlim_t)1 << 63) - 1)
   95: #define RLIM_SAVED_MAX  RLIM_INFINITY
   96: #define RLIM_SAVED_CUR  RLIM_INFINITY
   97: 
   98: struct orlimit {
   99:         int32_t        rlim_cur;              /* current (soft) limit */
  100:         int32_t        rlim_max;              /* maximum value for rlim_cur */
  101: };
  102: 
  103: struct rlimit {
  104:         rlim_t rlim_cur;               /* current (soft) limit */
  105:         rlim_t rlim_max;               /* maximum value for rlim_cur */
  106: };
  107: 
  108: /* Load average structure. */
  109: struct loadavg {
  110:         fixpt_t        ldavg[3];
  111:         long   fscale;
  112: };
  113: 
  114: #ifdef _KERNEL
  115: extern struct loadavg averunnable;
  116: struct process;
  117: int     dosetrlimit(struct proc *, u_int, struct rlimit *);
  118: int     donice(struct proc *, struct process *, int);
  119: 
  120: #else
  121: #include <sys/cdefs.h>
  122: 
  123: __BEGIN_DECLS
  124: int     getpriority(int, id_t);
  125: int     getrlimit(int, struct rlimit *);
  126: int     getrusage(int, struct rusage *);
  127: int     setpriority(int, id_t, int);
  128: int     setrlimit(int, const struct rlimit *);
  129: __END_DECLS
  130: 
  131: #endif  /* _KERNEL */
  132: #endif  /* !_SYS_RESOURCE_H_ */