github.com/afumu/libc@v0.0.6/musl/include/sys/resource.h (about)

     1  #ifndef	_SYS_RESOURCE_H
     2  #define	_SYS_RESOURCE_H
     3  
     4  #ifdef __cplusplus
     5  extern "C" {
     6  #endif
     7  
     8  #include <features.h>
     9  #include <sys/time.h>
    10  
    11  #define __NEED_id_t
    12  
    13  #ifdef _GNU_SOURCE
    14  #define __NEED_pid_t
    15  #endif
    16  
    17  #include <bits/alltypes.h>
    18  #include <bits/resource.h>
    19  
    20  typedef unsigned long long rlim_t;
    21  
    22  struct rlimit {
    23  	rlim_t rlim_cur;
    24  	rlim_t rlim_max;
    25  };
    26  
    27  struct rusage {
    28  	struct timeval ru_utime;
    29  	struct timeval ru_stime;
    30  	/* linux extentions, but useful */
    31  	long	ru_maxrss;
    32  	long	ru_ixrss;
    33  	long	ru_idrss;
    34  	long	ru_isrss;
    35  	long	ru_minflt;
    36  	long	ru_majflt;
    37  	long	ru_nswap;
    38  	long	ru_inblock;
    39  	long	ru_oublock;
    40  	long	ru_msgsnd;
    41  	long	ru_msgrcv;
    42  	long	ru_nsignals;
    43  	long	ru_nvcsw;
    44  	long	ru_nivcsw;
    45  	/* room for more... */
    46  	long    __reserved[16];
    47  };
    48  
    49  int getrlimit (int, struct rlimit *);
    50  int setrlimit (int, const struct rlimit *);
    51  int getrusage (int, struct rusage *);
    52  
    53  int getpriority (int, id_t);
    54  int setpriority (int, id_t, int);
    55  
    56  #ifdef _GNU_SOURCE
    57  int prlimit(pid_t, int, const struct rlimit *, struct rlimit *);
    58  #define prlimit64 prlimit
    59  #endif
    60  
    61  #define PRIO_MIN (-20)
    62  #define PRIO_MAX 20
    63  
    64  #define PRIO_PROCESS 0
    65  #define PRIO_PGRP    1
    66  #define PRIO_USER    2
    67  
    68  #define RUSAGE_SELF     0
    69  #define RUSAGE_CHILDREN (-1)
    70  #define RUSAGE_THREAD   1
    71  
    72  #define RLIM_INFINITY (~0ULL)
    73  #define RLIM_SAVED_CUR RLIM_INFINITY
    74  #define RLIM_SAVED_MAX RLIM_INFINITY
    75  
    76  #define RLIMIT_CPU     0
    77  #define RLIMIT_FSIZE   1
    78  #define RLIMIT_DATA    2
    79  #define RLIMIT_STACK   3
    80  #define RLIMIT_CORE    4
    81  #ifndef RLIMIT_RSS
    82  #define RLIMIT_RSS     5
    83  #define RLIMIT_NPROC   6
    84  #define RLIMIT_NOFILE  7
    85  #define RLIMIT_MEMLOCK 8
    86  #define RLIMIT_AS      9
    87  #endif
    88  #define RLIMIT_LOCKS   10
    89  #define RLIMIT_SIGPENDING 11
    90  #define RLIMIT_MSGQUEUE 12
    91  #define RLIMIT_NICE    13
    92  #define RLIMIT_RTPRIO  14
    93  #define RLIMIT_RTTIME  15
    94  #define RLIMIT_NLIMITS 16
    95  
    96  #define RLIM_NLIMITS RLIMIT_NLIMITS
    97  
    98  #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
    99  #define RLIM64_INFINITY RLIM_INFINITY
   100  #define RLIM64_SAVED_CUR RLIM_SAVED_CUR
   101  #define RLIM64_SAVED_MAX RLIM_SAVED_MAX
   102  #define getrlimit64 getrlimit
   103  #define setrlimit64 setrlimit
   104  #define rlimit64 rlimit
   105  #define rlim64_t rlim_t
   106  #endif
   107  
   108  #if _REDIR_TIME64
   109  __REDIR(getrusage, __getrusage_time64);
   110  #endif
   111  
   112  #ifdef __cplusplus
   113  }
   114  #endif
   115  
   116  #endif