static void dump_map_entry(OutputFormat output_format, MapEntry *e,

                           MapEntry *next)

{

    switch (output_format) {

    case OFORMAT_HUMAN:

        if ((e->flags & BDRV_BLOCK_DATA) &&

            !(e->flags & BDRV_BLOCK_OFFSET_VALID)) {

            error_report("File contains external, encrypted or compressed clusters.");

            exit(1);

        }

        if ((e->flags & (BDRV_BLOCK_DATA|BDRV_BLOCK_ZERO)) == BDRV_BLOCK_DATA) {

            printf("%#-16"PRIx64"%#-16"PRIx64"%#-16"PRIx64"%s\n",

                   e->start, e->length, e->offset, e->bs->filename);

        }

        /* This format ignores the distinction between 0, ZERO and ZERO|DATA.

         * Modify the flags here to allow more coalescing.

         */

        if (next &&

            (next->flags & (BDRV_BLOCK_DATA|BDRV_BLOCK_ZERO)) != BDRV_BLOCK_DATA) {

            next->flags &= ~BDRV_BLOCK_DATA;

            next->flags |= BDRV_BLOCK_ZERO;

        }

        break;

    case OFORMAT_JSON:

        printf("%s{ \"start\": %"PRId64", \"length\": %"PRId64", \"depth\": %d,"

               " \"zero\": %s, \"data\": %s",

               (e->start == 0 ? "[" : ",\n"),

               e->start, e->length, e->depth,

               (e->flags & BDRV_BLOCK_ZERO) ? "true" : "false",

               (e->flags & BDRV_BLOCK_DATA) ? "true" : "false");

        if (e->flags & BDRV_BLOCK_OFFSET_VALID) {

            printf(", 'offset': %"PRId64"", e->offset);

        }

        putchar('}');



        if (!next) {

            printf("]\n");

        }

        break;

    }

}

static void dump_map_entry(OutputFormat output_format, MapEntry *e,

                           MapEntry *next)

{

    switch (output_format) {

    case OFORMAT_HUMAN:

        if ((e->flags & BDRV_BLOCK_DATA) &&

            !(e->flags & BDRV_BLOCK_OFFSET_VALID)) {

            error_report("File contains external, encrypted or compressed clusters.");

            exit(1);

        }

        if ((e->flags & (BDRV_BLOCK_DATA|BDRV_BLOCK_ZERO)) == BDRV_BLOCK_DATA) {

            printf("%#-16"PRIx64"%#-16"PRIx64"%#-16"PRIx64"%s\n",

                   e->start, e->length, e->offset, e->bs->filename);

        }

        





        if (next &&

            (next->flags & (BDRV_BLOCK_DATA|BDRV_BLOCK_ZERO)) != BDRV_BLOCK_DATA) {

            next->flags &= ~BDRV_BLOCK_DATA;

            next->flags |= BDRV_BLOCK_ZERO;

        }

        break;

    case OFORMAT_JSON:

        printf("%s{ \"start\": %"PRId64", \"length\": %"PRId64", \"depth\": %d,"

               " \"zero\": %s, \"data\": %s",

               (e->start == 0 ? "[" : ",\n"),

               e->start, e->length, e->depth,

               (e->flags & BDRV_BLOCK_ZERO) ? "true" : "false",

               (e->flags & BDRV_BLOCK_DATA) ? "true" : "false");

        if (e->flags & BDRV_BLOCK_OFFSET_VALID) {

            printf(", 'offset': %"PRId64"", e->offset);

        }

        putchar('}');



        if (!next) {

            printf("]\n");

        }

        break;

    }

}

            printf(", 'offset': %"PRId64"", e->offset);
static void FUNC_0(OutputFormat VAR_0, MapEntry *VAR_1,

                           MapEntry *VAR_2)

{

    switch (VAR_0) {

    case OFORMAT_HUMAN:

        if ((VAR_1->flags & BDRV_BLOCK_DATA) &&

            !(VAR_1->flags & BDRV_BLOCK_OFFSET_VALID)) {

            error_report("File contains external, encrypted or compressed clusters.");

            exit(1);

        }

        if ((VAR_1->flags & (BDRV_BLOCK_DATA|BDRV_BLOCK_ZERO)) == BDRV_BLOCK_DATA) {

            printf("%#-16"PRIx64"%#-16"PRIx64"%#-16"PRIx64"%s\n",

                   VAR_1->start, VAR_1->length, VAR_1->offset, VAR_1->bs->filename);

        }

        





        if (VAR_2 &&

            (VAR_2->flags & (BDRV_BLOCK_DATA|BDRV_BLOCK_ZERO)) != BDRV_BLOCK_DATA) {

            VAR_2->flags &= ~BDRV_BLOCK_DATA;

            VAR_2->flags |= BDRV_BLOCK_ZERO;

        }

        break;

    case OFORMAT_JSON:

        printf("%s{ \"start\": %"PRId64", \"length\": %"PRId64", \"depth\": %d,"

               " \"zero\": %s, \"data\": %s",

               (VAR_1->start == 0 ? "[" : ",\n"),

               VAR_1->start, VAR_1->length, VAR_1->depth,

               (VAR_1->flags & BDRV_BLOCK_ZERO) ? "true" : "false",

               (VAR_1->flags & BDRV_BLOCK_DATA) ? "true" : "false");

        if (VAR_1->flags & BDRV_BLOCK_OFFSET_VALID) {

            printf(", 'offset': %"PRId64"", VAR_1->offset);

        }

        putchar('}');



        if (!VAR_2) {

            printf("]\n");

        }

        break;

    }

}

static void FUNC_0(OutputFormat VAR_0, MapEntry *VAR_1,
MapEntry *VAR_2)
{ switch (VAR_0) { case OFORMAT_HUMAN:
if ((VAR_1->flags & BDRV_BLOCK_DATA) &&
!(VAR_1->flags & BDRV_BLOCK_OFFSET_VALID)) { error_report("File contains external, encrypted or compressed clusters."); exit(1); } if ((VAR_1->flags & (BDRV_BLOCK_DATA|BDRV_BLOCK_ZERO)) == BDRV_BLOCK_DATA) { printf("%#-16"PRIx64"%#-16"PRIx64"%#-16"PRIx64"%s\n",
VAR_1->start, VAR_1->length, VAR_1->offset, VAR_1->bs->filename); } if (VAR_2 &&
(VAR_2->flags & (BDRV_BLOCK_DATA|BDRV_BLOCK_ZERO)) != BDRV_BLOCK_DATA) { VAR_2->flags &= ~BDRV_BLOCK_DATA; VAR_2->flags |= BDRV_BLOCK_ZERO; } break; case OFORMAT_JSON:
printf("%s{ \"start\": %"PRId64", \"length\": %"PRId64", \"depth\": %d," " \"zero\": %s, \"data\": %s",
(VAR_1->start == 0 ? "[" : ",\n"),
VAR_1->start, VAR_1->length, VAR_1->depth,
(VAR_1->flags & BDRV_BLOCK_ZERO) ? "true" : "false",
(VAR_1->flags & BDRV_BLOCK_DATA) ? "true" : "false"); if (VAR_1->flags & BDRV_BLOCK_OFFSET_VALID) { printf(", 'offset': %"PRId64"", VAR_1->offset); } putchar('}'); if (!VAR_2) { printf("]\n"); } break; } }