[musl] Remove sys/resource.h and ulimit.h

These are legacy POSIX resource measurement and scheduler control
interfaces and don't map well to our plans for Fuchsia.

Change-Id: I7341465d240906a7dafa3effd47740348459ef04
diff --git a/third_party/ulib/musl/exported.map b/third_party/ulib/musl/exported.map
index 24cb152..d713137 100644
--- a/third_party/ulib/musl/exported.map
+++ b/third_party/ulib/musl/exported.map
@@ -317,7 +317,6 @@
     getpwuid_r;
     getresgid;
     getresuid;
-    getrusage;
     getservbyname;
     getservbyport;
     getsid;
@@ -671,7 +670,6 @@
     setresgid;
     setresuid;
     setreuid;
-    setrlimit;
     setsid;
     setsockopt;
     setuid;
diff --git a/third_party/ulib/musl/include/module.modulemap b/third_party/ulib/musl/include/module.modulemap
index b5d3541..178847a 100644
--- a/third_party/ulib/musl/include/module.modulemap
+++ b/third_party/ulib/musl/include/module.modulemap
@@ -263,10 +263,6 @@
       header "tar.h"
       export *
     }
-    module ulimit { // POSIX
-      header "ulimit.h"
-      export *
-    }
     module unistd { // POSIX
       header "unistd.h"
       export *
@@ -410,10 +406,6 @@
         header "sys/msg.h"
         export *
       }
