static void aio_read_done(void *opaque, int ret)

{

    struct aio_ctx *ctx = opaque;

    struct timeval t2;



    gettimeofday(&t2, NULL);



    if (ret < 0) {

        printf("readv failed: %s\n", strerror(-ret));

        goto out;

    }



    if (ctx->Pflag) {

        void *cmp_buf = g_malloc(ctx->qiov.size);



        memset(cmp_buf, ctx->pattern, ctx->qiov.size);

        if (memcmp(ctx->buf, cmp_buf, ctx->qiov.size)) {

            printf("Pattern verification failed at offset %"

                   PRId64 ", %zd bytes\n", ctx->offset, ctx->qiov.size);

        }

        g_free(cmp_buf);

    }



    if (ctx->qflag) {

        goto out;

    }



    if (ctx->vflag) {

        dump_buffer(ctx->buf, ctx->offset, ctx->qiov.size);

    }



    /* Finally, report back -- -C gives a parsable format */

    t2 = tsub(t2, ctx->t1);

    print_report("read", &t2, ctx->offset, ctx->qiov.size,

                 ctx->qiov.size, 1, ctx->Cflag);

out:

    qemu_io_free(ctx->buf);


    g_free(ctx);

}
static void aio_read_done(void *opaque, int ret)

{

    struct aio_ctx *ctx = opaque;

    struct timeval t2;



    gettimeofday(&t2, NULL);



    if (ret < 0) {

        printf("readv failed: %s\n", strerror(-ret));

        goto out;

    }



    if (ctx->Pflag) {

        void *cmp_buf = g_malloc(ctx->qiov.size);



        memset(cmp_buf, ctx->pattern, ctx->qiov.size);

        if (memcmp(ctx->buf, cmp_buf, ctx->qiov.size)) {

            printf("Pattern verification failed at offset %"

                   PRId64 ", %zd bytes\n", ctx->offset, ctx->qiov.size);

        }

        g_free(cmp_buf);

    }



    if (ctx->qflag) {

        goto out;

    }



    if (ctx->vflag) {

        dump_buffer(ctx->buf, ctx->offset, ctx->qiov.size);

    }



    

    t2 = tsub(t2, ctx->t1);

    print_report("read", &t2, ctx->offset, ctx->qiov.size,

                 ctx->qiov.size, 1, ctx->Cflag);

out:

    qemu_io_free(ctx->buf);


    g_free(ctx);

}
static void FUNC_0(void *VAR_0, int VAR_1)

{

    struct aio_ctx *VAR_2 = VAR_0;

    struct timeval VAR_3;



    gettimeofday(&VAR_3, NULL);



    if (VAR_1 < 0) {

        printf("readv failed: %s\n", strerror(-VAR_1));

        goto out;

    }



    if (VAR_2->Pflag) {

        void *VAR_4 = g_malloc(VAR_2->qiov.size);



        memset(VAR_4, VAR_2->pattern, VAR_2->qiov.size);

        if (memcmp(VAR_2->buf, VAR_4, VAR_2->qiov.size)) {

            printf("Pattern verification failed at offset %"

                   PRId64 ", %zd bytes\n", VAR_2->offset, VAR_2->qiov.size);

        }

        g_free(VAR_4);

    }



    if (VAR_2->qflag) {

        goto out;

    }



    if (VAR_2->vflag) {

        dump_buffer(VAR_2->buf, VAR_2->offset, VAR_2->qiov.size);

    }



    

    VAR_3 = tsub(VAR_3, VAR_2->t1);

    print_report("read", &VAR_3, VAR_2->offset, VAR_2->qiov.size,

                 VAR_2->qiov.size, 1, VAR_2->Cflag);

out:

    qemu_io_free(VAR_2->buf);


    g_free(VAR_2);

}
static void FUNC_0(void *VAR_0, int VAR_1)
{ struct aio_ctx *VAR_2 = VAR_0; struct timeval VAR_3; gettimeofday(&VAR_3, NULL); if (VAR_1 < 0) { printf("readv failed: %s\n", strerror(-VAR_1)); goto out; } if (VAR_2->Pflag) { void *VAR_4 = g_malloc(VAR_2->qiov.size); memset(VAR_4, VAR_2->pattern, VAR_2->qiov.size); if (memcmp(VAR_2->buf, VAR_4, VAR_2->qiov.size)) { printf("Pattern verification failed at offset %"
PRId64 ", %zd bytes\n", VAR_2->offset, VAR_2->qiov.size); } g_free(VAR_4); } if (VAR_2->qflag) { goto out; } if (VAR_2->vflag) { dump_buffer(VAR_2->buf, VAR_2->offset, VAR_2->qiov.size); } VAR_3 = tsub(VAR_3, VAR_2->t1); print_report("read", &VAR_3, VAR_2->offset, VAR_2->qiov.size,
VAR_2->qiov.size, 1, VAR_2->Cflag); out:
qemu_io_free(VAR_2->buf); g_free(VAR_2); }