Commit e46c0b18 authored by Eyal Moscovici's avatar Eyal Moscovici Committed by Eric Blake
Browse files

qemu-img: refactor dump_map_entry JSON format output



Previously dump_map_entry identified whether we need to start a new JSON
array based on whether start address == 0. In this refactor we remove
this assumption as in following patches we will allow map to start from
an arbitrary position.

Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Acked-by: default avatarMark Kanda <mark.kanda@oracle.com>
Signed-off-by: default avatarEyal Moscovici <eyal.moscovici@oracle.com>
Message-Id: <20200513133629.18508-4-eyal.moscovici@oracle.com>
Signed-off-by: default avatarEric Blake <eblake@redhat.com>
parent 8f282e83
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -2902,9 +2902,8 @@ static int dump_map_entry(OutputFormat output_format, MapEntry *e,
        }
        break;
    case OFORMAT_JSON:
        printf("%s{ \"start\": %"PRId64", \"length\": %"PRId64","
        printf("{ \"start\": %"PRId64", \"length\": %"PRId64","
               " \"depth\": %"PRId64", \"zero\": %s, \"data\": %s",
               (e->start == 0 ? "[" : ",\n"),
               e->start, e->length, e->depth,
               e->zero ? "true" : "false",
               e->data ? "true" : "false");
@@ -2913,8 +2912,8 @@ static int dump_map_entry(OutputFormat output_format, MapEntry *e,
        }
        putchar('}');

        if (!next) {
            printf("]\n");
        if (next) {
            puts(",");
        }
        break;
    }
@@ -3089,6 +3088,8 @@ static int img_map(int argc, char **argv)

    if (output_format == OFORMAT_HUMAN) {
        printf("%-16s%-16s%-16s%s\n", "Offset", "Length", "Mapped to", "File");
    } else if (output_format == OFORMAT_JSON) {
        putchar('[');
    }

    length = blk_getlength(blk);
@@ -3125,6 +3126,9 @@ static int img_map(int argc, char **argv)
    }

    ret = dump_map_entry(output_format, &curr, NULL);
    if (output_format == OFORMAT_JSON) {
        puts("]");
    }

out:
    blk_unref(blk);