bionic: Fix wrong prototype of system call getresuid/getresgid

In bionic/libc/SYSCALLS.TXT, the prototypes of system call
getresuid/getresgid are incorrect.

According to man page, they should be:
    int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);
    int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);

Change-Id: I676098868bb05a9e1fe45419b234cf397626fdad
Signed-off-by: Jin Wei <wei.a.jin@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT
index 2da38b7..10ef27f 100644
--- a/libc/SYSCALLS.TXT
+++ b/libc/SYSCALLS.TXT
@@ -47,8 +47,8 @@
 gid_t   getgid:getgid32 ()         200
 uid_t   geteuid:geteuid32 ()       201
 gid_t   getegid:getegid32 ()       202
-uid_t   getresuid:getresuid32 ()   209
-gid_t   getresgid:getresgid32 ()   211
+uid_t   getresuid:getresuid32 (uid_t *ruid, uid_t *euid, uid_t *suid)   209
+gid_t   getresgid:getresgid32 (gid_t *rgid, gid_t *egid, gid_t *sgid)   211
 pid_t   gettid()                   224
 ssize_t readahead(int, off64_t, size_t)     225
 int     getgroups:getgroups32(int, gid_t *)    205
diff --git a/libc/arch-x86/syscalls/getresgid.S b/libc/arch-x86/syscalls/getresgid.S
index 454d32b..d43aec4 100644
--- a/libc/arch-x86/syscalls/getresgid.S
+++ b/libc/arch-x86/syscalls/getresgid.S
@@ -7,6 +7,12 @@
     .align 4
 
 getresgid:
+    pushl   %ebx
+    pushl   %ecx
+    pushl   %edx
+    mov     16(%esp), %ebx
+    mov     20(%esp), %ecx
+    mov     24(%esp), %edx
     movl    $__NR_getresgid32, %eax
     int     $0x80
     cmpl    $-129, %eax
@@ -17,4 +23,7 @@
     addl    $4, %esp
     orl     $-1, %eax
 1:
+    popl    %edx
+    popl    %ecx
+    popl    %ebx
     ret
diff --git a/libc/arch-x86/syscalls/getresuid.S b/libc/arch-x86/syscalls/getresuid.S
index f07b5c5..f489d40 100644
--- a/libc/arch-x86/syscalls/getresuid.S
+++ b/libc/arch-x86/syscalls/getresuid.S
@@ -7,6 +7,12 @@
     .align 4
 
 getresuid:
+    pushl   %ebx
+    pushl   %ecx
+    pushl   %edx
+    mov     16(%esp), %ebx
+    mov     20(%esp), %ecx
+    mov     24(%esp), %edx
     movl    $__NR_getresuid32, %eax
     int     $0x80
     cmpl    $-129, %eax
@@ -17,4 +23,7 @@
     addl    $4, %esp
     orl     $-1, %eax
 1:
+    popl    %edx
+    popl    %ecx
+    popl    %ebx
     ret
diff --git a/libc/include/sys/linux-unistd.h b/libc/include/sys/linux-unistd.h
index d945d87..84ea7c3 100644
--- a/libc/include/sys/linux-unistd.h
+++ b/libc/include/sys/linux-unistd.h
@@ -17,8 +17,8 @@
 gid_t            getgid (void);
 uid_t            geteuid (void);
 gid_t            getegid (void);
-uid_t            getresuid (void);
-gid_t            getresgid (void);
+uid_t            getresuid (uid_t *ruid, uid_t *euid, uid_t *suid);
+gid_t            getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid);
 pid_t            gettid (void);
 ssize_t          readahead (int, off64_t, size_t);
 int              getgroups (int, gid_t *);