int usleep(unsigned);
unsigned ualarm(unsigned, unsigned);
int setgroups(int, const gid_t []);
+int setresuid(uid_t, uid_t, uid_t);
+int setresgid(gid_t, gid_t, gid_t);
#endif
#define _XOPEN_VERSION 700
--- /dev/null
+#define _GNU_SOURCE
+#include <unistd.h>
+#include "syscall.h"
+#include "libc.h"
+
+int setresgid(gid_t rgid, gid_t egid, gid_t sgid)
+{
+ if (libc.rsyscall) return libc.rsyscall(__NR_setresgid, rgid, egid, sgid, 0, 0, 0);
+ return syscall(SYS_setresgid, rgid, egid, sgid);
+}
--- /dev/null
+#define _GNU_SOURCE
+#include <unistd.h>
+#include "syscall.h"
+#include "libc.h"
+
+int setresuid(uid_t ruid, uid_t euid, uid_t suid)
+{
+ if (libc.rsyscall) return libc.rsyscall(__NR_setresuid, ruid, euid, suid, 0, 0, 0);
+ return syscall(SYS_setresuid, ruid, euid, suid);
+}