2006-12-10 Dmitry V. Levin <ldv@altlinux.org>
Add biarch support for "struct timeval".
* defs.h (bitness_t): New enum type.
(printtv_bitness, sprinttv): New function prototypes.
(printtv): Convert to macro wrapper around printtv_bitness().
(printtv32): Remove.
* desc.c (decode_select): Use printtv_bitness() and sprinttv().
(sys_oldselect, sys_osf_select, sys_select, sys_pselect6):
Update decode_select() use.
* file.c [ALPHA] (sys_osf_utimes): Use printtv_bitness().
* time.c (printtv_bitness, sprinttv): New functions.
(printtv, printtv32): Remove.
[ALPHA] (sys_osf_settimeofday, sys_osf_settimeofday):
Use printtv_bitness().
Fixes RH#171626, RH#173050.
diff --git a/defs.h b/defs.h
index 344e4e1..0396b11 100644
--- a/defs.h
+++ b/defs.h
@@ -421,6 +421,8 @@
#define P(args) ()
#endif
+enum bitness_t { BITNESS_CURRENT = 0, BITNESS_32 };
+
extern int set_personality P((int personality));
extern char *xlookup P((const struct xlat *, int));
extern struct tcb *alloctcb P((int));
@@ -449,7 +451,8 @@
extern void printnum_int P((struct tcb *, long, char *));
extern void printpath P((struct tcb *, long));
extern void printpathn P((struct tcb *, long, int));
-extern void printtv P((struct tcb *, long));
+extern void printtv_bitness P((struct tcb *, long, enum bitness_t));
+extern void sprinttv P((struct tcb *, long, enum bitness_t, char *));
#ifdef HAVE_SIGINFO_T
extern void printsiginfo P((siginfo_t *, int));
#endif
@@ -468,7 +471,6 @@
extern void printtrailer P((struct tcb *));
extern void tabto P((int));
extern void call_summary P((FILE *));
-extern void printtv32 P((struct tcb*, long));
extern void tprint_iov P((struct tcb *, unsigned long, unsigned long));
#ifdef LINUX
@@ -512,6 +514,9 @@
#define umove(pid, addr, objp) \
umoven((pid), (addr), sizeof *(objp), (char *) (objp))
+#define printtv(tcp, addr) \
+ printtv_bitness((tcp), (addr), BITNESS_CURRENT)
+
#ifdef __STDC__
#ifdef __GNUC__
extern void tprintf(const char *fmt, ...)