fix unprotected macro argument in sys/ttydefaults.h
[musl] / include / sys / resource.h
index 42febc0..3068328 100644 (file)
@@ -1,22 +1,30 @@
 #ifndef        _SYS_RESOURCE_H
 #define        _SYS_RESOURCE_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <features.h>
+#include <sys/time.h>
+
 #define __NEED_id_t
-#define __NEED_time_t
-#define __NEED_struct_timeval
+
+#ifdef _GNU_SOURCE
+#define __NEED_pid_t
+#endif
 
 #include <bits/alltypes.h>
+#include <bits/resource.h>
 
 typedef unsigned long long rlim_t;
 
-struct rlimit
-{
+struct rlimit {
        rlim_t rlim_cur;
        rlim_t rlim_max;
 };
 
-struct rusage
-{
+struct rusage {
        struct timeval ru_utime;
        struct timeval ru_stime;
        /* linux extentions, but useful */
@@ -45,12 +53,21 @@ int getrusage (int, struct rusage *);
 int getpriority (int, id_t);
 int setpriority (int, id_t, int);
 
+#ifdef _GNU_SOURCE
+int prlimit(pid_t, int, const struct rlimit *, struct rlimit *);
+#define prlimit64 prlimit
+#endif
+
+#define PRIO_MIN (-20)
+#define PRIO_MAX 20
+
 #define PRIO_PROCESS 0
 #define PRIO_PGRP    1
 #define PRIO_USER    2
 
 #define RUSAGE_SELF     0
-#define RUSAGE_CHILDREN 1
+#define RUSAGE_CHILDREN (-1)
+#define RUSAGE_THREAD   1
 
 #define RLIM_INFINITY (~0ULL)
 #define RLIM_SAVED_CUR RLIM_INFINITY
@@ -61,21 +78,39 @@ int setpriority (int, id_t, int);
 #define RLIMIT_DATA    2
 #define RLIMIT_STACK   3
 #define RLIMIT_CORE    4
+#ifndef RLIMIT_RSS
 #define RLIMIT_RSS     5
-#define RLIMIT_NOFILE  7
-#define RLIMIT_AS      9
 #define RLIMIT_NPROC   6
+#define RLIMIT_NOFILE  7
 #define RLIMIT_MEMLOCK 8
+#define RLIMIT_AS      9
+#endif
 #define RLIMIT_LOCKS   10
 #define RLIMIT_SIGPENDING 11
 #define RLIMIT_MSGQUEUE 12
 #define RLIMIT_NICE    13
 #define RLIMIT_RTPRIO  14
-#define RLIMIT_NLIMITS 15
+#define RLIMIT_RTTIME  15
+#define RLIMIT_NLIMITS 16
 
-#ifdef _GNU_SOURCE
-#define RLIMT_NLIMIT RLIMIT_NLIMITS
+#define RLIM_NLIMITS RLIMIT_NLIMITS
+
+#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
+#define RLIM64_INFINITY RLIM_INFINITY
+#define RLIM64_SAVED_CUR RLIM_SAVED_CUR
+#define RLIM64_SAVED_MAX RLIM_SAVED_MAX
+#define getrlimit64 getrlimit
+#define setrlimit64 setrlimit
+#define rlimit64 rlimit
+#define rlim64_t rlim_t
 #endif
 
+#if _REDIR_TIME64
+__REDIR(getrusage, __getrusage_time64);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif