mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: Use macro to set block stats typed parameters
All the setters are the same code except for parameter name and variable, so they can be converted to a macro to save a ton of duplicated code.
This commit is contained in:
parent
6cc5080a09
commit
7e9fb15145
@ -10575,7 +10575,6 @@ qemuDomainBlockStatsFlags(virDomainPtr dom,
|
|||||||
qemuDomainObjPrivatePtr priv;
|
qemuDomainObjPrivatePtr priv;
|
||||||
long long rd_req, rd_bytes, wr_req, wr_bytes, rd_total_times;
|
long long rd_req, rd_bytes, wr_req, wr_bytes, rd_total_times;
|
||||||
long long wr_total_times, flush_req, flush_total_times, errs;
|
long long wr_total_times, flush_req, flush_total_times, errs;
|
||||||
virTypedParameterPtr param;
|
|
||||||
char *diskAlias = NULL;
|
char *diskAlias = NULL;
|
||||||
|
|
||||||
virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1);
|
virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1);
|
||||||
@ -10656,75 +10655,29 @@ qemuDomainBlockStatsFlags(virDomainPtr dom,
|
|||||||
tmp = 0;
|
tmp = 0;
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
|
||||||
if (tmp < *nparams && wr_bytes != -1) {
|
#define QEMU_BLOCK_STATS_ASSIGN_PARAM(VAR, NAME) \
|
||||||
param = ¶ms[tmp];
|
if (tmp < *nparams && (VAR) != -1) { \
|
||||||
if (virTypedParameterAssign(param, VIR_DOMAIN_BLOCK_STATS_WRITE_BYTES,
|
if (virTypedParameterAssign(params + tmp, NAME, VIR_TYPED_PARAM_LLONG,\
|
||||||
VIR_TYPED_PARAM_LLONG, wr_bytes) < 0)
|
(VAR)) < 0) \
|
||||||
goto endjob;
|
goto endjob; \
|
||||||
tmp++;
|
tmp++; \
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tmp < *nparams && wr_req != -1) {
|
QEMU_BLOCK_STATS_ASSIGN_PARAM(wr_bytes, VIR_DOMAIN_BLOCK_STATS_WRITE_BYTES);
|
||||||
param = ¶ms[tmp];
|
QEMU_BLOCK_STATS_ASSIGN_PARAM(wr_req, VIR_DOMAIN_BLOCK_STATS_WRITE_REQ);
|
||||||
if (virTypedParameterAssign(param, VIR_DOMAIN_BLOCK_STATS_WRITE_REQ,
|
|
||||||
VIR_TYPED_PARAM_LLONG, wr_req) < 0)
|
|
||||||
goto endjob;
|
|
||||||
tmp++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tmp < *nparams && rd_bytes != -1) {
|
QEMU_BLOCK_STATS_ASSIGN_PARAM(rd_bytes, VIR_DOMAIN_BLOCK_STATS_READ_BYTES);
|
||||||
param = ¶ms[tmp];
|
QEMU_BLOCK_STATS_ASSIGN_PARAM(rd_req, VIR_DOMAIN_BLOCK_STATS_READ_REQ);
|
||||||
if (virTypedParameterAssign(param, VIR_DOMAIN_BLOCK_STATS_READ_BYTES,
|
|
||||||
VIR_TYPED_PARAM_LLONG, rd_bytes) < 0)
|
|
||||||
goto endjob;
|
|
||||||
tmp++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tmp < *nparams && rd_req != -1) {
|
QEMU_BLOCK_STATS_ASSIGN_PARAM(flush_req, VIR_DOMAIN_BLOCK_STATS_FLUSH_REQ);
|
||||||
param = ¶ms[tmp];
|
|
||||||
if (virTypedParameterAssign(param, VIR_DOMAIN_BLOCK_STATS_READ_REQ,
|
|
||||||
VIR_TYPED_PARAM_LLONG, rd_req) < 0)
|
|
||||||
goto endjob;
|
|
||||||
tmp++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tmp < *nparams && flush_req != -1) {
|
QEMU_BLOCK_STATS_ASSIGN_PARAM(wr_total_times,
|
||||||
param = ¶ms[tmp];
|
VIR_DOMAIN_BLOCK_STATS_WRITE_TOTAL_TIMES);
|
||||||
if (virTypedParameterAssign(param, VIR_DOMAIN_BLOCK_STATS_FLUSH_REQ,
|
QEMU_BLOCK_STATS_ASSIGN_PARAM(rd_total_times,
|
||||||
VIR_TYPED_PARAM_LLONG, flush_req) < 0)
|
VIR_DOMAIN_BLOCK_STATS_READ_TOTAL_TIMES);
|
||||||
goto endjob;
|
QEMU_BLOCK_STATS_ASSIGN_PARAM(flush_total_times,
|
||||||
tmp++;
|
VIR_DOMAIN_BLOCK_STATS_FLUSH_TOTAL_TIMES);
|
||||||
}
|
#undef QEMU_BLOCK_STATS_ASSIGN_PARAM
|
||||||
|
|
||||||
if (tmp < *nparams && wr_total_times != -1) {
|
|
||||||
param = ¶ms[tmp];
|
|
||||||
if (virTypedParameterAssign(param,
|
|
||||||
VIR_DOMAIN_BLOCK_STATS_WRITE_TOTAL_TIMES,
|
|
||||||
VIR_TYPED_PARAM_LLONG, wr_total_times) < 0)
|
|
||||||
goto endjob;
|
|
||||||
tmp++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tmp < *nparams && rd_total_times != -1) {
|
|
||||||
param = ¶ms[tmp];
|
|
||||||
if (virTypedParameterAssign(param,
|
|
||||||
VIR_DOMAIN_BLOCK_STATS_READ_TOTAL_TIMES,
|
|
||||||
VIR_TYPED_PARAM_LLONG, rd_total_times) < 0)
|
|
||||||
goto endjob;
|
|
||||||
tmp++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tmp < *nparams && flush_total_times != -1) {
|
|
||||||
param = ¶ms[tmp];
|
|
||||||
if (virTypedParameterAssign(param,
|
|
||||||
VIR_DOMAIN_BLOCK_STATS_FLUSH_TOTAL_TIMES,
|
|
||||||
VIR_TYPED_PARAM_LLONG,
|
|
||||||
flush_total_times) < 0)
|
|
||||||
goto endjob;
|
|
||||||
tmp++;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Field 'errs' is meaningless for QEMU, won't set it. */
|
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
*nparams = tmp;
|
*nparams = tmp;
|
||||||
|
Loading…
Reference in New Issue
Block a user