home *** CD-ROM | disk | FTP | other *** search
/ PC Extra Super CD 1998 January / PCPLUS131.iso / DJGPP / V2 / DJDEV201.ZIP / include / sys / resource.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-08  |  2.3 KB  |  73 lines

  1. /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
  2. #ifndef __dj_include_sys_resource_h_
  3. #define __dj_include_sys_resource_h_
  4.  
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8.  
  9. #ifndef __dj_ENFORCE_ANSI_FREESTANDING
  10.  
  11. #ifndef __STRICT_ANSI__
  12.  
  13. #ifndef _POSIX_SOURCE
  14.  
  15. #include <time.h>
  16.  
  17. #define RUSAGE_SELF     0               /* calling process */
  18. #define RUSAGE_CHILDREN -1              /* terminated child processes */
  19.  
  20. struct rusage {
  21.   struct timeval ru_utime;    /* user time used */
  22.   struct timeval ru_stime;    /* system time used */
  23.   long ru_maxrss;        /* integral max resident set size */
  24.   long ru_ixrss;        /* integral shared text memory size */
  25.   long ru_idrss;        /* integral unshared data size */
  26.   long ru_isrss;        /* integral unshared stack size */
  27.   long ru_minflt;        /* page reclaims */
  28.   long ru_majflt;        /* page faults */
  29.   long ru_nswap;        /* swaps */
  30.   long ru_inblock;        /* block input operations */
  31.   long ru_oublock;        /* block output operations */
  32.   long ru_msgsnd;        /* messages sent */
  33.   long ru_msgrcv;        /* messages received */
  34.   long ru_nsignals;        /* signals received */
  35.   long ru_nvcsw;        /* voluntary context switches */
  36.   long ru_nivcsw;        /* involuntary context switches */
  37. };
  38.  
  39. #define RLIMIT_CPU    0    /* cpu time in milliseconds */
  40. #define RLIMIT_FSIZE    1    /* maximum file size */
  41. #define RLIMIT_DATA    2    /* data size */
  42. #define RLIMIT_STACK    3    /* stack size */
  43. #define RLIMIT_CORE    4    /* core file size */
  44. #define RLIMIT_RSS    5    /* resident set size */
  45. #define RLIMIT_MEMLOCK    6    /* locked-in-memory address space */
  46. #define RLIMIT_NPROC    7    /* number of processes */
  47. #define RLIMIT_NOFILE    8    /* number of open files */
  48.  
  49. #define RLIM_NLIMITS    9    /* number of resource limits */
  50. #define RLIM_INFINITY    ((long) ((1UL << 31) - 1UL))
  51.  
  52. struct rlimit {
  53.   long rlim_cur;        /* current (soft) limit */
  54.   long rlim_max;        /* maximum value for rlim_cur */
  55. };
  56.  
  57. int getrusage(int _who, struct rusage *_rusage);
  58. int getrlimit(int _rltype, struct rlimit *_rlimit);
  59. int setrlimit(int _rltype, const struct rlimit *_rlimit);
  60.  
  61. #endif /* !_POSIX_SOURCE */
  62. #endif /* !__STRICT_ANSI__ */
  63. #endif /* !__dj_ENFORCE_ANSI_FREESTANDING */
  64.  
  65. #ifndef __dj_ENFORCE_FUNCTION_CALLS
  66. #endif /* !__dj_ENFORCE_FUNCTION_CALLS */
  67.  
  68. #ifdef __cplusplus
  69. }
  70. #endif
  71.  
  72. #endif /* !__dj_include_sys_resource_h_ */
  73.