add getresuid and getresgid syscall wrappers
authorRich Felker <dalias@aerifal.cx>
Sun, 22 Apr 2012 14:37:19 +0000 (10:37 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 22 Apr 2012 14:37:19 +0000 (10:37 -0400)
include/unistd.h
src/misc/getresgid.c [new file with mode: 0644]
src/misc/getresuid.c [new file with mode: 0644]

index ee7ee6d..307f665 100644 (file)
@@ -158,6 +158,8 @@ unsigned ualarm(unsigned, unsigned);
 int setgroups(size_t, const gid_t []);
 int setresuid(uid_t, uid_t, uid_t);
 int setresgid(gid_t, gid_t, gid_t);
 int setgroups(size_t, const gid_t []);
 int setresuid(uid_t, uid_t, uid_t);
 int setresgid(gid_t, gid_t, gid_t);
+int getresuid(uid_t *, uid_t *, uid_t *);
+int getresgid(gid_t *, gid_t *, gid_t *);
 char *get_current_dir_name(void);
 int daemon(int, int);
 int getdomainname(char *, size_t);
 char *get_current_dir_name(void);
 int daemon(int, int);
 int getdomainname(char *, size_t);
diff --git a/src/misc/getresgid.c b/src/misc/getresgid.c
new file mode 100644 (file)
index 0000000..d00d9a9
--- /dev/null
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include <unistd.h>
+#include "syscall.h"
+
+int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid)
+{
+       return syscall(SYS_getresgid, rgid, egid, sgid);
+}
diff --git a/src/misc/getresuid.c b/src/misc/getresuid.c
new file mode 100644 (file)
index 0000000..d75d5d4
--- /dev/null
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include <unistd.h>
+#include "syscall.h"
+
+int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid)
+{
+       return syscall(SYS_getresuid, ruid, euid, suid);
+}