Fix dump output in qemu-io.
The dump output was not nicely formatted for bytes larger than 0x7f, because signed values expanded to sizeof(int) bytes. So for example 0xab did not print as "ab", but as "ffffffab". I also cleaned the function prototype, which avoids new type casts and allows to remove an existing type cast. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
ffe6370c9f
commit
3abcdf4904
@ -54,20 +54,20 @@ static void qemu_io_free(void *p)
|
||||
}
|
||||
|
||||
static void
|
||||
dump_buffer(char *buffer, int64_t offset, int len)
|
||||
dump_buffer(const void *buffer, int64_t offset, int len)
|
||||
{
|
||||
int i, j;
|
||||
char *p;
|
||||
const uint8_t *p;
|
||||
|
||||
for (i = 0, p = buffer; i < len; i += 16) {
|
||||
char *s = p;
|
||||
const uint8_t *s = p;
|
||||
|
||||
printf("%08llx: ", (unsigned long long)offset + i);
|
||||
for (j = 0; j < 16 && i + j < len; j++, p++)
|
||||
printf("%02x ", *p);
|
||||
printf(" ");
|
||||
for (j = 0; j < 16 && i + j < len; j++, s++) {
|
||||
if (isalnum((int)*s))
|
||||
if (isalnum(*s))
|
||||
printf("%c", *s);
|
||||
else
|
||||
printf(".");
|
||||
|
Loading…
Reference in New Issue
Block a user