Add sys_sysmips decoding
diff --git a/ChangeLog b/ChangeLog
index c27e8cc..2a57854 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-19 Wichert Akkerman <wakkerma@debian.org>
+
+ * linux/mips/syscallent.h: use new sys_sysmips
+ * system.c: add sys_sysmips decoding
+
2001-02-16 Wichert Akkerman <wakkerma@debian.org>
* CREDITS: add Arkadiusz Miskiewicz <misiek@pld.org.pl> who
diff --git a/linux/mips/syscallent.h b/linux/mips/syscallent.h
index 48da9e1..7c8bc45 100644
--- a/linux/mips/syscallent.h
+++ b/linux/mips/syscallent.h
@@ -4147,7 +4147,7 @@
{ 5, 0, sys_writev, "writev" }, /* 4146 */
{ 3, 0, printargs, "cacheflush" }, /* 4147 */
{ 3, 0, printargs, "cachectl" }, /* 4148 */
- { 4, 0, printargs, "sysmips" }, /* 4149 */
+ { 4, 0, sys_sysmips, "sysmips" }, /* 4149 */
{ 0, 0, sys_setup, "setup" }, /* 4150 */
{ 0, 0, sys_getsid, "getsid" }, /* 4151 */
{ 5, 0, sys_fdatasync, "fdatasync" }, /* 4152 */
diff --git a/linux/syscall.h b/linux/syscall.h
index e1f96d8..6ad5fe9 100644
--- a/linux/syscall.h
+++ b/linux/syscall.h
@@ -175,6 +175,10 @@
int sys_getpmsg(), sys_putpmsg(); /* STREAMS stuff */
#endif
+#ifdef MIPS
+int sys_sysmips()
+#endif
+
int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes();
int sys_capget(), sys_capset();
diff --git a/system.c b/system.c
index 39930b5..89723be 100644
--- a/system.c
+++ b/system.c
@@ -2000,4 +2000,43 @@
return 0;
}
-#endif
+#endif /* UNIXWARE > 2 */
+
+#ifdef MIPS
+
+static struct xlat_sysmips[] = {
+ { SETNAME, "SETNAME" },
+ { FLUSH_CACHE, "FLUSH_CACHE" },
+ { MIPS_FIXADE, "MIPS_FIXADE" },
+ { MIPS_RDNVRAM, "MIPS_RDNVRAM" },
+ { MIPS_ATOMIC_SET, "MIPS_ATOMIC_SET" },
+ { 0, NULL }
+};
+
+int sys_sysmips(tcp)
+struct tcb *tcp;
+{
+ if (entering(tcp)) {
+ printxval(xlat_sysmips, tcp->u_arg[0], "???");
+ tprintf(", ");
+ if (!verbose(tcp)) {
+ tprintf("%d, %d, %d", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
+ } else if (tcp->u_arg[0]==SETNAME) {
+ char nodename[__NEW_UTS_LEN_1];
+ if (umovestr(tcp, tcp->u_arg[1], (__NEW_UTS_LEN_1), nodename) < 0)
+ tprintf(", %#lx", tcp->u_arg[1]);
+ else
+ tprintf(", \"%s\"", nodename);
+ } else if (tcp->u_arg[0]==MIPS_ATOMIC_SET) {
+ tprintf(", %#lx, 0x%x", tcp->u_arg[1], tcp->u_arg[2]);
+ } else if (tcp->u_arg[0]==MIPS_FIXADE) {
+ tprintf(", 0x%x", tcp->u_arg[1]);
+ } else {
+ tprintf("%d, %d, %d", tcp->u_arg[1], tcp->u_arg[2], tcp->u_arg[3]);
+ }
+ }
+
+ return 0;
+}
+
+#endif /* MIPS */