On Tue, Mar 10, 2015 at 05:26:35PM +0100, Peter Krempa wrote: > The function that is extracting block stats data from the QMP monitor > reply contains a lot of repeated code. Since I'd be changing each of the > copies in the next patch, lets convert it to a macro right away. > --- > src/qemu/qemu_monitor_json.c | 77 > ++++++++++---------------------------------- > 1 file changed, 17 insertions(+), 60 deletions(-) >
> +#define QEMU_MONITOR_JSON_BLOCK_STAT(NAME, VAR, MANDATORY)
> \
> + if (MANDATORY || virJSONValueObjectHasKey(stats, NAME)) {
> \
> + if (virJSONValueObjectGetNumberLong(stats, NAME, &VAR) < 0) {
> \
> + virReportError(VIR_ERR_INTERNAL_ERROR,
> \
> + _("cannot read %s statistic"), NAME);
> \
> + goto cleanup;
> \
> + }
> \
> + }
> + QEMU_MONITOR_JSON_BLOCK_STAT("rd_bytes", bstats->rd_bytes, true);
> + QEMU_MONITOR_JSON_BLOCK_STAT("wr_bytes", bstats->wr_bytes, true);
> + QEMU_MONITOR_JSON_BLOCK_STAT("rd_operations", bstats->rd_req, true);
> + QEMU_MONITOR_JSON_BLOCK_STAT("wr_operations", bstats->wr_req, true);
> + QEMU_MONITOR_JSON_BLOCK_STAT("rd_total_time_ns",
> bstats->rd_total_times, false);
> + QEMU_MONITOR_JSON_BLOCK_STAT("wr_total_time_ns",
> bstats->wr_total_times, false);
> + QEMU_MONITOR_JSON_BLOCK_STAT("flush_operations", bstats->flush_req,
> false);
> + QEMU_MONITOR_JSON_BLOCK_STAT("flush_total_time_ns",
> bstats->flush_total_times, false);
> +#undef QEMU_MONITOR_JSON_BLOCK_STAT
>
This macro could also use a verb.
Jan
signature.asc
Description: Digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
