process.c: move get*uid and set*uid parsers to a separate file

* uid.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* process.c (sys_getuid, sys_setfsuid, sys_setuid, sys_getresuid,
sys_setreuid, sys_setresuid): Move to uid.c.
diff --git a/uid.c b/uid.c
new file mode 100644
index 0000000..0991074
--- /dev/null
+++ b/uid.c
@@ -0,0 +1,77 @@
+#include "defs.h"
+
+#include <asm/posix_types.h>
+
+int
+sys_getuid(struct tcb *tcp)
+{
+	if (exiting(tcp))
+		tcp->u_rval = (uid_t) tcp->u_rval;
+	return RVAL_UDECIMAL;
+}
+
+int
+sys_setfsuid(struct tcb *tcp)
+{
+	if (entering(tcp))
+		tprintf("%u", (uid_t) tcp->u_arg[0]);
+	else
+		tcp->u_rval = (uid_t) tcp->u_rval;
+	return RVAL_UDECIMAL;
+}
+
+int
+sys_setuid(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		tprintf("%u", (uid_t) tcp->u_arg[0]);
+	}
+	return 0;
+}
+
+int
+sys_getresuid(struct tcb *tcp)
+{
+	if (exiting(tcp)) {
+		__kernel_uid_t uid;
+		if (syserror(tcp))
+			tprintf("%#lx, %#lx, %#lx", tcp->u_arg[0],
+				tcp->u_arg[1], tcp->u_arg[2]);
+		else {
+			if (umove(tcp, tcp->u_arg[0], &uid) < 0)
+				tprintf("%#lx, ", tcp->u_arg[0]);
+			else
+				tprintf("[%lu], ", (unsigned long) uid);
+			if (umove(tcp, tcp->u_arg[1], &uid) < 0)
+				tprintf("%#lx, ", tcp->u_arg[1]);
+			else
+				tprintf("[%lu], ", (unsigned long) uid);
+			if (umove(tcp, tcp->u_arg[2], &uid) < 0)
+				tprintf("%#lx", tcp->u_arg[2]);
+			else
+				tprintf("[%lu]", (unsigned long) uid);
+		}
+	}
+	return 0;
+}
+
+int
+sys_setreuid(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		printuid("", tcp->u_arg[0]);
+		printuid(", ", tcp->u_arg[1]);
+	}
+	return 0;
+}
+
+int
+sys_setresuid(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		printuid("", tcp->u_arg[0]);
+		printuid(", ", tcp->u_arg[1]);
+		printuid(", ", tcp->u_arg[2]);
+	}
+	return 0;
+}