@@ -252,12 +252,19 @@ static inline const char *yes_no(bool b)
*/
int parse_debug_env(const char *name, int max, int initial);
-/*
+/**
+ * qemu_hexdump_line:
+ * @line: Buffer to be filled by the hexadecimal/ASCII dump
+ * @bufptr: Buffer to dump
+ * @offset: Offset within @bufptr to start the dump
+ * @len: Length of the bytes do dump
+ * @ascii: Replace non-ASCII characters by the dot symbol
+ *
* Hexdump a line of a byte buffer into a hexadecimal/ASCII buffer
*/
#define QEMU_HEXDUMP_LINE_BYTES 16 /* Number of bytes to dump */
#define QEMU_HEXDUMP_LINE_LEN 75 /* Number of characters in line */
-void qemu_hexdump_line(char *line, unsigned int b, const void *bufptr,
+void qemu_hexdump_line(char *line, const void *bufptr, unsigned offset,
unsigned int len, bool ascii);
/*
@@ -941,12 +941,12 @@ static int vhost_vdpa_set_config_call(struct vhost_dev *dev,
static void vhost_vdpa_dump_config(struct vhost_dev *dev, const uint8_t *config,
uint32_t config_len)
{
- int b, len;
+ int ofs, len;
char line[QEMU_HEXDUMP_LINE_LEN];
- for (b = 0; b < config_len; b += 16) {
- len = config_len - b;
- qemu_hexdump_line(line, b, config, len, false);
+ for (ofs = 0; ofs < config_len; ofs += 16) {
+ len = config_len - ofs;
+ qemu_hexdump_line(line, config, ofs, len, false);
trace_vhost_vdpa_dump_config(dev, line);
}
}
@@ -16,7 +16,7 @@
#include "qemu/osdep.h"
#include "qemu/cutils.h"
-void qemu_hexdump_line(char *line, unsigned int b, const void *bufptr,
+void qemu_hexdump_line(char *line, const void *bufptr, unsigned offset,
unsigned int len, bool ascii)
{
const char *buf = bufptr;
@@ -26,13 +26,13 @@ void qemu_hexdump_line(char *line, unsigned int b, const void *bufptr,
len = QEMU_HEXDUMP_LINE_BYTES;
}
- line += snprintf(line, 6, "%04x:", b);
+ line += snprintf(line, 6, "%04x:", offset);
for (i = 0; i < QEMU_HEXDUMP_LINE_BYTES; i++) {
if ((i % 4) == 0) {
*line++ = ' ';
}
if (i < len) {
- line += sprintf(line, " %02x", (unsigned char)buf[b + i]);
+ line += sprintf(line, " %02x", (unsigned char)buf[offset + i]);
} else {
line += sprintf(line, " ");
}
@@ -40,7 +40,7 @@ void qemu_hexdump_line(char *line, unsigned int b, const void *bufptr,
if (ascii) {
*line++ = ' ';
for (i = 0; i < len; i++) {
- c = buf[b + i];
+ c = buf[offset + i];
if (c < ' ' || c > '~') {
c = '.';
}
@@ -53,12 +53,12 @@ void qemu_hexdump_line(char *line, unsigned int b, const void *bufptr,
void qemu_hexdump(FILE *fp, const char *prefix,
const void *bufptr, size_t size)
{
- unsigned int b, len;
+ unsigned int ofs, len;
char line[QEMU_HEXDUMP_LINE_LEN];
- for (b = 0; b < size; b += QEMU_HEXDUMP_LINE_BYTES) {
- len = size - b;
- qemu_hexdump_line(line, b, bufptr, len, true);
+ for (ofs = 0; ofs < size; ofs += QEMU_HEXDUMP_LINE_BYTES) {
+ len = size - ofs;
+ qemu_hexdump_line(line, bufptr, ofs, len, true);
fprintf(fp, "%s: %s\n", prefix, line);
}
@offset argument is more descriptive than @b. Inverse @bufptr <-> @offset arguments order. Document qemu_hexdump_line(). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- include/qemu/cutils.h | 11 +++++++++-- hw/virtio/vhost-vdpa.c | 8 ++++---- util/hexdump.c | 16 ++++++++-------- 3 files changed, 21 insertions(+), 14 deletions(-)