#if defined(LINUX_MIPSN32)
long long ext_arg[MAX_ARGS]; /* System call arguments */
#endif
- long u_rval; /* (first) return value */
+ long u_rval; /* return value */
+#if defined(LINUX_MIPSN32) || defined(X32)
+ long long u_lrval; /* long long return value */
+#endif
#if SUPPORTED_PERSONALITIES > 1
int currpers; /* Personality at the time of scno update */
#endif
#define RVAL_HEX 001 /* hex format */
#define RVAL_OCTAL 002 /* octal format */
#define RVAL_UDECIMAL 003 /* unsigned decimal format */
-#define RVAL_MASK 003 /* mask for these values */
+#if defined(LINUX_MIPSN32) || defined(X32)
+# if 0 /* unused so far */
+# define RVAL_LDECIMAL 004 /* long decimal format */
+# define RVAL_LHEX 005 /* long hex format */
+# define RVAL_LOCTAL 006 /* long octal format */
+# endif
+# define RVAL_LUDECIMAL 007 /* long unsigned decimal format */
+#endif
+#define RVAL_MASK 007 /* mask for these values */
#define RVAL_STR 010 /* Print `auxstr' field after return val */
#define RVAL_NONE 020 /* Print nothing */
{ 0, NULL },
};
-#if !defined(HAVE_LONG_LONG_OFF_T)
-# if defined(LINUX_MIPSN32)
+#if defined(LINUX_MIPSN32)
int
sys_lseek(struct tcb *tcp)
{
tprintf("%lld, ", offset);
printxval(whence, _whence, "SEEK_???");
}
- return RVAL_UDECIMAL;
+ return RVAL_LUDECIMAL;
}
-# else /* !LINUX_MIPSN32 */
+#else
int
sys_lseek(struct tcb *tcp)
{
}
return RVAL_UDECIMAL;
}
-# endif
#endif
int
u_error = r2;
} else {
tcp->u_rval = r2;
+# if defined(LINUX_MIPSN32)
+ tcp->u_lrval = r2;
+# endif
}
#elif defined(POWERPC)
if (check_errno && is_negated_errno(ppc_result)) {
case RVAL_DECIMAL:
tprintf("= %ld", tcp->u_rval);
break;
+#if defined(LINUX_MIPSN32) || defined(X32)
+ /*
+ case RVAL_LHEX:
+ tprintf("= %#llx", tcp->u_lrval);
+ break;
+ case RVAL_LOCTAL:
+ tprintf("= %#llo", tcp->u_lrval);
+ break;
+ */
+ case RVAL_LUDECIMAL:
+ tprintf("= %llu", tcp->u_lrval);
+ break;
+ /*
+ case RVAL_LDECIMAL:
+ tprintf("= %lld", tcp->u_lrval);
+ break;
+ */
+#endif
default:
fprintf(stderr,
"invalid rval format\n");