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));

		return;

	}



	if (ctx->Pflag) {

		void *cmp_buf = 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 %lld, "

				"%zd bytes\n",

				(long long) ctx->offset, ctx->qiov.size);

		}

		free(cmp_buf);

	}



	if (ctx->qflag) {

		return;

	}



	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);



	qemu_io_free(ctx->buf);

	free(ctx);

}

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));

		return;

	}



	if (ctx->Pflag) {

		void *cmp_buf = 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 %lld, "

				"%zd bytes\n",

				(long long) ctx->offset, ctx->qiov.size);

		}

		free(cmp_buf);

	}



	if (ctx->qflag) {

		return;

	}



	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);



	qemu_io_free(ctx->buf);

	free(ctx);

}

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));

		return;

	}



	if (VAR_2->Pflag) {

		void *VAR_4 = 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 %lld, "

				"%zd bytes\n",

				(long long) VAR_2->offset, VAR_2->qiov.size);

		}

		free(VAR_4);

	}



	if (VAR_2->qflag) {

		return;

	}



	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);



	qemu_io_free(VAR_2->buf);

	free(VAR_2);

}

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)); return; } if (VAR_2->Pflag) { void *VAR_4 = 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 %lld, "
"%zd bytes\n",
(long long) VAR_2->offset, VAR_2->qiov.size); } free(VAR_4); } if (VAR_2->qflag) { return; } 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); qemu_io_free(VAR_2->buf); free(VAR_2); }