# undef HAVE_STRUCT_STAT_ST_FSTYPE
# undef HAVE_STRUCT_STAT_ST_GEN
# include "printstat.h"
-
-static void
-printstat32(struct tcb *tcp, long addr)
-{
- struct stat32 statbuf;
-
- if (umove(tcp, addr, &statbuf) < 0) {
- tprints("{...}");
- return;
- }
-
- do_printstat32(tcp, &statbuf);
-}
#endif /* STAT32_PERSONALITY */
#if defined(SPARC) || defined(SPARC64)
# undef HAVE_STRUCT_STAT_ST_FSTYPE
# undef HAVE_STRUCT_STAT_ST_GEN
# include "printstat.h"
-
-static void
-printstatsol(struct tcb *tcp, long addr)
-{
- struct solstat statbuf;
-
- if (umove(tcp, addr, &statbuf) < 0) {
- tprints("{...}");
- return;
- }
-
- do_printstat_sol(tcp, &statbuf);
-}
-
#endif /* SPARC || SPARC64 */
static void
{
struct stat statbuf;
- if (!addr) {
- tprints("NULL");
- return;
- }
- if (syserror(tcp) || !verbose(tcp)) {
- tprintf("%#lx", addr);
- return;
- }
-
#ifdef STAT32_PERSONALITY
if (current_personality == STAT32_PERSONALITY) {
- printstat32(tcp, addr);
+ struct stat32 statbuf;
+
+ if (!umove_or_printaddr(tcp, addr, &statbuf))
+ do_printstat32(tcp, &statbuf);
return;
}
#endif
#if defined(SPARC) || defined(SPARC64)
if (current_personality == 1) {
- printstatsol(tcp, addr);
- return;
- }
-#endif /* SPARC || SPARC64 */
+ struct solstat statbuf;
- if (umove(tcp, addr, &statbuf) < 0) {
- tprints("{...}");
+ if (!umove_or_printaddr(tcp, addr, &statbuf))
+ do_printstat_sol(tcp, &statbuf);
return;
}
+#endif /* SPARC || SPARC64 */
- do_printstat(tcp, &statbuf);
+ if (!umove_or_printaddr(tcp, addr, &statbuf))
+ do_printstat(tcp, &statbuf);
}
SYS_FUNC(stat)
(void) sizeof(char[sizeof statbuf == STAT64_SIZE ? 1 : -1]);
# endif
- if (!addr) {
- tprints("NULL");
- return;
- }
- if (syserror(tcp) || !verbose(tcp)) {
- tprintf("%#lx", addr);
- return;
- }
-
# ifdef STAT32_PERSONALITY
if (current_personality != STAT32_PERSONALITY) {
printstat(tcp, addr);
}
# endif /* STAT32_PERSONALITY */
- if (umove(tcp, addr, &statbuf) < 0) {
- tprints("{...}");
- return;
- }
-
- do_printstat64(tcp, &statbuf);
+ if (!umove_or_printaddr(tcp, addr, &statbuf))
+ do_printstat64(tcp, &statbuf);
}
SYS_FUNC(stat64)
struct __old_kernel_stat statbuf;
struct stat newstatbuf;
- if (!addr) {
- tprints("NULL");
- return;
- }
- if (syserror(tcp) || !verbose(tcp)) {
- tprintf("%#lx", addr);
- return;
- }
-
# if defined(SPARC) || defined(SPARC64)
if (current_personality == 1) {
- printstatsol(tcp, addr);
+ struct solstat statbuf;
+
+ if (!umove_or_printaddr(tcp, addr, &statbuf))
+ do_printstat_sol(tcp, &statbuf);
return;
}
# endif
- if (umove(tcp, addr, &statbuf) < 0) {
- tprints("{...}");
- return;
+ if (!umove_or_printaddr(tcp, addr, &statbuf)) {
+ convertoldstat(&statbuf, &newstatbuf);
+ do_printstat(tcp, &newstatbuf);
}
-
- convertoldstat(&statbuf, &newstatbuf);
- do_printstat(tcp, &newstatbuf);
}
SYS_FUNC(oldstat)