X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fstd-formats.c;h=7a51a531d3185fdd7b066270a79442f7205dceff;hb=cbc0410d6223503a4deef0834d22a34f75e490e7;hp=4605ed5d75c9ebf8296870cdf88da989b6f2c39d;hpb=4621966638735a875f430522ad479aede67844a3;p=vpp.git diff --git a/src/vppinfra/std-formats.c b/src/vppinfra/std-formats.c index 4605ed5d75c..7a51a531d31 100644 --- a/src/vppinfra/std-formats.c +++ b/src/vppinfra/std-formats.c @@ -455,6 +455,72 @@ format_hexdump (u8 * s, va_list * args) return s; } +__clib_export u8 * +format_hexdump_u16 (u8 *s, va_list *args) +{ + u16 *data = va_arg (*args, u16 *); + u32 len = va_arg (*args, u32); + u32 indent = format_get_indent (s); + + if (!len) + return s; + + for (int i = 0; i < len; i++) + { + if (i % 8 == 0) + { + s = format (s, "%s%U%05x: ", i ? "\n" : "", format_white_space, + i ? indent : 0, i * 2); + } + s = format (s, " %04lx", data[i]); + } + return s; +} + +__clib_export u8 * +format_hexdump_u32 (u8 *s, va_list *args) +{ + u32 *data = va_arg (*args, u32 *); + u32 len = va_arg (*args, u32); + u32 indent = format_get_indent (s); + + if (!len) + return s; + + for (int i = 0; i < len; i++) + { + if (i % 4 == 0) + { + s = format (s, "%s%U%05x: ", i ? "\n" : "", format_white_space, + i ? indent : 0, i * 4); + } + s = format (s, " %08lx", data[i]); + } + return s; +} + +__clib_export u8 * +format_hexdump_u64 (u8 *s, va_list *args) +{ + u64 *data = va_arg (*args, u64 *); + u32 len = va_arg (*args, u32); + u32 indent = format_get_indent (s); + + if (!len) + return s; + + for (int i = 0; i < len; i++) + { + if (i % 2 == 0) + { + s = format (s, "%s%U%05x: ", i ? "\n" : "", format_white_space, + i ? indent : 0, i * 8); + } + s = format (s, " %016lx", data[i]); + } + return s; +} + __clib_export u8 * format_uword_bitmap (u8 *s, va_list *args) {