Convert do_printstat to a template function
* printstat.h: New file.
* Makefile.am (strace_SOURCES): Add it.
* file.c: Include "printstat.h".
(do_printstat): Move to printstat.h, parametrize its name
and struct stat.
diff --git a/file.c b/file.c
index 3886958..f4ff3ef 100644
--- a/file.c
+++ b/file.c
@@ -372,65 +372,7 @@
}
#endif /* POWERPC64 */
-static void
-do_printstat(struct tcb *tcp, struct stat *statbuf)
-{
- if (!abbrev(tcp)) {
- tprintf("{st_dev=makedev(%u, %u), st_ino=%llu, st_mode=%s, ",
- (unsigned int) major(statbuf->st_dev),
- (unsigned int) minor(statbuf->st_dev),
- (unsigned long long) statbuf->st_ino,
- sprintmode(statbuf->st_mode));
- tprintf("st_nlink=%u, st_uid=%u, st_gid=%u, ",
- (unsigned int) statbuf->st_nlink,
- (unsigned int) statbuf->st_uid,
- (unsigned int) statbuf->st_gid);
-#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
- tprintf("st_blksize=%u, ", (unsigned int) statbuf->st_blksize);
-#endif
-#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
- tprintf("st_blocks=%llu, ",
- (unsigned long long) statbuf->st_blocks);
-#endif
- }
- else
- tprintf("{st_mode=%s, ", sprintmode(statbuf->st_mode));
- switch (statbuf->st_mode & S_IFMT) {
- case S_IFCHR: case S_IFBLK:
-#ifdef HAVE_STRUCT_STAT_ST_RDEV
- tprintf("st_rdev=makedev(%u, %u), ",
- (unsigned int) major(statbuf->st_rdev),
- (unsigned int) minor(statbuf->st_rdev));
-#else /* !HAVE_STRUCT_STAT_ST_RDEV */
- tprintf("st_size=makedev(%u, %u), ",
- (unsigned int) major(statbuf->st_size),
- (unsigned int) minor(statbuf->st_size));
-#endif /* !HAVE_STRUCT_STAT_ST_RDEV */
- break;
- default:
- tprintf("st_size=%llu, ",
- (unsigned long long) statbuf->st_size);
- break;
- }
- if (!abbrev(tcp)) {
- tprintf("st_atime=%s, ", sprinttime(statbuf->st_atime));
- tprintf("st_mtime=%s, ", sprinttime(statbuf->st_mtime));
- tprintf("st_ctime=%s", sprinttime(statbuf->st_ctime));
-#if HAVE_STRUCT_STAT_ST_FLAGS
- tprintf(", st_flags=%u", (unsigned int) statbuf->st_flags);
-#endif
-#if HAVE_STRUCT_STAT_ST_FSTYPE
- tprintf(", st_fstype=%.*s",
- (int) sizeof statbuf->st_fstype, statbuf->st_fstype);
-#endif
-#if HAVE_STRUCT_STAT_ST_GEN
- tprintf(", st_gen=%u", (unsigned int) statbuf->st_gen);
-#endif
- tprints("}");
- }
- else
- tprints("...}");
-}
+#include "printstat.h"
#ifndef X32
static void