]> granicus.if.org Git - strace/commitdiff
Add sys_sysmips decoding
authorWichert Akkerman <wichert@deephackmode.org>
Mon, 19 Feb 2001 13:35:53 +0000 (13:35 +0000)
committerWichert Akkerman <wichert@deephackmode.org>
Mon, 19 Feb 2001 13:35:53 +0000 (13:35 +0000)
ChangeLog
linux/mips/syscallent.h
linux/syscall.h
system.c

index c27e8cc17040633464ea04ac521c701405808c5a..2a5785427f1ee31ad1d628119c747a196b85b702 100644 (file)
--- 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
index 48da9e178e3e8b594560d4ecd2d833aae92fd7d3..7c8bc45a68174a4ffa5fd4810250ad5c158d6050 100644 (file)
        { 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 */
index e1f96d8e2dc6a20bee434d0b107925c10a435f96..6ad5fe99275621582f84c3b1c1c822bfd04b119c 100644 (file)
@@ -175,6 +175,10 @@ int osf_statfs(), osf_fstatfs();
 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();
 
index 39930b571821bb0d25ed13f99684cd18e12bb546..89723bef33d21099bab81ad3a10af8b8f6ed90c0 100644 (file)
--- a/system.c
+++ b/system.c
@@ -2000,4 +2000,43 @@ struct tcb *tcp;
        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 */