-      module resource {
-        header "sys/resource.h"
-        export *
-      }
       module select {
         header "sys/select.h"
         export *
diff --git a/third_party/ulib/musl/include/sys/param.h b/third_party/ulib/musl/include/sys/param.h
index 4515d25..64989a4 100644
--- a/third_party/ulib/musl/include/sys/param.h
+++ b/third_party/ulib/musl/include/sys/param.h
@@ -29,4 +29,3 @@
 
 #include <endian.h>
 #include <limits.h>
-#include <sys/resource.h>
diff --git a/third_party/ulib/musl/include/sys/resource.h b/third_party/ulib/musl/include/sys/resource.h
deleted file mode 100644
index 9af6bc6..0000000
--- a/third_party/ulib/musl/include/sys/resource.h
+++ /dev/null
@@ -1,107 +0,0 @@
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <features.h>
-#include <sys/time.h>
-
-#define __NEED_id_t
-
-#ifdef _GNU_SOURCE
-#define __NEED_pid_t
-#endif
-
-#include <bits/alltypes.h>
-#include <bits/resource.h>
-
-typedef unsigned long long rlim_t;
-
-struct rlimit {
-    rlim_t rlim_cur;
-    rlim_t rlim_max;
-};
-
-struct rusage {
-    struct timeval ru_utime;
-    struct timeval ru_stime;
-    /* linux extentions, but useful */
-    long ru_maxrss;
-    long ru_ixrss;
-    long ru_idrss;
-    long ru_isrss;
-    long ru_minflt;
-    long ru_majflt;
-    long ru_nswap;
-    long ru_inblock;
-    long ru_oublock;
-    long ru_msgsnd;
-    long ru_msgrcv;
-    long ru_nsignals;
-    long ru_nvcsw;
-    long ru_nivcsw;
-    /* room for more... */
-    long __reserved[16];
-};
-
-int getrlimit(int, struct rlimit*);
-int setrlimit(int, const struct rlimit*);
-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 RLIM_INFINITY (~0ULL)
-#define RLIM_SAVED_CUR RLIM_INFINITY
-#define RLIM_SAVED_MAX RLIM_INFINITY
-
-#define RLIMIT_CPU 0
-#define RLIMIT_FSIZE 1
-#define RLIMIT_DATA 2
-#define RLIMIT_STACK 3
-#define RLIMIT_CORE 4
-#ifndef RLIMIT_RSS
-#define RLIMIT_RSS 5
-#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 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
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/third_party/ulib/musl/include/ulimit.h b/third_party/ulib/musl/include/ulimit.h
deleted file mode 100644
index 6e0c814..0000000
--- a/third_party/ulib/musl/include/ulimit.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define UL_GETFSIZE 1
-#define UL_SETFSIZE 2
-
-long ulimit(int, ...);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/third_party/ulib/musl/include/unistd.h b/third_party/ulib/musl/include/unistd.h
index 6f9094a..99a1b8e 100644
--- a/third_party/ulib/musl/include/unistd.h
+++ b/third_party/ulib/musl/include/unistd.h
@@ -132,7 +132,6 @@
 #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 int lockf(int, int, off_t);
 long gethostid(void);
-int nice(int);
 void sync(void);
 int syncfs(int);
 pid_t setpgrp(void);
diff --git a/third_party/ulib/musl/musl-rules.mk b/third_party/ulib/musl/musl-rules.mk
index 8ef9920..ab94a94 100644
--- a/third_party/ulib/musl/musl-rules.mk
+++ b/third_party/ulib/musl/musl-rules.mk
@@ -279,7 +279,6 @@
     $(LOCAL_DIR)/src/legacy/getpass.c \
     $(LOCAL_DIR)/src/legacy/isastream.c \
     $(LOCAL_DIR)/src/legacy/lutimes.c \
-    $(LOCAL_DIR)/src/legacy/ulimit.c \
     $(LOCAL_DIR)/src/linux/adjtime.c \
     $(LOCAL_DIR)/src/linux/flock.c \
     $(LOCAL_DIR)/src/linux/sethostname.c \
@@ -437,9 +436,6 @@
     $(LOCAL_DIR)/src/misc/gethostid.c \
     $(LOCAL_DIR)/src/misc/getopt.c \
     $(LOCAL_DIR)/src/misc/getopt_long.c \
-    $(LOCAL_DIR)/src/misc/getpriority.c \
-    $(LOCAL_DIR)/src/misc/getrlimit.c \
-    $(LOCAL_DIR)/src/misc/getrusage.c \
     $(LOCAL_DIR)/src/misc/getsubopt.c \
     $(LOCAL_DIR)/src/misc/initgroups.c \
     $(LOCAL_DIR)/src/misc/issetugid.c \
@@ -449,8 +445,6 @@
     $(LOCAL_DIR)/src/misc/ptsname.c \
     $(LOCAL_DIR)/src/misc/pty.c \
     $(LOCAL_DIR)/src/misc/setdomainname.c \
-    $(LOCAL_DIR)/src/misc/setpriority.c \
-    $(LOCAL_DIR)/src/misc/setrlimit.c \
     $(LOCAL_DIR)/src/misc/syslog.c \
     $(LOCAL_DIR)/src/misc/wordexp.c \
     $(LOCAL_DIR)/src/mman/madvise.c \
@@ -876,7 +870,6 @@
     $(LOCAL_DIR)/src/unistd/gethostname.c \
     $(LOCAL_DIR)/src/unistd/getlogin.c \
     $(LOCAL_DIR)/src/unistd/getlogin_r.c \
-    $(LOCAL_DIR)/src/unistd/nice.c \
     $(LOCAL_DIR)/src/unistd/pause.c \
     $(LOCAL_DIR)/src/unistd/posix_close.c \
     $(LOCAL_DIR)/src/unistd/setpgrp.c \
diff --git a/third_party/ulib/musl/src/conf/sysconf.c b/third_party/ulib/musl/src/conf/sysconf.c
index 4662cde..5db672d 100644
--- a/third_party/ulib/musl/src/conf/sysconf.c
+++ b/third_party/ulib/musl/src/conf/sysconf.c
@@ -2,7 +2,7 @@
 #include <errno.h>
 #include <limits.h>
 #include <signal.h>
-#include <sys/resource.h>
+#include <stdint.h>
 #include <unistd.h>
 
 #include <zircon/syscalls.h>
@@ -18,16 +18,15 @@
 #define JT_PHYS_PAGES JT(8)
 #define JT_AVPHYS_PAGES JT(9)
 #define JT_ZERO JT(10)
-
-#define RLIM(x) (-32768 | (RLIMIT_##x))
+#define JT_CHILD_MAX JT(11)
 
 long sysconf(int name) {
     static const short values[] = {
             [_SC_ARG_MAX] = JT_ARG_MAX,
-            [_SC_CHILD_MAX] = RLIM(NPROC),
+            [_SC_CHILD_MAX] = JT_CHILD_MAX,
             [_SC_CLK_TCK] = 100,
             [_SC_NGROUPS_MAX] = 32,
-            [_SC_OPEN_MAX] = RLIM(NOFILE),
+            [_SC_OPEN_MAX] = 256,
             [_SC_STREAM_MAX] = -1,
             [_SC_TZNAME_MAX] = TZNAME_MAX,
             [_SC_JOB_CONTROL] = 1,
@@ -170,10 +169,6 @@
         return -1;
     } else if (values[name] >= -1) {
         return values[name];
-    } else if (values[name] < -256) {
-        struct rlimit lim;
-        getrlimit(values[name] & 16383, &lim);
-        return lim.rlim_cur > LONG_MAX ? LONG_MAX : lim.rlim_cur;
     }
 
     switch ((unsigned char)values[name]) {
@@ -208,6 +203,8 @@
         return -1;
     case JT_ZERO & 255:
         return 0;
+    case JT_CHILD_MAX & 255:
+        return UINT32_MAX;
     }
     return values[name];
 }
diff --git a/third_party/ulib/musl/src/legacy/getdtablesize.c b/third_party/ulib/musl/src/legacy/getdtablesize.c
index cbeb57e..55c8197 100644
--- a/third_party/ulib/musl/src/legacy/getdtablesize.c
+++ b/third_party/ulib/musl/src/legacy/getdtablesize.c
@@ -1,10 +1,8 @@
 #define _GNU_SOURCE
 #include <limits.h>
-#include <sys/resource.h>
 #include <unistd.h>
 
 int getdtablesize(void) {
-    struct rlimit rl;
-    getrlimit(RLIMIT_NOFILE, &rl);
-    return rl.rlim_max < INT_MAX ? rl.rlim_max : INT_MAX;
+    int max = sysconf(_SC_OPEN_MAX);
+    return max < INT_MAX ? max : INT_MAX;
 }
diff --git a/third_party/ulib/musl/src/legacy/ulimit.c b/third_party/ulib/musl/src/legacy/ulimit.c
deleted file mode 100644
index 4a0fbae..0000000
--- a/third_party/ulib/musl/src/legacy/ulimit.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <stdarg.h>
-#include <sys/resource.h>
-#include <ulimit.h>
-
-long ulimit(int cmd, ...) {
-    struct rlimit rl;
-    getrlimit(RLIMIT_FSIZE, &rl);
-    if (cmd == UL_SETFSIZE) {
-        long val;
-        va_list ap;
-        va_start(ap, cmd);
-        val = va_arg(ap, long);
-        va_end(ap);
-        rl.rlim_cur = 512ULL * val;
-        if (setrlimit(RLIMIT_FSIZE, &rl))
-            return -1;
-    }
-    return rl.rlim_cur / 512;
-}
diff --git a/third_party/ulib/musl/src/misc/getpriority.c b/third_party/ulib/musl/src/misc/getpriority.c
deleted file mode 100644
index a379eeb..0000000
--- a/third_party/ulib/musl/src/misc/getpriority.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <errno.h>
-#include <sys/resource.h>
-
-int getpriority(int which, id_t who) {
-    errno = ENOSYS;
-    return -1;
-}
diff --git a/third_party/ulib/musl/src/misc/getrlimit.c b/third_party/ulib/musl/src/misc/getrlimit.c
deleted file mode 100644
index 76f47dd..0000000
--- a/third_party/ulib/musl/src/misc/getrlimit.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <errno.h>
-#include <sys/resource.h>
-
-int getrlimit(int resource, struct rlimit* rlim) {
-    // TODO(kulakowski) implement getrlimit
-    errno = ENOSYS;
-    return -1;
-}
diff --git a/third_party/ulib/musl/src/misc/getrusage.c b/third_party/ulib/musl/src/misc/getrusage.c
deleted file mode 100644
index ca4abe3..0000000
--- a/third_party/ulib/musl/src/misc/getrusage.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <errno.h>
-#include <sys/resource.h>
-
-int getrusage(int who, struct rusage* ru) {
-    errno = ENOSYS;
-    return -1;
-}
diff --git a/third_party/ulib/musl/src/misc/setpriority.c b/third_party/ulib/musl/src/misc/setpriority.c
deleted file mode 100644
index 1bf604e..0000000
--- a/third_party/ulib/musl/src/misc/setpriority.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <errno.h>
-#include <sys/resource.h>
-
-int setpriority(int which, id_t who, int prio) {
-    errno = ENOSYS;
-    return -1;
-}
diff --git a/third_party/ulib/musl/src/misc/setrlimit.c b/third_party/ulib/musl/src/misc/setrlimit.c
deleted file mode 100644
index 032da14..0000000
--- a/third_party/ulib/musl/src/misc/setrlimit.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <sys/resource.h>
-
-int setrlimit(int resource, const struct rlimit* rlim) {
-    // TODO(kulakowski) Implement fake rlimit.
-    return -1;
-}
diff --git a/third_party/ulib/musl/src/unistd/nice.c b/third_party/ulib/musl/src/unistd/nice.c
deleted file mode 100644
index d4c8176..0000000
--- a/third_party/ulib/musl/src/unistd/nice.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/resource.h>
-#include <unistd.h>
-
-int nice(int inc) {
-#ifdef SYS_nice
-    return syscall(SYS_nice, inc);
-#else
-    return setpriority(PRIO_PROCESS, 0, getpriority(PRIO_PROCESS, 0) + inc);
-#endif
-}