Sometimes, 64-bit value is expected to be interpreted as an address
(in BTRFS ioctl interface, for example).
* defs.h (printaddr64): New declaration.
* util.c (printaddr64): Rename from printaddr, change argument type
to uint64_t.
(printaddr): Turn into a thin wrapper around printaddr64.
(printnum_addr_int, printnum_addr_int64): Use printaddr64 instead of
printaddr. printnum_addr_int64 is not used outside the cases where
kernel_long is less or equal than 64 bit currently, so this change
should be safe.
extern int printllval(struct tcb *, const char *, int)
ATTRIBUTE_FORMAT((printf, 2, 0));
+extern void printaddr64(uint64_t addr);
extern void printaddr(kernel_ulong_t addr);
extern int printxvals(const uint64_t, const char *, const struct xlat *, ...)
ATTRIBUTE_SENTINEL;
}
void
-printaddr(const kernel_ulong_t addr)
+printaddr64(const uint64_t addr)
{
if (!addr)
tprints("NULL");
else
- tprintf("%#" PRI_klx, addr);
+ tprintf("%#" PRIx64, addr);
+}
+
+void
+printaddr(const kernel_ulong_t addr)
+{
+ printaddr64(addr);
}
#define DEF_PRINTNUM(name, type) \
if (umove_or_printaddr(tcp, addr, &num)) \
return false; \
tprints("["); \
- printaddr(num); \
+ printaddr64(num); \
tprints("]"); \
return true; \
}