[libvirt] [PATCHv2 0/7] Fix checking of NULL monitor and clean up code

This is a v2 to https://www.redhat.com/archives/libvir-list/2015-April/msg00416.html This fixes all commands and cleans up the code in the process. Peter Krempa (7): qemu: monitor: Clean up coding style qemu: monitor: Sanitize control flow in qemuMonitorSetCapabilities qemu: monitor: Ensure that qemuMonitorSetLink is called with non-null name qemu: monitor: Don't use 'ret' variable where not necessary qemu: monitor: @running in qemuMonitorGetStatus is always non-NULL qemu: monitor: Fix qemuMonitorGetAllBlockStatsInfo with HMP qemu: monitor: Refactor and fix monitor checking src/qemu/qemu_monitor.c | 2166 +++++++++++++++++------------------------------ src/qemu/qemu_monitor.h | 24 +- src/qemu/qemu_process.c | 6 + 3 files changed, 810 insertions(+), 1386 deletions(-) -- 2.3.5

Fix line spacing between functions, ensure that function return type is on a separate line and reflow arguments for VIR_DEBUG statements. --- src/qemu/qemu_monitor.c | 836 ++++++++++++++++++++++++++++-------------------- 1 file changed, 492 insertions(+), 344 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 2846605..398c236 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -144,7 +144,8 @@ VIR_ENUM_IMPL(qemuMonitorBlockIOStatus, QEMU_MONITOR_BLOCK_IO_STATUS_LAST, "ok", "failed", "nospace") -char *qemuMonitorEscapeArg(const char *in) +char * +qemuMonitorEscapeArg(const char *in) { int len = 0; size_t i, j; @@ -196,7 +197,9 @@ char *qemuMonitorEscapeArg(const char *in) return out; } -char *qemuMonitorUnescapeArg(const char *in) + +char * +qemuMonitorUnescapeArg(const char *in) { size_t i, j; char *out; @@ -234,9 +237,11 @@ char *qemuMonitorUnescapeArg(const char *in) return out; } + #if DEBUG_RAW_IO # include <c-ctype.h> -static char * qemuMonitorEscapeNonPrintable(const char *text) +static char * +qemuMonitorEscapeNonPrintable(const char *text) { size_t i; virBuffer buf = VIR_BUFFER_INITIALIZER; @@ -252,7 +257,9 @@ static char * qemuMonitorEscapeNonPrintable(const char *text) } #endif -static void qemuMonitorDispose(void *obj) + +static void +qemuMonitorDispose(void *obj) { qemuMonitorPtr mon = obj; @@ -325,6 +332,7 @@ qemuMonitorOpenUnix(const char *monitor, pid_t cpid) return -1; } + static int qemuMonitorOpenPty(const char *monitor) { @@ -471,6 +479,7 @@ qemuMonitorIOWriteWithFD(qemuMonitorPtr mon, return ret; } + /* * Called when the monitor is able to write data * Call this function while holding the monitor lock. @@ -521,6 +530,7 @@ qemuMonitorIOWrite(qemuMonitorPtr mon) return done; } + /* * Called when the monitor has incoming data to read * Call this function while holding the monitor lock. @@ -573,7 +583,8 @@ qemuMonitorIORead(qemuMonitorPtr mon) } -static void qemuMonitorUpdateWatch(qemuMonitorPtr mon) +static void +qemuMonitorUpdateWatch(qemuMonitorPtr mon) { int events = VIR_EVENT_HANDLE_HANGUP | @@ -847,6 +858,7 @@ qemuMonitorOpenInternal(virDomainObjPtr vm, return NULL; } + qemuMonitorPtr qemuMonitorOpen(virDomainObjPtr vm, virDomainChrSourceDefPtr config, @@ -884,17 +896,19 @@ qemuMonitorOpen(virDomainObjPtr vm, } -qemuMonitorPtr qemuMonitorOpenFD(virDomainObjPtr vm, - int sockfd, - bool json, - qemuMonitorCallbacksPtr cb, - void *opaque) +qemuMonitorPtr +qemuMonitorOpenFD(virDomainObjPtr vm, + int sockfd, + bool json, + qemuMonitorCallbacksPtr cb, + void *opaque) { return qemuMonitorOpenInternal(vm, sockfd, true, json, cb, opaque); } -void qemuMonitorClose(qemuMonitorPtr mon) +void +qemuMonitorClose(qemuMonitorPtr mon) { if (!mon) return; @@ -943,7 +957,8 @@ void qemuMonitorClose(qemuMonitorPtr mon) } -char *qemuMonitorNextCommandID(qemuMonitorPtr mon) +char * +qemuMonitorNextCommandID(qemuMonitorPtr mon) { char *id; @@ -952,8 +967,9 @@ char *qemuMonitorNextCommandID(qemuMonitorPtr mon) } -int qemuMonitorSend(qemuMonitorPtr mon, - qemuMonitorMessagePtr msg) +int +qemuMonitorSend(qemuMonitorPtr mon, + qemuMonitorMessagePtr msg) { int ret = -1; @@ -1003,6 +1019,7 @@ qemuMonitorGetOptions(qemuMonitorPtr mon) return mon->options; } + void qemuMonitorSetOptions(qemuMonitorPtr mon, virJSONValuePtr options) { @@ -1190,10 +1207,11 @@ qemuMonitorUpdateVideoMemorySize(qemuMonitorPtr mon, } -int qemuMonitorHMPCommandWithFd(qemuMonitorPtr mon, - const char *cmd, - int scm_fd, - char **reply) +int +qemuMonitorHMPCommandWithFd(qemuMonitorPtr mon, + const char *cmd, + int scm_fd, + char **reply) { char *json_cmd = NULL; int ret = -1; @@ -1217,6 +1235,7 @@ int qemuMonitorHMPCommandWithFd(qemuMonitorPtr mon, return ret; } + /* Ensure proper locking around callbacks. */ #define QEMU_MONITOR_CALLBACK(mon, ret, callback, ...) \ do { \ @@ -1229,11 +1248,13 @@ int qemuMonitorHMPCommandWithFd(qemuMonitorPtr mon, virObjectUnref(mon); \ } while (0) -int qemuMonitorGetDiskSecret(qemuMonitorPtr mon, - virConnectPtr conn, - const char *path, - char **secret, - size_t *secretLen) + +int +qemuMonitorGetDiskSecret(qemuMonitorPtr mon, + virConnectPtr conn, + const char *path, + char **secret, + size_t *secretLen) { int ret = -1; *secret = NULL; @@ -1259,7 +1280,8 @@ qemuMonitorEmitEvent(qemuMonitorPtr mon, const char *event, } -int qemuMonitorEmitShutdown(qemuMonitorPtr mon) +int +qemuMonitorEmitShutdown(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1269,7 +1291,8 @@ int qemuMonitorEmitShutdown(qemuMonitorPtr mon) } -int qemuMonitorEmitReset(qemuMonitorPtr mon) +int +qemuMonitorEmitReset(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1279,7 +1302,8 @@ int qemuMonitorEmitReset(qemuMonitorPtr mon) } -int qemuMonitorEmitPowerdown(qemuMonitorPtr mon) +int +qemuMonitorEmitPowerdown(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1289,7 +1313,8 @@ int qemuMonitorEmitPowerdown(qemuMonitorPtr mon) } -int qemuMonitorEmitStop(qemuMonitorPtr mon) +int +qemuMonitorEmitStop(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1299,7 +1324,8 @@ int qemuMonitorEmitStop(qemuMonitorPtr mon) } -int qemuMonitorEmitResume(qemuMonitorPtr mon) +int +qemuMonitorEmitResume(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1309,7 +1335,8 @@ int qemuMonitorEmitResume(qemuMonitorPtr mon) } -int qemuMonitorEmitGuestPanic(qemuMonitorPtr mon) +int +qemuMonitorEmitGuestPanic(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1318,7 +1345,8 @@ int qemuMonitorEmitGuestPanic(qemuMonitorPtr mon) } -int qemuMonitorEmitRTCChange(qemuMonitorPtr mon, long long offset) +int +qemuMonitorEmitRTCChange(qemuMonitorPtr mon, long long offset) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1328,7 +1356,8 @@ int qemuMonitorEmitRTCChange(qemuMonitorPtr mon, long long offset) } -int qemuMonitorEmitWatchdog(qemuMonitorPtr mon, int action) +int +qemuMonitorEmitWatchdog(qemuMonitorPtr mon, int action) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1338,10 +1367,11 @@ int qemuMonitorEmitWatchdog(qemuMonitorPtr mon, int action) } -int qemuMonitorEmitIOError(qemuMonitorPtr mon, - const char *diskAlias, - int action, - const char *reason) +int +qemuMonitorEmitIOError(qemuMonitorPtr mon, + const char *diskAlias, + int action, + const char *reason) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1352,17 +1382,18 @@ int qemuMonitorEmitIOError(qemuMonitorPtr mon, } -int qemuMonitorEmitGraphics(qemuMonitorPtr mon, - int phase, - int localFamily, - const char *localNode, - const char *localService, - int remoteFamily, - const char *remoteNode, - const char *remoteService, - const char *authScheme, - const char *x509dname, - const char *saslUsername) +int +qemuMonitorEmitGraphics(qemuMonitorPtr mon, + int phase, + int localFamily, + const char *localNode, + const char *localService, + int remoteFamily, + const char *remoteNode, + const char *remoteService, + const char *authScheme, + const char *x509dname, + const char *saslUsername) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1374,9 +1405,11 @@ int qemuMonitorEmitGraphics(qemuMonitorPtr mon, return ret; } -int qemuMonitorEmitTrayChange(qemuMonitorPtr mon, - const char *devAlias, - int reason) + +int +qemuMonitorEmitTrayChange(qemuMonitorPtr mon, + const char *devAlias, + int reason) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1387,7 +1420,9 @@ int qemuMonitorEmitTrayChange(qemuMonitorPtr mon, return ret; } -int qemuMonitorEmitPMWakeup(qemuMonitorPtr mon) + +int +qemuMonitorEmitPMWakeup(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1397,7 +1432,9 @@ int qemuMonitorEmitPMWakeup(qemuMonitorPtr mon) return ret; } -int qemuMonitorEmitPMSuspend(qemuMonitorPtr mon) + +int +qemuMonitorEmitPMSuspend(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1407,7 +1444,9 @@ int qemuMonitorEmitPMSuspend(qemuMonitorPtr mon) return ret; } -int qemuMonitorEmitPMSuspendDisk(qemuMonitorPtr mon) + +int +qemuMonitorEmitPMSuspendDisk(qemuMonitorPtr mon) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1417,10 +1456,12 @@ int qemuMonitorEmitPMSuspendDisk(qemuMonitorPtr mon) return ret; } -int qemuMonitorEmitBlockJob(qemuMonitorPtr mon, - const char *diskAlias, - int type, - int status) + +int +qemuMonitorEmitBlockJob(qemuMonitorPtr mon, + const char *diskAlias, + int type, + int status) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1431,8 +1472,9 @@ int qemuMonitorEmitBlockJob(qemuMonitorPtr mon, } -int qemuMonitorEmitBalloonChange(qemuMonitorPtr mon, - unsigned long long actual) +int +qemuMonitorEmitBalloonChange(qemuMonitorPtr mon, + unsigned long long actual) { int ret = -1; VIR_DEBUG("mon=%p", mon); @@ -1482,7 +1524,8 @@ qemuMonitorEmitSerialChange(qemuMonitorPtr mon, } -int qemuMonitorSetCapabilities(qemuMonitorPtr mon) +int +qemuMonitorSetCapabilities(qemuMonitorPtr mon) { int ret; VIR_DEBUG("mon=%p", mon); @@ -1569,7 +1612,8 @@ qemuMonitorGetStatus(qemuMonitorPtr mon, } -int qemuMonitorSystemPowerdown(qemuMonitorPtr mon) +int +qemuMonitorSystemPowerdown(qemuMonitorPtr mon) { int ret; VIR_DEBUG("mon=%p", mon); @@ -1588,7 +1632,8 @@ int qemuMonitorSystemPowerdown(qemuMonitorPtr mon) } -int qemuMonitorSystemReset(qemuMonitorPtr mon) +int +qemuMonitorSystemReset(qemuMonitorPtr mon) { int ret; VIR_DEBUG("mon=%p", mon); @@ -1607,8 +1652,9 @@ int qemuMonitorSystemReset(qemuMonitorPtr mon) } -int qemuMonitorGetCPUInfo(qemuMonitorPtr mon, - int **pids) +int +qemuMonitorGetCPUInfo(qemuMonitorPtr mon, + int **pids) { int ret; VIR_DEBUG("mon=%p", mon); @@ -1626,9 +1672,11 @@ int qemuMonitorGetCPUInfo(qemuMonitorPtr mon, return ret; } -int qemuMonitorSetLink(qemuMonitorPtr mon, - const char *name, - virDomainNetInterfaceLinkState state) + +int +qemuMonitorSetLink(qemuMonitorPtr mon, + const char *name, + virDomainNetInterfaceLinkState state) { int ret; VIR_DEBUG("mon=%p, name=%p:%s, state=%u", mon, name, name, state); @@ -1646,8 +1694,10 @@ int qemuMonitorSetLink(qemuMonitorPtr mon, return ret; } -int qemuMonitorGetVirtType(qemuMonitorPtr mon, - int *virtType) + +int +qemuMonitorGetVirtType(qemuMonitorPtr mon, + int *virtType) { int ret; VIR_DEBUG("mon=%p", mon); @@ -1666,8 +1716,9 @@ int qemuMonitorGetVirtType(qemuMonitorPtr mon, } -int qemuMonitorGetBalloonInfo(qemuMonitorPtr mon, - unsigned long long *currmem) +int +qemuMonitorGetBalloonInfo(qemuMonitorPtr mon, + unsigned long long *currmem) { int ret; VIR_DEBUG("mon=%p", mon); @@ -1686,9 +1737,10 @@ int qemuMonitorGetBalloonInfo(qemuMonitorPtr mon, } -int qemuMonitorGetMemoryStats(qemuMonitorPtr mon, - virDomainMemoryStatPtr stats, - unsigned int nr_stats) +int +qemuMonitorGetMemoryStats(qemuMonitorPtr mon, + virDomainMemoryStatPtr stats, + unsigned int nr_stats) { int ret; VIR_DEBUG("mon=%p stats=%p nstats=%u", mon, stats, nr_stats); @@ -1710,6 +1762,7 @@ int qemuMonitorGetMemoryStats(qemuMonitorPtr mon, return ret; } + /** * qemuMonitorSetMemoryStatsPeriod: * @@ -1717,8 +1770,9 @@ int qemuMonitorGetMemoryStats(qemuMonitorPtr mon, * * Returns 0 on success and -1 on error, but does *not* set an error. */ -int qemuMonitorSetMemoryStatsPeriod(qemuMonitorPtr mon, - int period) +int +qemuMonitorSetMemoryStatsPeriod(qemuMonitorPtr mon, + int period) { int ret = -1; VIR_DEBUG("mon=%p period=%d", mon, period); @@ -1749,6 +1803,7 @@ int qemuMonitorSetMemoryStatsPeriod(qemuMonitorPtr mon, return ret; } + int qemuMonitorBlockIOStatusToError(const char *status) { @@ -1775,6 +1830,7 @@ qemuMonitorBlockIOStatusToError(const char *status) return -1; } + virHashTablePtr qemuMonitorGetBlockInfo(qemuMonitorPtr mon) { @@ -1805,6 +1861,7 @@ qemuMonitorGetBlockInfo(qemuMonitorPtr mon) return table; } + struct qemuDomainDiskInfo * qemuMonitorBlockInfoLookup(virHashTablePtr blockInfo, const char *dev) @@ -1896,9 +1953,10 @@ qemuMonitorBlockStatsUpdateCapacity(qemuMonitorPtr mon, } -int qemuMonitorGetBlockExtent(qemuMonitorPtr mon, - const char *dev_name, - unsigned long long *extent) +int +qemuMonitorGetBlockExtent(qemuMonitorPtr mon, + const char *dev_name, + unsigned long long *extent) { int ret; VIR_DEBUG("mon=%p, dev_name=%s", mon, dev_name); @@ -1911,9 +1969,11 @@ int qemuMonitorGetBlockExtent(qemuMonitorPtr mon, return ret; } -int qemuMonitorBlockResize(qemuMonitorPtr mon, - const char *device, - unsigned long long size) + +int +qemuMonitorBlockResize(qemuMonitorPtr mon, + const char *device, + unsigned long long size) { int ret; VIR_DEBUG("mon=%p, device=%s size=%llu", mon, device, size); @@ -1926,12 +1986,13 @@ int qemuMonitorBlockResize(qemuMonitorPtr mon, return ret; } -int qemuMonitorSetVNCPassword(qemuMonitorPtr mon, - const char *password) + +int +qemuMonitorSetVNCPassword(qemuMonitorPtr mon, + const char *password) { int ret; - VIR_DEBUG("mon=%p, password=%p", - mon, password); + VIR_DEBUG("mon=%p, password=%p", mon, password); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -1949,7 +2010,9 @@ int qemuMonitorSetVNCPassword(qemuMonitorPtr mon, return ret; } -static const char* qemuMonitorTypeToProtocol(int type) + +static const char * +qemuMonitorTypeToProtocol(int type) { switch (type) { case VIR_DOMAIN_GRAPHICS_TYPE_VNC: @@ -1964,11 +2027,13 @@ static const char* qemuMonitorTypeToProtocol(int type) } } + /* Returns -2 if not supported with this monitor connection */ -int qemuMonitorSetPassword(qemuMonitorPtr mon, - int type, - const char *password, - const char *action_if_connected) +int +qemuMonitorSetPassword(qemuMonitorPtr mon, + int type, + const char *password, + const char *action_if_connected) { const char *protocol = qemuMonitorTypeToProtocol(type); int ret; @@ -1998,9 +2063,11 @@ int qemuMonitorSetPassword(qemuMonitorPtr mon, return ret; } -int qemuMonitorExpirePassword(qemuMonitorPtr mon, - int type, - const char *expire_time) + +int +qemuMonitorExpirePassword(qemuMonitorPtr mon, + int type, + const char *expire_time) { const char *protocol = qemuMonitorTypeToProtocol(type); int ret; @@ -2008,8 +2075,7 @@ int qemuMonitorExpirePassword(qemuMonitorPtr mon, if (!protocol) return -1; - VIR_DEBUG("mon=%p, protocol=%s, expire_time=%s", - mon, protocol, expire_time); + VIR_DEBUG("mon=%p, protocol=%s, expire_time=%s", mon, protocol, expire_time); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2027,8 +2093,10 @@ int qemuMonitorExpirePassword(qemuMonitorPtr mon, return ret; } -int qemuMonitorSetBalloon(qemuMonitorPtr mon, - unsigned long newmem) + +int +qemuMonitorSetBalloon(qemuMonitorPtr mon, + unsigned long newmem) { int ret; VIR_DEBUG("mon=%p newmem=%lu", mon, newmem); @@ -2047,7 +2115,8 @@ int qemuMonitorSetBalloon(qemuMonitorPtr mon, } -int qemuMonitorSetCPU(qemuMonitorPtr mon, int cpu, bool online) +int +qemuMonitorSetCPU(qemuMonitorPtr mon, int cpu, bool online) { int ret; VIR_DEBUG("mon=%p cpu=%d online=%d", mon, cpu, online); @@ -2066,9 +2135,10 @@ int qemuMonitorSetCPU(qemuMonitorPtr mon, int cpu, bool online) } -int qemuMonitorEjectMedia(qemuMonitorPtr mon, - const char *dev_name, - bool force) +int +qemuMonitorEjectMedia(qemuMonitorPtr mon, + const char *dev_name, + bool force) { int ret; VIR_DEBUG("mon=%p dev_name=%s force=%d", mon, dev_name, force); @@ -2087,14 +2157,15 @@ int qemuMonitorEjectMedia(qemuMonitorPtr mon, } -int qemuMonitorChangeMedia(qemuMonitorPtr mon, - const char *dev_name, - const char *newmedia, - const char *format) +int +qemuMonitorChangeMedia(qemuMonitorPtr mon, + const char *dev_name, + const char *newmedia, + const char *format) { int ret; VIR_DEBUG("mon=%p dev_name=%s newmedia=%s format=%s", - mon, dev_name, newmedia, format); + mon, dev_name, newmedia, format); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2110,14 +2181,15 @@ int qemuMonitorChangeMedia(qemuMonitorPtr mon, } -int qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon, - unsigned long long offset, - size_t length, - const char *path) +int +qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon, + unsigned long long offset, + size_t length, + const char *path) { int ret; VIR_DEBUG("mon=%p offset=%llu length=%zu path=%s", - mon, offset, length, path); + mon, offset, length, path); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2132,14 +2204,16 @@ int qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon, return ret; } -int qemuMonitorSavePhysicalMemory(qemuMonitorPtr mon, - unsigned long long offset, - size_t length, - const char *path) + +int +qemuMonitorSavePhysicalMemory(qemuMonitorPtr mon, + unsigned long long offset, + size_t length, + const char *path) { int ret; VIR_DEBUG("mon=%p offset=%llu length=%zu path=%s", - mon, offset, length, path); + mon, offset, length, path); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2155,8 +2229,9 @@ int qemuMonitorSavePhysicalMemory(qemuMonitorPtr mon, } -int qemuMonitorSetMigrationSpeed(qemuMonitorPtr mon, - unsigned long bandwidth) +int +qemuMonitorSetMigrationSpeed(qemuMonitorPtr mon, + unsigned long bandwidth) { int ret; VIR_DEBUG("mon=%p bandwidth=%lu", mon, bandwidth); @@ -2182,8 +2257,9 @@ int qemuMonitorSetMigrationSpeed(qemuMonitorPtr mon, } -int qemuMonitorSetMigrationDowntime(qemuMonitorPtr mon, - unsigned long long downtime) +int +qemuMonitorSetMigrationDowntime(qemuMonitorPtr mon, + unsigned long long downtime) { int ret; VIR_DEBUG("mon=%p downtime=%llu", mon, downtime); @@ -2223,6 +2299,7 @@ qemuMonitorGetMigrationCacheSize(qemuMonitorPtr mon, return qemuMonitorJSONGetMigrationCacheSize(mon, cacheSize); } + int qemuMonitorSetMigrationCacheSize(qemuMonitorPtr mon, unsigned long long cacheSize) @@ -2245,8 +2322,9 @@ qemuMonitorSetMigrationCacheSize(qemuMonitorPtr mon, } -int qemuMonitorGetMigrationStatus(qemuMonitorPtr mon, - qemuMonitorMigrationStatusPtr status) +int +qemuMonitorGetMigrationStatus(qemuMonitorPtr mon, + qemuMonitorMigrationStatusPtr status) { int ret; VIR_DEBUG("mon=%p", mon); @@ -2265,8 +2343,9 @@ int qemuMonitorGetMigrationStatus(qemuMonitorPtr mon, } -int qemuMonitorGetSpiceMigrationStatus(qemuMonitorPtr mon, - bool *spice_migrated) +int +qemuMonitorGetSpiceMigrationStatus(qemuMonitorPtr mon, + bool *spice_migrated) { int ret; VIR_DEBUG("mon=%p", mon); @@ -2289,13 +2368,13 @@ int qemuMonitorGetSpiceMigrationStatus(qemuMonitorPtr mon, } -int qemuMonitorMigrateToFd(qemuMonitorPtr mon, - unsigned int flags, - int fd) +int +qemuMonitorMigrateToFd(qemuMonitorPtr mon, + unsigned int flags, + int fd) { int ret; - VIR_DEBUG("mon=%p fd=%d flags=%x", - mon, fd, flags); + VIR_DEBUG("mon=%p fd=%d flags=%x", mon, fd, flags); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2320,16 +2399,16 @@ int qemuMonitorMigrateToFd(qemuMonitorPtr mon, } -int qemuMonitorMigrateToHost(qemuMonitorPtr mon, - unsigned int flags, - const char *protocol, - const char *hostname, - int port) +int +qemuMonitorMigrateToHost(qemuMonitorPtr mon, + unsigned int flags, + const char *protocol, + const char *hostname, + int port) { int ret; char *uri = NULL; - VIR_DEBUG("mon=%p hostname=%s port=%d flags=%x", - mon, hostname, port, flags); + VIR_DEBUG("mon=%p hostname=%s port=%d flags=%x", mon, hostname, port, flags); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2337,7 +2416,6 @@ int qemuMonitorMigrateToHost(qemuMonitorPtr mon, return -1; } - if (virAsprintf(&uri, "%s:%s:%d", protocol, hostname, port) < 0) return -1; @@ -2351,15 +2429,15 @@ int qemuMonitorMigrateToHost(qemuMonitorPtr mon, } -int qemuMonitorMigrateToCommand(qemuMonitorPtr mon, - unsigned int flags, - const char * const *argv) +int +qemuMonitorMigrateToCommand(qemuMonitorPtr mon, + unsigned int flags, + const char * const *argv) { char *argstr; char *dest = NULL; int ret = -1; - VIR_DEBUG("mon=%p argv=%p flags=%x", - mon, argv, flags); + VIR_DEBUG("mon=%p argv=%p flags=%x", mon, argv, flags); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2385,11 +2463,13 @@ int qemuMonitorMigrateToCommand(qemuMonitorPtr mon, return ret; } -int qemuMonitorMigrateToFile(qemuMonitorPtr mon, - unsigned int flags, - const char * const *argv, - const char *target, - unsigned long long offset) + +int +qemuMonitorMigrateToFile(qemuMonitorPtr mon, + unsigned int flags, + const char * const *argv, + const char *target, + unsigned long long offset) { char *argstr; char *dest = NULL; @@ -2397,7 +2477,7 @@ int qemuMonitorMigrateToFile(qemuMonitorPtr mon, char *safe_target = NULL; virBuffer buf = VIR_BUFFER_INITIALIZER; VIR_DEBUG("mon=%p argv=%p target=%s offset=%llu flags=%x", - mon, argv, target, offset, flags); + mon, argv, target, offset, flags); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2448,14 +2528,15 @@ int qemuMonitorMigrateToFile(qemuMonitorPtr mon, return ret; } -int qemuMonitorMigrateToUnix(qemuMonitorPtr mon, - unsigned int flags, - const char *unixfile) + +int +qemuMonitorMigrateToUnix(qemuMonitorPtr mon, + unsigned int flags, + const char *unixfile) { char *dest = NULL; int ret = -1; - VIR_DEBUG("mon=%p, unixfile=%s flags=%x", - mon, unixfile, flags); + VIR_DEBUG("mon=%p, unixfile=%s flags=%x", mon, unixfile, flags); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2475,7 +2556,9 @@ int qemuMonitorMigrateToUnix(qemuMonitorPtr mon, return ret; } -int qemuMonitorMigrateCancel(qemuMonitorPtr mon) + +int +qemuMonitorMigrateCancel(qemuMonitorPtr mon) { int ret; VIR_DEBUG("mon=%p", mon); @@ -2493,11 +2576,13 @@ int qemuMonitorMigrateCancel(qemuMonitorPtr mon) return ret; } + /** * Returns 1 if @capability is supported, 0 if it's not, or -1 on error. */ -int qemuMonitorGetDumpGuestMemoryCapability(qemuMonitorPtr mon, - const char *capability) +int +qemuMonitorGetDumpGuestMemoryCapability(qemuMonitorPtr mon, + const char *capability) { VIR_DEBUG("mon=%p capability=%s", mon, capability); @@ -2514,6 +2599,7 @@ int qemuMonitorGetDumpGuestMemoryCapability(qemuMonitorPtr mon, return qemuMonitorJSONGetDumpGuestMemoryCapability(mon, capability); } + int qemuMonitorDumpToFd(qemuMonitorPtr mon, int fd, const char *dumpformat) { @@ -2548,12 +2634,14 @@ qemuMonitorDumpToFd(qemuMonitorPtr mon, int fd, const char *dumpformat) return ret; } -int qemuMonitorGraphicsRelocate(qemuMonitorPtr mon, - int type, - const char *hostname, - int port, - int tlsPort, - const char *tlsSubject) + +int +qemuMonitorGraphicsRelocate(qemuMonitorPtr mon, + int type, + const char *hostname, + int port, + int tlsPort, + const char *tlsSubject) { int ret; VIR_DEBUG("mon=%p type=%d hostname=%s port=%d tlsPort=%d tlsSubject=%s", @@ -2578,8 +2666,9 @@ int qemuMonitorGraphicsRelocate(qemuMonitorPtr mon, } -int qemuMonitorAddUSBDisk(qemuMonitorPtr mon, - const char *path) +int +qemuMonitorAddUSBDisk(qemuMonitorPtr mon, + const char *path) { int ret; VIR_DEBUG("mon=%p path=%s", mon, path); @@ -2598,9 +2687,10 @@ int qemuMonitorAddUSBDisk(qemuMonitorPtr mon, } -int qemuMonitorAddUSBDeviceExact(qemuMonitorPtr mon, - int bus, - int dev) +int +qemuMonitorAddUSBDeviceExact(qemuMonitorPtr mon, + int bus, + int dev) { int ret; VIR_DEBUG("mon=%p bus=%d dev=%d", mon, bus, dev); @@ -2618,13 +2708,14 @@ int qemuMonitorAddUSBDeviceExact(qemuMonitorPtr mon, return ret; } -int qemuMonitorAddUSBDeviceMatch(qemuMonitorPtr mon, - int vendor, - int product) + +int +qemuMonitorAddUSBDeviceMatch(qemuMonitorPtr mon, + int vendor, + int product) { int ret; - VIR_DEBUG("mon=%p vendor=%d product=%d", - mon, vendor, product); + VIR_DEBUG("mon=%p vendor=%d product=%d", mon, vendor, product); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2640,14 +2731,15 @@ int qemuMonitorAddUSBDeviceMatch(qemuMonitorPtr mon, } -int qemuMonitorAddPCIHostDevice(qemuMonitorPtr mon, - virDevicePCIAddress *hostAddr, - virDevicePCIAddress *guestAddr) +int +qemuMonitorAddPCIHostDevice(qemuMonitorPtr mon, + virDevicePCIAddress *hostAddr, + virDevicePCIAddress *guestAddr) { int ret; VIR_DEBUG("mon=%p domain=%d bus=%d slot=%d function=%d", - mon, - hostAddr->domain, hostAddr->bus, hostAddr->slot, hostAddr->function); + mon, hostAddr->domain, hostAddr->bus, hostAddr->slot, + hostAddr->function); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2663,14 +2755,14 @@ int qemuMonitorAddPCIHostDevice(qemuMonitorPtr mon, } -int qemuMonitorAddPCIDisk(qemuMonitorPtr mon, - const char *path, - const char *bus, - virDevicePCIAddress *guestAddr) +int +qemuMonitorAddPCIDisk(qemuMonitorPtr mon, + const char *path, + const char *bus, + virDevicePCIAddress *guestAddr) { int ret; - VIR_DEBUG("mon=%p path=%s bus=%s", - mon, path, bus); + VIR_DEBUG("mon=%p path=%s bus=%s", mon, path, bus); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2686,9 +2778,10 @@ int qemuMonitorAddPCIDisk(qemuMonitorPtr mon, } -int qemuMonitorAddPCINetwork(qemuMonitorPtr mon, - const char *nicstr, - virDevicePCIAddress *guestAddr) +int +qemuMonitorAddPCINetwork(qemuMonitorPtr mon, + const char *nicstr, + virDevicePCIAddress *guestAddr) { int ret; VIR_DEBUG("mon=%p nicstr=%s", mon, nicstr); @@ -2707,8 +2800,9 @@ int qemuMonitorAddPCINetwork(qemuMonitorPtr mon, } -int qemuMonitorRemovePCIDevice(qemuMonitorPtr mon, - virDevicePCIAddress *guestAddr) +int +qemuMonitorRemovePCIDevice(qemuMonitorPtr mon, + virDevicePCIAddress *guestAddr) { int ret; VIR_DEBUG("mon=%p domain=%d bus=%d slot=%d function=%d", @@ -2729,13 +2823,13 @@ int qemuMonitorRemovePCIDevice(qemuMonitorPtr mon, } -int qemuMonitorSendFileHandle(qemuMonitorPtr mon, - const char *fdname, - int fd) +int +qemuMonitorSendFileHandle(qemuMonitorPtr mon, + const char *fdname, + int fd) { int ret; - VIR_DEBUG("mon=%p, fdname=%s fd=%d", - mon, fdname, fd); + VIR_DEBUG("mon=%p, fdname=%s fd=%d", mon, fdname, fd); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2764,14 +2858,14 @@ int qemuMonitorSendFileHandle(qemuMonitorPtr mon, } -int qemuMonitorCloseFileHandle(qemuMonitorPtr mon, - const char *fdname) +int +qemuMonitorCloseFileHandle(qemuMonitorPtr mon, + const char *fdname) { int ret = -1; virErrorPtr error; - VIR_DEBUG("mon=%p fdname=%s", - mon, fdname); + VIR_DEBUG("mon=%p fdname=%s", mon, fdname); error = virSaveLastError(); @@ -2802,8 +2896,7 @@ int qemuMonitorAddFd(qemuMonitorPtr mon, int fdset, int fd, const char *name) { int ret = -1; - VIR_DEBUG("mon=%p, fdset=%d, fd=%d, name=%s", - mon, fdset, fd, NULLSTR(name)); + VIR_DEBUG("mon=%p, fdset=%d, fd=%d, name=%s", mon, fdset, fd, NULLSTR(name)); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2867,10 +2960,11 @@ qemuMonitorRemoveFd(qemuMonitorPtr mon, int fdset, int fd) } -int qemuMonitorAddHostNetwork(qemuMonitorPtr mon, - const char *netstr, - int *tapfd, char **tapfdName, int tapfdSize, - int *vhostfd, char **vhostfdName, int vhostfdSize) +int +qemuMonitorAddHostNetwork(qemuMonitorPtr mon, + const char *netstr, + int *tapfd, char **tapfdName, int tapfdSize, + int *vhostfd, char **vhostfdName, int vhostfdSize) { int ret = -1; size_t i = 0, j = 0; @@ -2917,13 +3011,13 @@ int qemuMonitorAddHostNetwork(qemuMonitorPtr mon, } -int qemuMonitorRemoveHostNetwork(qemuMonitorPtr mon, - int vlan, - const char *netname) +int +qemuMonitorRemoveHostNetwork(qemuMonitorPtr mon, + int vlan, + const char *netname) { int ret = -1; - VIR_DEBUG("mon=%p netname=%s", - mon, netname); + VIR_DEBUG("mon=%p netname=%s", mon, netname); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2940,10 +3034,11 @@ int qemuMonitorRemoveHostNetwork(qemuMonitorPtr mon, } -int qemuMonitorAddNetdev(qemuMonitorPtr mon, - const char *netdevstr, - int *tapfd, char **tapfdName, int tapfdSize, - int *vhostfd, char **vhostfdName, int vhostfdSize) +int +qemuMonitorAddNetdev(qemuMonitorPtr mon, + const char *netdevstr, + int *tapfd, char **tapfdName, int tapfdSize, + int *vhostfd, char **vhostfdName, int vhostfdSize) { int ret = -1; size_t i = 0, j = 0; @@ -2988,12 +3083,13 @@ int qemuMonitorAddNetdev(qemuMonitorPtr mon, return ret; } -int qemuMonitorRemoveNetdev(qemuMonitorPtr mon, - const char *alias) + +int +qemuMonitorRemoveNetdev(qemuMonitorPtr mon, + const char *alias) { int ret; - VIR_DEBUG("mon=%p alias=%s", - mon, alias); + VIR_DEBUG("mon=%p alias=%s", mon, alias); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3014,8 +3110,7 @@ qemuMonitorQueryRxFilter(qemuMonitorPtr mon, const char *alias, virNetDevRxFilterPtr *filter) { int ret = -1; - VIR_DEBUG("mon=%p alias=%s filter=%p", - mon, alias, filter); + VIR_DEBUG("mon=%p alias=%s filter=%p", mon, alias, filter); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3023,9 +3118,6 @@ qemuMonitorQueryRxFilter(qemuMonitorPtr mon, const char *alias, return -1; } - - VIR_DEBUG("mon=%p, alias=%s", mon, alias); - if (mon->json) ret = qemuMonitorJSONQueryRxFilter(mon, alias, filter); else @@ -3082,9 +3174,10 @@ qemuMonitorGetChardevInfo(qemuMonitorPtr mon, } -int qemuMonitorAttachPCIDiskController(qemuMonitorPtr mon, - const char *bus, - virDevicePCIAddress *guestAddr) +int +qemuMonitorAttachPCIDiskController(qemuMonitorPtr mon, + const char *bus, + virDevicePCIAddress *guestAddr) { VIR_DEBUG("mon=%p type=%s", mon, bus); int ret; @@ -3104,15 +3197,15 @@ int qemuMonitorAttachPCIDiskController(qemuMonitorPtr mon, } -int qemuMonitorAttachDrive(qemuMonitorPtr mon, - const char *drivestr, - virDevicePCIAddress *controllerAddr, - virDomainDeviceDriveAddress *driveAddr) +int +qemuMonitorAttachDrive(qemuMonitorPtr mon, + const char *drivestr, + virDevicePCIAddress *controllerAddr, + virDomainDeviceDriveAddress *driveAddr) { VIR_DEBUG("mon=%p drivestr=%s domain=%d bus=%d slot=%d function=%d", - mon, drivestr, - controllerAddr->domain, controllerAddr->bus, - controllerAddr->slot, controllerAddr->function); + mon, drivestr, controllerAddr->domain, controllerAddr->bus, + controllerAddr->slot, controllerAddr->function); int ret = 1; if (!mon) { @@ -3130,8 +3223,10 @@ int qemuMonitorAttachDrive(qemuMonitorPtr mon, return ret; } -int qemuMonitorGetAllPCIAddresses(qemuMonitorPtr mon, - qemuMonitorPCIAddress **addrs) + +int +qemuMonitorGetAllPCIAddresses(qemuMonitorPtr mon, + qemuMonitorPCIAddress **addrs) { VIR_DEBUG("mon=%p addrs=%p", mon, addrs); int ret; @@ -3149,8 +3244,10 @@ int qemuMonitorGetAllPCIAddresses(qemuMonitorPtr mon, return ret; } -int qemuMonitorDriveDel(qemuMonitorPtr mon, - const char *drivestr) + +int +qemuMonitorDriveDel(qemuMonitorPtr mon, + const char *drivestr) { VIR_DEBUG("mon=%p drivestr=%s", mon, drivestr); int ret; @@ -3168,8 +3265,10 @@ int qemuMonitorDriveDel(qemuMonitorPtr mon, return ret; } -int qemuMonitorDelDevice(qemuMonitorPtr mon, - const char *devalias) + +int +qemuMonitorDelDevice(qemuMonitorPtr mon, + const char *devalias) { VIR_DEBUG("mon=%p devalias=%s", mon, devalias); int ret; @@ -3188,10 +3287,11 @@ int qemuMonitorDelDevice(qemuMonitorPtr mon, } -int qemuMonitorAddDeviceWithFd(qemuMonitorPtr mon, - const char *devicestr, - int fd, - const char *fdname) +int +qemuMonitorAddDeviceWithFd(qemuMonitorPtr mon, + const char *devicestr, + int fd, + const char *fdname) { VIR_DEBUG("mon=%p device=%s fd=%d fdname=%s", mon, devicestr, fd, NULLSTR(fdname)); @@ -3219,8 +3319,10 @@ int qemuMonitorAddDeviceWithFd(qemuMonitorPtr mon, return ret; } -int qemuMonitorAddDevice(qemuMonitorPtr mon, - const char *devicestr) + +int +qemuMonitorAddDevice(qemuMonitorPtr mon, + const char *devicestr) { return qemuMonitorAddDeviceWithFd(mon, devicestr, -1, NULL); } @@ -3275,8 +3377,9 @@ qemuMonitorDelObject(qemuMonitorPtr mon, } -int qemuMonitorAddDrive(qemuMonitorPtr mon, - const char *drivestr) +int +qemuMonitorAddDrive(qemuMonitorPtr mon, + const char *drivestr) { VIR_DEBUG("mon=%p drive=%s", mon, drivestr); int ret; @@ -3295,9 +3398,10 @@ int qemuMonitorAddDrive(qemuMonitorPtr mon, } -int qemuMonitorSetDrivePassphrase(qemuMonitorPtr mon, - const char *alias, - const char *passphrase) +int +qemuMonitorSetDrivePassphrase(qemuMonitorPtr mon, + const char *alias, + const char *passphrase) { VIR_DEBUG("mon=%p alias=%s passphrase=%p(value hidden)", mon, alias, passphrase); int ret; @@ -3315,7 +3419,9 @@ int qemuMonitorSetDrivePassphrase(qemuMonitorPtr mon, return ret; } -int qemuMonitorCreateSnapshot(qemuMonitorPtr mon, const char *name) + +int +qemuMonitorCreateSnapshot(qemuMonitorPtr mon, const char *name) { int ret; @@ -3334,7 +3440,8 @@ int qemuMonitorCreateSnapshot(qemuMonitorPtr mon, const char *name) return ret; } -int qemuMonitorLoadSnapshot(qemuMonitorPtr mon, const char *name) +int +qemuMonitorLoadSnapshot(qemuMonitorPtr mon, const char *name) { int ret; @@ -3353,7 +3460,9 @@ int qemuMonitorLoadSnapshot(qemuMonitorPtr mon, const char *name) return ret; } -int qemuMonitorDeleteSnapshot(qemuMonitorPtr mon, const char *name) + +int +qemuMonitorDeleteSnapshot(qemuMonitorPtr mon, const char *name) { int ret; @@ -3372,6 +3481,7 @@ int qemuMonitorDeleteSnapshot(qemuMonitorPtr mon, const char *name) return ret; } + /* Use the snapshot_blkdev command to convert the existing file for * device into a read-only backing file of a new qcow2 image located * at file. */ @@ -3400,6 +3510,7 @@ qemuMonitorDiskSnapshot(qemuMonitorPtr mon, virJSONValuePtr actions, return ret; } + /* Start a drive-mirror block job. bandwidth is in bytes/sec. */ int qemuMonitorDriveMirror(qemuMonitorPtr mon, @@ -3424,6 +3535,7 @@ qemuMonitorDriveMirror(qemuMonitorPtr mon, return ret; } + /* Use the transaction QMP command to run atomic snapshot commands. */ int qemuMonitorTransaction(qemuMonitorPtr mon, virJSONValuePtr actions) @@ -3440,6 +3552,7 @@ qemuMonitorTransaction(qemuMonitorPtr mon, virJSONValuePtr actions) return ret; } + /* Start a block-commit block job. bandwidth is in bytes/sec. */ int qemuMonitorBlockCommit(qemuMonitorPtr mon, const char *device, @@ -3508,10 +3621,12 @@ qemuMonitorDrivePivot(qemuMonitorPtr mon, return qemuMonitorJSONDrivePivot(mon, device); } -int qemuMonitorArbitraryCommand(qemuMonitorPtr mon, - const char *cmd, - char **reply, - bool hmp) + +int +qemuMonitorArbitraryCommand(qemuMonitorPtr mon, + const char *cmd, + char **reply, + bool hmp) { int ret; @@ -3525,7 +3640,8 @@ int qemuMonitorArbitraryCommand(qemuMonitorPtr mon, } -int qemuMonitorInjectNMI(qemuMonitorPtr mon) +int +qemuMonitorInjectNMI(qemuMonitorPtr mon) { int ret; @@ -3538,15 +3654,16 @@ int qemuMonitorInjectNMI(qemuMonitorPtr mon) return ret; } -int qemuMonitorSendKey(qemuMonitorPtr mon, - unsigned int holdtime, - unsigned int *keycodes, - unsigned int nkeycodes) + +int +qemuMonitorSendKey(qemuMonitorPtr mon, + unsigned int holdtime, + unsigned int *keycodes, + unsigned int nkeycodes) { int ret; - VIR_DEBUG("mon=%p, holdtime=%u, nkeycodes=%u", - mon, holdtime, nkeycodes); + VIR_DEBUG("mon=%p, holdtime=%u, nkeycodes=%u", mon, holdtime, nkeycodes); if (mon->json) ret = qemuMonitorJSONSendKey(mon, holdtime, keycodes, nkeycodes); @@ -3555,9 +3672,12 @@ int qemuMonitorSendKey(qemuMonitorPtr mon, return ret; } -int qemuMonitorScreendump(qemuMonitorPtr mon, - const char *file) + +int +qemuMonitorScreendump(qemuMonitorPtr mon, + const char *file) { + int ret; VIR_DEBUG("mon=%p, file=%s", mon, file); @@ -3575,6 +3695,7 @@ int qemuMonitorScreendump(qemuMonitorPtr mon, return ret; } + /* bandwidth is in bytes/sec */ int qemuMonitorBlockStream(qemuMonitorPtr mon, @@ -3605,8 +3726,7 @@ qemuMonitorBlockJobCancel(qemuMonitorPtr mon, const char *device, bool modern) { - VIR_DEBUG("mon=%p, device=%s, modern=%d", - mon, device, modern); + VIR_DEBUG("mon=%p, device=%s, modern=%d", mon, device, modern); if (!mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", @@ -3657,10 +3777,11 @@ qemuMonitorBlockJobInfo(qemuMonitorPtr mon, } -int qemuMonitorSetBlockIoThrottle(qemuMonitorPtr mon, - const char *device, - virDomainBlockIoTuneInfoPtr info, - bool supportMaxOptions) +int +qemuMonitorSetBlockIoThrottle(qemuMonitorPtr mon, + const char *device, + virDomainBlockIoTuneInfoPtr info, + bool supportMaxOptions) { int ret; @@ -3674,10 +3795,12 @@ int qemuMonitorSetBlockIoThrottle(qemuMonitorPtr mon, return ret; } -int qemuMonitorGetBlockIoThrottle(qemuMonitorPtr mon, - const char *device, - virDomainBlockIoTuneInfoPtr reply, - bool supportMaxOptions) + +int +qemuMonitorGetBlockIoThrottle(qemuMonitorPtr mon, + const char *device, + virDomainBlockIoTuneInfoPtr reply, + bool supportMaxOptions) { int ret; @@ -3692,7 +3815,8 @@ int qemuMonitorGetBlockIoThrottle(qemuMonitorPtr mon, } -int qemuMonitorVMStatusToPausedReason(const char *status) +int +qemuMonitorVMStatusToPausedReason(const char *status) { int st; @@ -3746,11 +3870,12 @@ int qemuMonitorVMStatusToPausedReason(const char *status) } -int qemuMonitorOpenGraphics(qemuMonitorPtr mon, - const char *protocol, - int fd, - const char *fdname, - bool skipauth) +int +qemuMonitorOpenGraphics(qemuMonitorPtr mon, + const char *protocol, + int fd, + const char *fdname, + bool skipauth) { VIR_DEBUG("mon=%p protocol=%s fd=%d fdname=%s skipauth=%d", mon, protocol, fd, NULLSTR(fdname), skipauth); @@ -3778,7 +3903,9 @@ int qemuMonitorOpenGraphics(qemuMonitorPtr mon, return ret; } -int qemuMonitorSystemWakeup(qemuMonitorPtr mon) + +int +qemuMonitorSystemWakeup(qemuMonitorPtr mon) { VIR_DEBUG("mon=%p", mon); @@ -3797,6 +3924,7 @@ int qemuMonitorSystemWakeup(qemuMonitorPtr mon) return qemuMonitorJSONSystemWakeup(mon); } + int qemuMonitorGetVersion(qemuMonitorPtr mon, int *major, int *minor, @@ -3821,11 +3949,12 @@ int qemuMonitorGetVersion(qemuMonitorPtr mon, return qemuMonitorJSONGetVersion(mon, major, minor, micro, package); } -int qemuMonitorGetMachines(qemuMonitorPtr mon, - qemuMonitorMachineInfoPtr **machines) + +int +qemuMonitorGetMachines(qemuMonitorPtr mon, + qemuMonitorMachineInfoPtr **machines) { - VIR_DEBUG("mon=%p machines=%p", - mon, machines); + VIR_DEBUG("mon=%p machines=%p", mon, machines); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3842,7 +3971,9 @@ int qemuMonitorGetMachines(qemuMonitorPtr mon, return qemuMonitorJSONGetMachines(mon, machines); } -void qemuMonitorMachineInfoFree(qemuMonitorMachineInfoPtr machine) + +void +qemuMonitorMachineInfoFree(qemuMonitorMachineInfoPtr machine) { if (!machine) return; @@ -3851,11 +3982,12 @@ void qemuMonitorMachineInfoFree(qemuMonitorMachineInfoPtr machine) VIR_FREE(machine); } -int qemuMonitorGetCPUDefinitions(qemuMonitorPtr mon, - char ***cpus) + +int +qemuMonitorGetCPUDefinitions(qemuMonitorPtr mon, + char ***cpus) { - VIR_DEBUG("mon=%p cpus=%p", - mon, cpus); + VIR_DEBUG("mon=%p cpus=%p", mon, cpus); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3873,11 +4005,11 @@ int qemuMonitorGetCPUDefinitions(qemuMonitorPtr mon, } -int qemuMonitorGetCommands(qemuMonitorPtr mon, - char ***commands) +int +qemuMonitorGetCommands(qemuMonitorPtr mon, + char ***commands) { - VIR_DEBUG("mon=%p commands=%p", - mon, commands); + VIR_DEBUG("mon=%p commands=%p", mon, commands); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3895,11 +4027,11 @@ int qemuMonitorGetCommands(qemuMonitorPtr mon, } -int qemuMonitorGetEvents(qemuMonitorPtr mon, - char ***events) +int +qemuMonitorGetEvents(qemuMonitorPtr mon, + char ***events) { - VIR_DEBUG("mon=%p events=%p", - mon, events); + VIR_DEBUG("mon=%p events=%p", mon, events); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3944,12 +4076,12 @@ qemuMonitorGetCommandLineOptionParameters(qemuMonitorPtr mon, } -int qemuMonitorGetKVMState(qemuMonitorPtr mon, - bool *enabled, - bool *present) +int +qemuMonitorGetKVMState(qemuMonitorPtr mon, + bool *enabled, + bool *present) { - VIR_DEBUG("mon=%p enabled=%p present=%p", - mon, enabled, present); + VIR_DEBUG("mon=%p enabled=%p present=%p", mon, enabled, present); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3967,11 +4099,11 @@ int qemuMonitorGetKVMState(qemuMonitorPtr mon, } -int qemuMonitorGetObjectTypes(qemuMonitorPtr mon, - char ***types) +int +qemuMonitorGetObjectTypes(qemuMonitorPtr mon, + char ***types) { - VIR_DEBUG("mon=%p types=%p", - mon, types); + VIR_DEBUG("mon=%p types=%p", mon, types); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3989,12 +4121,12 @@ int qemuMonitorGetObjectTypes(qemuMonitorPtr mon, } -int qemuMonitorGetObjectProps(qemuMonitorPtr mon, - const char *type, - char ***props) +int +qemuMonitorGetObjectProps(qemuMonitorPtr mon, + const char *type, + char ***props) { - VIR_DEBUG("mon=%p type=%s props=%p", - mon, type, props); + VIR_DEBUG("mon=%p type=%s props=%p", mon, type, props); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -4012,10 +4144,10 @@ int qemuMonitorGetObjectProps(qemuMonitorPtr mon, } -char *qemuMonitorGetTargetArch(qemuMonitorPtr mon) +char * +qemuMonitorGetTargetArch(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", - mon); + VIR_DEBUG("mon=%p", mon); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -4056,8 +4188,9 @@ qemuMonitorGetMigrationCapabilities(qemuMonitorPtr mon, /** * Returns 1 if @capability is supported, 0 if it's not, or -1 on error. */ -int qemuMonitorGetMigrationCapability(qemuMonitorPtr mon, - qemuMonitorMigrationCaps capability) +int +qemuMonitorGetMigrationCapability(qemuMonitorPtr mon, + qemuMonitorMigrationCaps capability) { VIR_DEBUG("mon=%p capability=%d", mon, capability); @@ -4074,9 +4207,11 @@ int qemuMonitorGetMigrationCapability(qemuMonitorPtr mon, return qemuMonitorJSONGetMigrationCapability(mon, capability); } -int qemuMonitorSetMigrationCapability(qemuMonitorPtr mon, - qemuMonitorMigrationCaps capability, - bool state) + +int +qemuMonitorSetMigrationCapability(qemuMonitorPtr mon, + qemuMonitorMigrationCaps capability, + bool state) { VIR_DEBUG("mon=%p capability=%d", mon, capability); @@ -4095,12 +4230,13 @@ int qemuMonitorSetMigrationCapability(qemuMonitorPtr mon, return qemuMonitorJSONSetMigrationCapability(mon, capability, state); } -int qemuMonitorNBDServerStart(qemuMonitorPtr mon, - const char *host, - unsigned int port) + +int +qemuMonitorNBDServerStart(qemuMonitorPtr mon, + const char *host, + unsigned int port) { - VIR_DEBUG("mon=%p host=%s port=%u", - mon, host, port); + VIR_DEBUG("mon=%p host=%s port=%u", mon, host, port); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -4117,12 +4253,13 @@ int qemuMonitorNBDServerStart(qemuMonitorPtr mon, return qemuMonitorJSONNBDServerStart(mon, host, port); } -int qemuMonitorNBDServerAdd(qemuMonitorPtr mon, - const char *deviceID, - bool writable) + +int +qemuMonitorNBDServerAdd(qemuMonitorPtr mon, + const char *deviceID, + bool writable) { - VIR_DEBUG("mon=%p deviceID=%s", - mon, deviceID); + VIR_DEBUG("mon=%p deviceID=%s", mon, deviceID); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -4139,7 +4276,9 @@ int qemuMonitorNBDServerAdd(qemuMonitorPtr mon, return qemuMonitorJSONNBDServerAdd(mon, deviceID, writable); } -int qemuMonitorNBDServerStop(qemuMonitorPtr mon) + +int +qemuMonitorNBDServerStop(qemuMonitorPtr mon) { VIR_DEBUG("mon=%p", mon); @@ -4159,11 +4298,11 @@ int qemuMonitorNBDServerStop(qemuMonitorPtr mon) } -int qemuMonitorGetTPMModels(qemuMonitorPtr mon, +int +qemuMonitorGetTPMModels(qemuMonitorPtr mon, char ***tpmmodels) { - VIR_DEBUG("mon=%p tpmmodels=%p", - mon, tpmmodels); + VIR_DEBUG("mon=%p tpmmodels=%p", mon, tpmmodels); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -4181,11 +4320,11 @@ int qemuMonitorGetTPMModels(qemuMonitorPtr mon, } -int qemuMonitorGetTPMTypes(qemuMonitorPtr mon, - char ***tpmtypes) +int +qemuMonitorGetTPMTypes(qemuMonitorPtr mon, + char ***tpmtypes) { - VIR_DEBUG("mon=%p tpmtypes=%p", - mon, tpmtypes); + VIR_DEBUG("mon=%p tpmtypes=%p", mon, tpmtypes); if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -4202,9 +4341,11 @@ int qemuMonitorGetTPMTypes(qemuMonitorPtr mon, return qemuMonitorJSONGetTPMTypes(mon, tpmtypes); } -int qemuMonitorAttachCharDev(qemuMonitorPtr mon, - const char *chrID, - virDomainChrSourceDefPtr chr) + +int +qemuMonitorAttachCharDev(qemuMonitorPtr mon, + const char *chrID, + virDomainChrSourceDefPtr chr) { VIR_DEBUG("mon=%p chrID=%s chr=%p", mon, chrID, chr); @@ -4223,8 +4364,10 @@ int qemuMonitorAttachCharDev(qemuMonitorPtr mon, return qemuMonitorJSONAttachCharDev(mon, chrID, chr); } -int qemuMonitorDetachCharDev(qemuMonitorPtr mon, - const char *chrID) + +int +qemuMonitorDetachCharDev(qemuMonitorPtr mon, + const char *chrID) { VIR_DEBUG("mon=%p chrID=%s", mon, chrID); @@ -4243,6 +4386,7 @@ int qemuMonitorDetachCharDev(qemuMonitorPtr mon, return qemuMonitorJSONDetachCharDev(mon, chrID); } + int qemuMonitorGetDeviceAliases(qemuMonitorPtr mon, char ***aliases) @@ -4322,6 +4466,7 @@ qemuMonitorGetGuestCPU(qemuMonitorPtr mon, return qemuMonitorJSONGetGuestCPU(mon, arch, data); } + /** * qemuMonitorRTCResetReinjection: * @mon: Pointer to the monitor @@ -4355,6 +4500,7 @@ qemuMonitorRTCResetReinjection(qemuMonitorPtr mon) return qemuMonitorJSONRTCResetReinjection(mon); } + /** * qemuMonitorGetIOThreads: * @mon: Pointer to the monitor @@ -4388,7 +4534,9 @@ qemuMonitorGetIOThreads(qemuMonitorPtr mon, return qemuMonitorJSONGetIOThreads(mon, iothreads); } -void qemuMonitorIOThreadInfoFree(qemuMonitorIOThreadInfoPtr iothread) + +void +qemuMonitorIOThreadInfoFree(qemuMonitorIOThreadInfoPtr iothread) { if (!iothread) return; -- 2.3.5

On Tue, Apr 14, 2015 at 18:05:05 +0200, Peter Krempa wrote:
Fix line spacing between functions, ensure that function return type is on a separate line and reflow arguments for VIR_DEBUG statements. --- src/qemu/qemu_monitor.c | 836 ++++++++++++++++++++++++++++-------------------- 1 file changed, 492 insertions(+), 344 deletions(-)
ACK, but see my last comment to 7/7. Jirka

--- src/qemu/qemu_monitor.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 398c236..fcdd41d 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1527,7 +1527,6 @@ qemuMonitorEmitSerialChange(qemuMonitorPtr mon, int qemuMonitorSetCapabilities(qemuMonitorPtr mon) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -1536,16 +1535,10 @@ qemuMonitorSetCapabilities(qemuMonitorPtr mon) return -1; } - if (mon->json) { - ret = qemuMonitorJSONSetCapabilities(mon); - if (ret < 0) - goto cleanup; - } else { - ret = 0; - } + if (!mon->json) + return 0; - cleanup: - return ret; + return qemuMonitorJSONSetCapabilities(mon); } -- 2.3.5

On Tue, Apr 14, 2015 at 18:05:06 +0200, Peter Krempa wrote:
--- src/qemu/qemu_monitor.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 398c236..fcdd41d 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1527,7 +1527,6 @@ qemuMonitorEmitSerialChange(qemuMonitorPtr mon, int qemuMonitorSetCapabilities(qemuMonitorPtr mon) { - int ret; VIR_DEBUG("mon=%p", mon);
if (!mon) { @@ -1536,16 +1535,10 @@ qemuMonitorSetCapabilities(qemuMonitorPtr mon) return -1; }
- if (mon->json) { - ret = qemuMonitorJSONSetCapabilities(mon); - if (ret < 0) - goto cleanup; - } else { - ret = 0; - } + if (!mon->json) + return 0;
- cleanup: - return ret; + return qemuMonitorJSONSetCapabilities(mon); }
ACK Jirka

--- src/qemu/qemu_monitor.c | 6 +++--- src/qemu/qemu_monitor.h | 3 ++- src/qemu/qemu_process.c | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index fcdd41d..d251ae1 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1672,11 +1672,11 @@ qemuMonitorSetLink(qemuMonitorPtr mon, virDomainNetInterfaceLinkState state) { int ret; - VIR_DEBUG("mon=%p, name=%p:%s, state=%u", mon, name, name, state); + VIR_DEBUG("mon=%p, name=%s, state=%u", mon, name, state); - if (!mon || !name) { + if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor || name must not be NULL")); + _("monitor must not be NULL")); return -1; } diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index d673154..999af10 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -233,7 +233,8 @@ int qemuMonitorSetCapabilities(qemuMonitorPtr mon); int qemuMonitorSetLink(qemuMonitorPtr mon, const char *name, - virDomainNetInterfaceLinkState state); + virDomainNetInterfaceLinkState state) + ATTRIBUTE_NONNULL(2); /* These APIs are for use by the internal Text/JSON monitor impl code only */ char *qemuMonitorNextCommandID(qemuMonitorPtr mon); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index d9611c9..276837e 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -2355,6 +2355,12 @@ qemuProcessSetLinkStates(virDomainObjPtr vm) for (i = 0; i < def->nnets; i++) { if (def->nets[i]->linkstate == VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN) { + if (!def->nets[i]->info.alias) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("missing alias for network device")); + return -1; + } + VIR_DEBUG("Setting link state: %s", def->nets[i]->info.alias); if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) { -- 2.3.5

On Tue, Apr 14, 2015 at 18:05:07 +0200, Peter Krempa wrote:
--- src/qemu/qemu_monitor.c | 6 +++--- src/qemu/qemu_monitor.h | 3 ++- src/qemu/qemu_process.c | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-)
ACK Jirka

Quite a lot places set the 'ret' variable just once right before returning it's value. Remove such usage. --- src/qemu/qemu_monitor.c | 465 +++++++++++++++++------------------------------- 1 file changed, 167 insertions(+), 298 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index d251ae1..c91a660 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1546,7 +1546,6 @@ int qemuMonitorStartCPUs(qemuMonitorPtr mon, virConnectPtr conn) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -1556,17 +1555,15 @@ qemuMonitorStartCPUs(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONStartCPUs(mon, conn); + return qemuMonitorJSONStartCPUs(mon, conn); else - ret = qemuMonitorTextStartCPUs(mon, conn); - return ret; + return qemuMonitorTextStartCPUs(mon, conn); } int qemuMonitorStopCPUs(qemuMonitorPtr mon) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -1576,10 +1573,9 @@ qemuMonitorStopCPUs(qemuMonitorPtr mon) } if (mon->json) - ret = qemuMonitorJSONStopCPUs(mon); + return qemuMonitorJSONStopCPUs(mon); else - ret = qemuMonitorTextStopCPUs(mon); - return ret; + return qemuMonitorTextStopCPUs(mon); } @@ -1588,7 +1584,6 @@ qemuMonitorGetStatus(qemuMonitorPtr mon, bool *running, virDomainPausedReason *reason) { - int ret; VIR_DEBUG("mon=%p, running=%p, reason=%p", mon, running, reason); if (!mon || !running) { @@ -1598,17 +1593,15 @@ qemuMonitorGetStatus(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONGetStatus(mon, running, reason); + return qemuMonitorJSONGetStatus(mon, running, reason); else - ret = qemuMonitorTextGetStatus(mon, running, reason); - return ret; + return qemuMonitorTextGetStatus(mon, running, reason); } int qemuMonitorSystemPowerdown(qemuMonitorPtr mon) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -1618,17 +1611,15 @@ qemuMonitorSystemPowerdown(qemuMonitorPtr mon) } if (mon->json) - ret = qemuMonitorJSONSystemPowerdown(mon); + return qemuMonitorJSONSystemPowerdown(mon); else - ret = qemuMonitorTextSystemPowerdown(mon); - return ret; + return qemuMonitorTextSystemPowerdown(mon); } int qemuMonitorSystemReset(qemuMonitorPtr mon) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -1638,10 +1629,9 @@ qemuMonitorSystemReset(qemuMonitorPtr mon) } if (mon->json) - ret = qemuMonitorJSONSystemReset(mon); + return qemuMonitorJSONSystemReset(mon); else - ret = qemuMonitorTextSystemReset(mon); - return ret; + return qemuMonitorTextSystemReset(mon); } @@ -1649,7 +1639,6 @@ int qemuMonitorGetCPUInfo(qemuMonitorPtr mon, int **pids) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -1659,10 +1648,9 @@ qemuMonitorGetCPUInfo(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONGetCPUInfo(mon, pids); + return qemuMonitorJSONGetCPUInfo(mon, pids); else - ret = qemuMonitorTextGetCPUInfo(mon, pids); - return ret; + return qemuMonitorTextGetCPUInfo(mon, pids); } @@ -1671,7 +1659,6 @@ qemuMonitorSetLink(qemuMonitorPtr mon, const char *name, virDomainNetInterfaceLinkState state) { - int ret; VIR_DEBUG("mon=%p, name=%s, state=%u", mon, name, state); if (!mon) { @@ -1681,10 +1668,9 @@ qemuMonitorSetLink(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONSetLink(mon, name, state); + return qemuMonitorJSONSetLink(mon, name, state); else - ret = qemuMonitorTextSetLink(mon, name, state); - return ret; + return qemuMonitorTextSetLink(mon, name, state); } @@ -1692,7 +1678,6 @@ int qemuMonitorGetVirtType(qemuMonitorPtr mon, int *virtType) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -1702,10 +1687,9 @@ qemuMonitorGetVirtType(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONGetVirtType(mon, virtType); + return qemuMonitorJSONGetVirtType(mon, virtType); else - ret = qemuMonitorTextGetVirtType(mon, virtType); - return ret; + return qemuMonitorTextGetVirtType(mon, virtType); } @@ -1713,7 +1697,6 @@ int qemuMonitorGetBalloonInfo(qemuMonitorPtr mon, unsigned long long *currmem) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -1723,10 +1706,9 @@ qemuMonitorGetBalloonInfo(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONGetBalloonInfo(mon, currmem); + return qemuMonitorJSONGetBalloonInfo(mon, currmem); else - ret = qemuMonitorTextGetBalloonInfo(mon, currmem); - return ret; + return qemuMonitorTextGetBalloonInfo(mon, currmem); } @@ -1735,7 +1717,6 @@ qemuMonitorGetMemoryStats(qemuMonitorPtr mon, virDomainMemoryStatPtr stats, unsigned int nr_stats) { - int ret; VIR_DEBUG("mon=%p stats=%p nstats=%u", mon, stats, nr_stats); if (!mon) { @@ -1747,12 +1728,11 @@ qemuMonitorGetMemoryStats(qemuMonitorPtr mon, if (mon->json) { ignore_value(qemuMonitorFindBalloonObjectPath(mon, "/")); mon->ballooninit = true; - ret = qemuMonitorJSONGetMemoryStats(mon, mon->balloonpath, - stats, nr_stats); + return qemuMonitorJSONGetMemoryStats(mon, mon->balloonpath, + stats, nr_stats); } else { - ret = qemuMonitorTextGetMemoryStats(mon, stats, nr_stats); + return qemuMonitorTextGetMemoryStats(mon, stats, nr_stats); } - return ret; } @@ -1951,15 +1931,12 @@ qemuMonitorGetBlockExtent(qemuMonitorPtr mon, const char *dev_name, unsigned long long *extent) { - int ret; VIR_DEBUG("mon=%p, dev_name=%s", mon, dev_name); if (mon->json) - ret = qemuMonitorJSONGetBlockExtent(mon, dev_name, extent); + return qemuMonitorJSONGetBlockExtent(mon, dev_name, extent); else - ret = qemuMonitorTextGetBlockExtent(mon, dev_name, extent); - - return ret; + return qemuMonitorTextGetBlockExtent(mon, dev_name, extent); } @@ -1968,15 +1945,12 @@ qemuMonitorBlockResize(qemuMonitorPtr mon, const char *device, unsigned long long size) { - int ret; VIR_DEBUG("mon=%p, device=%s size=%llu", mon, device, size); if (mon->json) - ret = qemuMonitorJSONBlockResize(mon, device, size); + return qemuMonitorJSONBlockResize(mon, device, size); else - ret = qemuMonitorTextBlockResize(mon, device, size); - - return ret; + return qemuMonitorTextBlockResize(mon, device, size); } @@ -1984,7 +1958,6 @@ int qemuMonitorSetVNCPassword(qemuMonitorPtr mon, const char *password) { - int ret; VIR_DEBUG("mon=%p, password=%p", mon, password); if (!mon) { @@ -1997,10 +1970,9 @@ qemuMonitorSetVNCPassword(qemuMonitorPtr mon, password = ""; if (mon->json) - ret = qemuMonitorJSONSetVNCPassword(mon, password); + return qemuMonitorJSONSetVNCPassword(mon, password); else - ret = qemuMonitorTextSetVNCPassword(mon, password); - return ret; + return qemuMonitorTextSetVNCPassword(mon, password); } @@ -2029,7 +2001,6 @@ qemuMonitorSetPassword(qemuMonitorPtr mon, const char *action_if_connected) { const char *protocol = qemuMonitorTypeToProtocol(type); - int ret; if (!protocol) return -1; @@ -2050,10 +2021,9 @@ qemuMonitorSetPassword(qemuMonitorPtr mon, action_if_connected = "keep"; if (mon->json) - ret = qemuMonitorJSONSetPassword(mon, protocol, password, action_if_connected); + return qemuMonitorJSONSetPassword(mon, protocol, password, action_if_connected); else - ret = qemuMonitorTextSetPassword(mon, protocol, password, action_if_connected); - return ret; + return qemuMonitorTextSetPassword(mon, protocol, password, action_if_connected); } @@ -2063,7 +2033,6 @@ qemuMonitorExpirePassword(qemuMonitorPtr mon, const char *expire_time) { const char *protocol = qemuMonitorTypeToProtocol(type); - int ret; if (!protocol) return -1; @@ -2080,10 +2049,9 @@ qemuMonitorExpirePassword(qemuMonitorPtr mon, expire_time = "now"; if (mon->json) - ret = qemuMonitorJSONExpirePassword(mon, protocol, expire_time); + return qemuMonitorJSONExpirePassword(mon, protocol, expire_time); else - ret = qemuMonitorTextExpirePassword(mon, protocol, expire_time); - return ret; + return qemuMonitorTextExpirePassword(mon, protocol, expire_time); } @@ -2091,7 +2059,6 @@ int qemuMonitorSetBalloon(qemuMonitorPtr mon, unsigned long newmem) { - int ret; VIR_DEBUG("mon=%p newmem=%lu", mon, newmem); if (!mon) { @@ -2101,17 +2068,15 @@ qemuMonitorSetBalloon(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONSetBalloon(mon, newmem); + return qemuMonitorJSONSetBalloon(mon, newmem); else - ret = qemuMonitorTextSetBalloon(mon, newmem); - return ret; + return qemuMonitorTextSetBalloon(mon, newmem); } int qemuMonitorSetCPU(qemuMonitorPtr mon, int cpu, bool online) { - int ret; VIR_DEBUG("mon=%p cpu=%d online=%d", mon, cpu, online); if (!mon) { @@ -2121,10 +2086,9 @@ qemuMonitorSetCPU(qemuMonitorPtr mon, int cpu, bool online) } if (mon->json) - ret = qemuMonitorJSONSetCPU(mon, cpu, online); + return qemuMonitorJSONSetCPU(mon, cpu, online); else - ret = qemuMonitorTextSetCPU(mon, cpu, online); - return ret; + return qemuMonitorTextSetCPU(mon, cpu, online); } @@ -2133,7 +2097,6 @@ qemuMonitorEjectMedia(qemuMonitorPtr mon, const char *dev_name, bool force) { - int ret; VIR_DEBUG("mon=%p dev_name=%s force=%d", mon, dev_name, force); if (!mon) { @@ -2143,10 +2106,9 @@ qemuMonitorEjectMedia(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONEjectMedia(mon, dev_name, force); + return qemuMonitorJSONEjectMedia(mon, dev_name, force); else - ret = qemuMonitorTextEjectMedia(mon, dev_name, force); - return ret; + return qemuMonitorTextEjectMedia(mon, dev_name, force); } @@ -2156,7 +2118,6 @@ qemuMonitorChangeMedia(qemuMonitorPtr mon, const char *newmedia, const char *format) { - int ret; VIR_DEBUG("mon=%p dev_name=%s newmedia=%s format=%s", mon, dev_name, newmedia, format); @@ -2167,10 +2128,9 @@ qemuMonitorChangeMedia(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONChangeMedia(mon, dev_name, newmedia, format); + return qemuMonitorJSONChangeMedia(mon, dev_name, newmedia, format); else - ret = qemuMonitorTextChangeMedia(mon, dev_name, newmedia, format); - return ret; + return qemuMonitorTextChangeMedia(mon, dev_name, newmedia, format); } @@ -2180,7 +2140,6 @@ qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon, size_t length, const char *path) { - int ret; VIR_DEBUG("mon=%p offset=%llu length=%zu path=%s", mon, offset, length, path); @@ -2191,10 +2150,9 @@ qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONSaveVirtualMemory(mon, offset, length, path); + return qemuMonitorJSONSaveVirtualMemory(mon, offset, length, path); else - ret = qemuMonitorTextSaveVirtualMemory(mon, offset, length, path); - return ret; + return qemuMonitorTextSaveVirtualMemory(mon, offset, length, path); } @@ -2204,7 +2162,6 @@ qemuMonitorSavePhysicalMemory(qemuMonitorPtr mon, size_t length, const char *path) { - int ret; VIR_DEBUG("mon=%p offset=%llu length=%zu path=%s", mon, offset, length, path); @@ -2215,10 +2172,9 @@ qemuMonitorSavePhysicalMemory(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONSavePhysicalMemory(mon, offset, length, path); + return qemuMonitorJSONSavePhysicalMemory(mon, offset, length, path); else - ret = qemuMonitorTextSavePhysicalMemory(mon, offset, length, path); - return ret; + return qemuMonitorTextSavePhysicalMemory(mon, offset, length, path); } @@ -2226,7 +2182,6 @@ int qemuMonitorSetMigrationSpeed(qemuMonitorPtr mon, unsigned long bandwidth) { - int ret; VIR_DEBUG("mon=%p bandwidth=%lu", mon, bandwidth); if (!mon) { @@ -2243,10 +2198,9 @@ qemuMonitorSetMigrationSpeed(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONSetMigrationSpeed(mon, bandwidth); + return qemuMonitorJSONSetMigrationSpeed(mon, bandwidth); else - ret = qemuMonitorTextSetMigrationSpeed(mon, bandwidth); - return ret; + return qemuMonitorTextSetMigrationSpeed(mon, bandwidth); } @@ -2254,7 +2208,6 @@ int qemuMonitorSetMigrationDowntime(qemuMonitorPtr mon, unsigned long long downtime) { - int ret; VIR_DEBUG("mon=%p downtime=%llu", mon, downtime); if (!mon) { @@ -2264,10 +2217,9 @@ qemuMonitorSetMigrationDowntime(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONSetMigrationDowntime(mon, downtime); + return qemuMonitorJSONSetMigrationDowntime(mon, downtime); else - ret = qemuMonitorTextSetMigrationDowntime(mon, downtime); - return ret; + return qemuMonitorTextSetMigrationDowntime(mon, downtime); } @@ -2319,7 +2271,6 @@ int qemuMonitorGetMigrationStatus(qemuMonitorPtr mon, qemuMonitorMigrationStatusPtr status) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -2329,10 +2280,9 @@ qemuMonitorGetMigrationStatus(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONGetMigrationStatus(mon, status); + return qemuMonitorJSONGetMigrationStatus(mon, status); else - ret = qemuMonitorTextGetMigrationStatus(mon, status); - return ret; + return qemuMonitorTextGetMigrationStatus(mon, status); } @@ -2340,7 +2290,6 @@ int qemuMonitorGetSpiceMigrationStatus(qemuMonitorPtr mon, bool *spice_migrated) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -2350,14 +2299,12 @@ qemuMonitorGetSpiceMigrationStatus(qemuMonitorPtr mon, } if (mon->json) { - ret = qemuMonitorJSONGetSpiceMigrationStatus(mon, spice_migrated); + return qemuMonitorJSONGetSpiceMigrationStatus(mon, spice_migrated); } else { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("JSON monitor is required")); return -1; } - - return ret; } @@ -2553,7 +2500,6 @@ qemuMonitorMigrateToUnix(qemuMonitorPtr mon, int qemuMonitorMigrateCancel(qemuMonitorPtr mon) { - int ret; VIR_DEBUG("mon=%p", mon); if (!mon) { @@ -2563,10 +2509,9 @@ qemuMonitorMigrateCancel(qemuMonitorPtr mon) } if (mon->json) - ret = qemuMonitorJSONMigrateCancel(mon); + return qemuMonitorJSONMigrateCancel(mon); else - ret = qemuMonitorTextMigrateCancel(mon); - return ret; + return qemuMonitorTextMigrateCancel(mon); } @@ -2636,26 +2581,23 @@ qemuMonitorGraphicsRelocate(qemuMonitorPtr mon, int tlsPort, const char *tlsSubject) { - int ret; VIR_DEBUG("mon=%p type=%d hostname=%s port=%d tlsPort=%d tlsSubject=%s", mon, type, hostname, port, tlsPort, NULLSTR(tlsSubject)); if (mon->json) - ret = qemuMonitorJSONGraphicsRelocate(mon, - type, - hostname, - port, - tlsPort, - tlsSubject); + return qemuMonitorJSONGraphicsRelocate(mon, + type, + hostname, + port, + tlsPort, + tlsSubject); else - ret = qemuMonitorTextGraphicsRelocate(mon, - type, - hostname, - port, - tlsPort, - tlsSubject); - - return ret; + return qemuMonitorTextGraphicsRelocate(mon, + type, + hostname, + port, + tlsPort, + tlsSubject); } @@ -2663,7 +2605,6 @@ int qemuMonitorAddUSBDisk(qemuMonitorPtr mon, const char *path) { - int ret; VIR_DEBUG("mon=%p path=%s", mon, path); if (!mon) { @@ -2673,10 +2614,9 @@ qemuMonitorAddUSBDisk(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONAddUSBDisk(mon, path); + return qemuMonitorJSONAddUSBDisk(mon, path); else - ret = qemuMonitorTextAddUSBDisk(mon, path); - return ret; + return qemuMonitorTextAddUSBDisk(mon, path); } @@ -2685,7 +2625,6 @@ qemuMonitorAddUSBDeviceExact(qemuMonitorPtr mon, int bus, int dev) { - int ret; VIR_DEBUG("mon=%p bus=%d dev=%d", mon, bus, dev); if (!mon) { @@ -2695,10 +2634,9 @@ qemuMonitorAddUSBDeviceExact(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONAddUSBDeviceExact(mon, bus, dev); + return qemuMonitorJSONAddUSBDeviceExact(mon, bus, dev); else - ret = qemuMonitorTextAddUSBDeviceExact(mon, bus, dev); - return ret; + return qemuMonitorTextAddUSBDeviceExact(mon, bus, dev); } @@ -2707,7 +2645,6 @@ qemuMonitorAddUSBDeviceMatch(qemuMonitorPtr mon, int vendor, int product) { - int ret; VIR_DEBUG("mon=%p vendor=%d product=%d", mon, vendor, product); if (!mon) { @@ -2717,10 +2654,9 @@ qemuMonitorAddUSBDeviceMatch(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONAddUSBDeviceMatch(mon, vendor, product); + return qemuMonitorJSONAddUSBDeviceMatch(mon, vendor, product); else - ret = qemuMonitorTextAddUSBDeviceMatch(mon, vendor, product); - return ret; + return qemuMonitorTextAddUSBDeviceMatch(mon, vendor, product); } @@ -2729,7 +2665,6 @@ qemuMonitorAddPCIHostDevice(qemuMonitorPtr mon, virDevicePCIAddress *hostAddr, virDevicePCIAddress *guestAddr) { - int ret; VIR_DEBUG("mon=%p domain=%d bus=%d slot=%d function=%d", mon, hostAddr->domain, hostAddr->bus, hostAddr->slot, hostAddr->function); @@ -2741,10 +2676,9 @@ qemuMonitorAddPCIHostDevice(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONAddPCIHostDevice(mon, hostAddr, guestAddr); + return qemuMonitorJSONAddPCIHostDevice(mon, hostAddr, guestAddr); else - ret = qemuMonitorTextAddPCIHostDevice(mon, hostAddr, guestAddr); - return ret; + return qemuMonitorTextAddPCIHostDevice(mon, hostAddr, guestAddr); } @@ -2754,7 +2688,6 @@ qemuMonitorAddPCIDisk(qemuMonitorPtr mon, const char *bus, virDevicePCIAddress *guestAddr) { - int ret; VIR_DEBUG("mon=%p path=%s bus=%s", mon, path, bus); if (!mon) { @@ -2764,10 +2697,9 @@ qemuMonitorAddPCIDisk(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONAddPCIDisk(mon, path, bus, guestAddr); + return qemuMonitorJSONAddPCIDisk(mon, path, bus, guestAddr); else - ret = qemuMonitorTextAddPCIDisk(mon, path, bus, guestAddr); - return ret; + return qemuMonitorTextAddPCIDisk(mon, path, bus, guestAddr); } @@ -2776,7 +2708,6 @@ qemuMonitorAddPCINetwork(qemuMonitorPtr mon, const char *nicstr, virDevicePCIAddress *guestAddr) { - int ret; VIR_DEBUG("mon=%p nicstr=%s", mon, nicstr); if (!mon) { @@ -2786,10 +2717,9 @@ qemuMonitorAddPCINetwork(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONAddPCINetwork(mon, nicstr, guestAddr); + return qemuMonitorJSONAddPCINetwork(mon, nicstr, guestAddr); else - ret = qemuMonitorTextAddPCINetwork(mon, nicstr, guestAddr); - return ret; + return qemuMonitorTextAddPCINetwork(mon, nicstr, guestAddr); } @@ -2797,7 +2727,6 @@ int qemuMonitorRemovePCIDevice(qemuMonitorPtr mon, virDevicePCIAddress *guestAddr) { - int ret; VIR_DEBUG("mon=%p domain=%d bus=%d slot=%d function=%d", mon, guestAddr->domain, guestAddr->bus, guestAddr->slot, guestAddr->function); @@ -2809,10 +2738,9 @@ qemuMonitorRemovePCIDevice(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONRemovePCIDevice(mon, guestAddr); + return qemuMonitorJSONRemovePCIDevice(mon, guestAddr); else - ret = qemuMonitorTextRemovePCIDevice(mon, guestAddr); - return ret; + return qemuMonitorTextRemovePCIDevice(mon, guestAddr); } @@ -2821,7 +2749,6 @@ qemuMonitorSendFileHandle(qemuMonitorPtr mon, const char *fdname, int fd) { - int ret; VIR_DEBUG("mon=%p, fdname=%s fd=%d", mon, fdname, fd); if (!mon) { @@ -2844,10 +2771,9 @@ qemuMonitorSendFileHandle(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONSendFileHandle(mon, fdname, fd); + return qemuMonitorJSONSendFileHandle(mon, fdname, fd); else - ret = qemuMonitorTextSendFileHandle(mon, fdname, fd); - return ret; + return qemuMonitorTextSendFileHandle(mon, fdname, fd); } @@ -2888,7 +2814,6 @@ qemuMonitorCloseFileHandle(qemuMonitorPtr mon, int qemuMonitorAddFd(qemuMonitorPtr mon, int fdset, int fd, const char *name) { - int ret = -1; VIR_DEBUG("mon=%p, fdset=%d, fd=%d, name=%s", mon, fdset, fd, NULLSTR(name)); if (!mon) { @@ -2910,12 +2835,13 @@ qemuMonitorAddFd(qemuMonitorPtr mon, int fdset, int fd, const char *name) return -1; } - if (mon->json) - ret = qemuMonitorJSONAddFd(mon, fdset, fd, name); - else + if (mon->json) { + return qemuMonitorJSONAddFd(mon, fdset, fd, name); + } else { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("add fd requires JSON monitor")); - return ret; + return -1; + } } @@ -3009,7 +2935,6 @@ qemuMonitorRemoveHostNetwork(qemuMonitorPtr mon, int vlan, const char *netname) { - int ret = -1; VIR_DEBUG("mon=%p netname=%s", mon, netname); if (!mon) { @@ -3018,12 +2943,13 @@ qemuMonitorRemoveHostNetwork(qemuMonitorPtr mon, return -1; } - if (mon->json) + if (mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("JSON monitor should be using RemoveNetdev")); - else - ret = qemuMonitorTextRemoveHostNetwork(mon, vlan, netname); - return ret; + return -1; + } + + return qemuMonitorTextRemoveHostNetwork(mon, vlan, netname); } @@ -3081,7 +3007,6 @@ int qemuMonitorRemoveNetdev(qemuMonitorPtr mon, const char *alias) { - int ret; VIR_DEBUG("mon=%p alias=%s", mon, alias); if (!mon) { @@ -3091,10 +3016,9 @@ qemuMonitorRemoveNetdev(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONRemoveNetdev(mon, alias); + return qemuMonitorJSONRemoveNetdev(mon, alias); else - ret = qemuMonitorTextRemoveNetdev(mon, alias); - return ret; + return qemuMonitorTextRemoveNetdev(mon, alias); } @@ -3102,7 +3026,6 @@ int qemuMonitorQueryRxFilter(qemuMonitorPtr mon, const char *alias, virNetDevRxFilterPtr *filter) { - int ret = -1; VIR_DEBUG("mon=%p alias=%s filter=%p", mon, alias, filter); if (!mon) { @@ -3111,12 +3034,13 @@ qemuMonitorQueryRxFilter(qemuMonitorPtr mon, const char *alias, return -1; } - if (mon->json) - ret = qemuMonitorJSONQueryRxFilter(mon, alias, filter); - else + if (!mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("query-rx-filter requires JSON monitor")); - return ret; + return -1; + } + + return qemuMonitorJSONQueryRxFilter(mon, alias, filter); } @@ -3173,7 +3097,6 @@ qemuMonitorAttachPCIDiskController(qemuMonitorPtr mon, virDevicePCIAddress *guestAddr) { VIR_DEBUG("mon=%p type=%s", mon, bus); - int ret; if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3182,11 +3105,9 @@ qemuMonitorAttachPCIDiskController(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONAttachPCIDiskController(mon, bus, guestAddr); + return qemuMonitorJSONAttachPCIDiskController(mon, bus, guestAddr); else - ret = qemuMonitorTextAttachPCIDiskController(mon, bus, guestAddr); - - return ret; + return qemuMonitorTextAttachPCIDiskController(mon, bus, guestAddr); } @@ -3199,7 +3120,6 @@ qemuMonitorAttachDrive(qemuMonitorPtr mon, VIR_DEBUG("mon=%p drivestr=%s domain=%d bus=%d slot=%d function=%d", mon, drivestr, controllerAddr->domain, controllerAddr->bus, controllerAddr->slot, controllerAddr->function); - int ret = 1; if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3207,13 +3127,13 @@ qemuMonitorAttachDrive(qemuMonitorPtr mon, return -1; } - if (mon->json) + if (mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("JSON monitor should be using AddDrive")); - else - ret = qemuMonitorTextAttachDrive(mon, drivestr, controllerAddr, driveAddr); + return -1; + } - return ret; + return qemuMonitorTextAttachDrive(mon, drivestr, controllerAddr, driveAddr); } @@ -3222,7 +3142,6 @@ qemuMonitorGetAllPCIAddresses(qemuMonitorPtr mon, qemuMonitorPCIAddress **addrs) { VIR_DEBUG("mon=%p addrs=%p", mon, addrs); - int ret; if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3231,10 +3150,9 @@ qemuMonitorGetAllPCIAddresses(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONGetAllPCIAddresses(mon, addrs); + return qemuMonitorJSONGetAllPCIAddresses(mon, addrs); else - ret = qemuMonitorTextGetAllPCIAddresses(mon, addrs); - return ret; + return qemuMonitorTextGetAllPCIAddresses(mon, addrs); } @@ -3243,7 +3161,6 @@ qemuMonitorDriveDel(qemuMonitorPtr mon, const char *drivestr) { VIR_DEBUG("mon=%p drivestr=%s", mon, drivestr); - int ret; if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3252,10 +3169,9 @@ qemuMonitorDriveDel(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONDriveDel(mon, drivestr); + return qemuMonitorJSONDriveDel(mon, drivestr); else - ret = qemuMonitorTextDriveDel(mon, drivestr); - return ret; + return qemuMonitorTextDriveDel(mon, drivestr); } @@ -3264,7 +3180,6 @@ qemuMonitorDelDevice(qemuMonitorPtr mon, const char *devalias) { VIR_DEBUG("mon=%p devalias=%s", mon, devalias); - int ret; if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3273,10 +3188,9 @@ qemuMonitorDelDevice(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONDelDevice(mon, devalias); + return qemuMonitorJSONDelDevice(mon, devalias); else - ret = qemuMonitorTextDelDevice(mon, devalias); - return ret; + return qemuMonitorTextDelDevice(mon, devalias); } @@ -3339,17 +3253,15 @@ qemuMonitorAddObject(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p type=%s objalias=%s props=%p", mon, type, objalias, props); - int ret = -1; - if (mon->json) { - ret = qemuMonitorJSONAddObject(mon, type, objalias, props); - } else { + if (!mon->json) { virJSONValueFree(props); virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("object adding requires JSON monitor")); + return -1; } - return ret; + return qemuMonitorJSONAddObject(mon, type, objalias, props); } @@ -3358,15 +3270,14 @@ qemuMonitorDelObject(qemuMonitorPtr mon, const char *objalias) { VIR_DEBUG("mon=%p objalias=%s", mon, objalias); - int ret = -1; - if (mon->json) - ret = qemuMonitorJSONDelObject(mon, objalias); - else + if (!mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("object deletion requires JSON monitor")); + return -1; + } - return ret; + return qemuMonitorJSONDelObject(mon, objalias); } @@ -3375,7 +3286,6 @@ qemuMonitorAddDrive(qemuMonitorPtr mon, const char *drivestr) { VIR_DEBUG("mon=%p drive=%s", mon, drivestr); - int ret; if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3384,10 +3294,9 @@ qemuMonitorAddDrive(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONAddDrive(mon, drivestr); + return qemuMonitorJSONAddDrive(mon, drivestr); else - ret = qemuMonitorTextAddDrive(mon, drivestr); - return ret; + return qemuMonitorTextAddDrive(mon, drivestr); } @@ -3397,7 +3306,6 @@ qemuMonitorSetDrivePassphrase(qemuMonitorPtr mon, const char *passphrase) { VIR_DEBUG("mon=%p alias=%s passphrase=%p(value hidden)", mon, alias, passphrase); - int ret; if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -3406,18 +3314,15 @@ qemuMonitorSetDrivePassphrase(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONSetDrivePassphrase(mon, alias, passphrase); + return qemuMonitorJSONSetDrivePassphrase(mon, alias, passphrase); else - ret = qemuMonitorTextSetDrivePassphrase(mon, alias, passphrase); - return ret; + return qemuMonitorTextSetDrivePassphrase(mon, alias, passphrase); } int qemuMonitorCreateSnapshot(qemuMonitorPtr mon, const char *name) { - int ret; - VIR_DEBUG("mon=%p, name=%s", mon, name); if (!mon) { @@ -3427,17 +3332,14 @@ qemuMonitorCreateSnapshot(qemuMonitorPtr mon, const char *name) } if (mon->json) - ret = qemuMonitorJSONCreateSnapshot(mon, name); + return qemuMonitorJSONCreateSnapshot(mon, name); else - ret = qemuMonitorTextCreateSnapshot(mon, name); - return ret; + return qemuMonitorTextCreateSnapshot(mon, name); } int qemuMonitorLoadSnapshot(qemuMonitorPtr mon, const char *name) { - int ret; - VIR_DEBUG("mon=%p, name=%s", mon, name); if (!mon) { @@ -3447,18 +3349,15 @@ qemuMonitorLoadSnapshot(qemuMonitorPtr mon, const char *name) } if (mon->json) - ret = qemuMonitorJSONLoadSnapshot(mon, name); + return qemuMonitorJSONLoadSnapshot(mon, name); else - ret = qemuMonitorTextLoadSnapshot(mon, name); - return ret; + return qemuMonitorTextLoadSnapshot(mon, name); } int qemuMonitorDeleteSnapshot(qemuMonitorPtr mon, const char *name) { - int ret; - VIR_DEBUG("mon=%p, name=%s", mon, name); if (!mon) { @@ -3468,10 +3367,9 @@ qemuMonitorDeleteSnapshot(qemuMonitorPtr mon, const char *name) } if (mon->json) - ret = qemuMonitorJSONDeleteSnapshot(mon, name); + return qemuMonitorJSONDeleteSnapshot(mon, name); else - ret = qemuMonitorTextDeleteSnapshot(mon, name); - return ret; + return qemuMonitorTextDeleteSnapshot(mon, name); } @@ -3483,8 +3381,6 @@ qemuMonitorDiskSnapshot(qemuMonitorPtr mon, virJSONValuePtr actions, const char *device, const char *file, const char *format, bool reuse) { - int ret = -1; - VIR_DEBUG("mon=%p, actions=%p, device=%s, file=%s, format=%s, reuse=%d", mon, actions, device, file, format, reuse); @@ -3494,13 +3390,12 @@ qemuMonitorDiskSnapshot(qemuMonitorPtr mon, virJSONValuePtr actions, return -1; } - if (mon->json) - ret = qemuMonitorJSONDiskSnapshot(mon, actions, device, file, format, - reuse); - else + if (!mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("disk snapshot requires JSON monitor")); - return ret; + } + + return qemuMonitorJSONDiskSnapshot(mon, actions, device, file, format, reuse); } @@ -3512,20 +3407,19 @@ qemuMonitorDriveMirror(qemuMonitorPtr mon, unsigned int granularity, unsigned long long buf_size, unsigned int flags) { - int ret = -1; - VIR_DEBUG("mon=%p, device=%s, file=%s, format=%s, bandwidth=%lld, " "granularity=%#x, buf_size=%lld, flags=%x", mon, device, file, NULLSTR(format), bandwidth, granularity, buf_size, flags); - if (mon->json) - ret = qemuMonitorJSONDriveMirror(mon, device, file, format, bandwidth, - granularity, buf_size, flags); - else + if (!mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("drive-mirror requires JSON monitor")); - return ret; + return -1; + } + + return qemuMonitorJSONDriveMirror(mon, device, file, format, bandwidth, + granularity, buf_size, flags); } @@ -3533,16 +3427,14 @@ qemuMonitorDriveMirror(qemuMonitorPtr mon, int qemuMonitorTransaction(qemuMonitorPtr mon, virJSONValuePtr actions) { - int ret = -1; - VIR_DEBUG("mon=%p, actions=%p", mon, actions); - if (mon->json) - ret = qemuMonitorJSONTransaction(mon, actions); - else + if (!mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("transaction requires JSON monitor")); - return ret; + } + + return qemuMonitorJSONTransaction(mon, actions); } @@ -3553,19 +3445,18 @@ qemuMonitorBlockCommit(qemuMonitorPtr mon, const char *device, const char *backingName, unsigned long long bandwidth) { - int ret = -1; - VIR_DEBUG("mon=%p, device=%s, top=%s, base=%s, backingName=%s, " "bandwidth=%llu", mon, device, top, base, NULLSTR(backingName), bandwidth); - if (mon->json) - ret = qemuMonitorJSONBlockCommit(mon, device, top, base, - backingName, bandwidth); - else + if (!mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("block-commit requires JSON monitor")); - return ret; + return -1; + } + + return qemuMonitorJSONBlockCommit(mon, device, top, base, + backingName, bandwidth); } @@ -3621,30 +3512,24 @@ qemuMonitorArbitraryCommand(qemuMonitorPtr mon, char **reply, bool hmp) { - int ret; - VIR_DEBUG("mon=%p, cmd=%s, reply=%p, hmp=%d", mon, cmd, reply, hmp); if (mon->json) - ret = qemuMonitorJSONArbitraryCommand(mon, cmd, reply, hmp); + return qemuMonitorJSONArbitraryCommand(mon, cmd, reply, hmp); else - ret = qemuMonitorTextArbitraryCommand(mon, cmd, reply); - return ret; + return qemuMonitorTextArbitraryCommand(mon, cmd, reply); } int qemuMonitorInjectNMI(qemuMonitorPtr mon) { - int ret; - VIR_DEBUG("mon=%p", mon); if (mon->json) - ret = qemuMonitorJSONInjectNMI(mon); + return qemuMonitorJSONInjectNMI(mon); else - ret = qemuMonitorTextInjectNMI(mon); - return ret; + return qemuMonitorTextInjectNMI(mon); } @@ -3654,15 +3539,12 @@ qemuMonitorSendKey(qemuMonitorPtr mon, unsigned int *keycodes, unsigned int nkeycodes) { - int ret; - VIR_DEBUG("mon=%p, holdtime=%u, nkeycodes=%u", mon, holdtime, nkeycodes); if (mon->json) - ret = qemuMonitorJSONSendKey(mon, holdtime, keycodes, nkeycodes); + return qemuMonitorJSONSendKey(mon, holdtime, keycodes, nkeycodes); else - ret = qemuMonitorTextSendKey(mon, holdtime, keycodes, nkeycodes); - return ret; + return qemuMonitorTextSendKey(mon, holdtime, keycodes, nkeycodes); } @@ -3670,9 +3552,6 @@ int qemuMonitorScreendump(qemuMonitorPtr mon, const char *file) { - - int ret; - VIR_DEBUG("mon=%p, file=%s", mon, file); if (!mon) { @@ -3682,10 +3561,9 @@ qemuMonitorScreendump(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONScreendump(mon, file); + return qemuMonitorJSONScreendump(mon, file); else - ret = qemuMonitorTextScreendump(mon, file); - return ret; + return qemuMonitorTextScreendump(mon, file); } @@ -3756,17 +3634,16 @@ qemuMonitorBlockJobInfo(qemuMonitorPtr mon, virDomainBlockJobInfoPtr info, unsigned long long *bandwidth) { - int ret = -1; - VIR_DEBUG("mon=%p, device=%s, info=%p, bandwidth=%p", mon, device, info, bandwidth); - if (mon->json) - ret = qemuMonitorJSONBlockJobInfo(mon, device, info, bandwidth); - else + if (!mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("block jobs require JSON monitor")); - return ret; + return -1; + } + + return qemuMonitorJSONBlockJobInfo(mon, device, info, bandwidth); } @@ -3776,16 +3653,12 @@ qemuMonitorSetBlockIoThrottle(qemuMonitorPtr mon, virDomainBlockIoTuneInfoPtr info, bool supportMaxOptions) { - int ret; - VIR_DEBUG("mon=%p, device=%p, info=%p", mon, device, info); - if (mon->json) { - ret = qemuMonitorJSONSetBlockIoThrottle(mon, device, info, supportMaxOptions); - } else { - ret = qemuMonitorTextSetBlockIoThrottle(mon, device, info); - } - return ret; + if (mon->json) + return qemuMonitorJSONSetBlockIoThrottle(mon, device, info, supportMaxOptions); + else + return qemuMonitorTextSetBlockIoThrottle(mon, device, info); } @@ -3795,16 +3668,12 @@ qemuMonitorGetBlockIoThrottle(qemuMonitorPtr mon, virDomainBlockIoTuneInfoPtr reply, bool supportMaxOptions) { - int ret; - VIR_DEBUG("mon=%p, device=%p, reply=%p", mon, device, reply); - if (mon->json) { - ret = qemuMonitorJSONGetBlockIoThrottle(mon, device, reply, supportMaxOptions); - } else { - ret = qemuMonitorTextGetBlockIoThrottle(mon, device, reply); - } - return ret; + if (mon->json) + return qemuMonitorJSONGetBlockIoThrottle(mon, device, reply, supportMaxOptions); + else + return qemuMonitorTextGetBlockIoThrottle(mon, device, reply); } -- 2.3.5

On Tue, Apr 14, 2015 at 18:05:08 +0200, Peter Krempa wrote:
Quite a lot places set the 'ret' variable just once right before returning it's value. Remove such usage. --- src/qemu/qemu_monitor.c | 465 +++++++++++++++++------------------------------- 1 file changed, 167 insertions(+), 298 deletions(-)
ACK Jirka

Add the attribute and remove the check. --- src/qemu/qemu_monitor.c | 4 ++-- src/qemu/qemu_monitor.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index c91a660..20605cd 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1586,9 +1586,9 @@ qemuMonitorGetStatus(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, running=%p, reason=%p", mon, running, reason); - if (!mon || !running) { + if (!mon) { virReportError(VIR_ERR_INVALID_ARG, "%s", - _("both monitor and running must not be NULL")); + _("monitor must not be NULL")); return -1; } diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 999af10..3e9c43c 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -335,7 +335,8 @@ int qemuMonitorVMStatusToPausedReason(const char *status); int qemuMonitorGetStatus(qemuMonitorPtr mon, bool *running, - virDomainPausedReason *reason); + virDomainPausedReason *reason) + ATTRIBUTE_NONNULL(2); int qemuMonitorSystemReset(qemuMonitorPtr mon); int qemuMonitorSystemPowerdown(qemuMonitorPtr mon); -- 2.3.5

On Tue, Apr 14, 2015 at 18:05:09 +0200, Peter Krempa wrote:
Add the attribute and remove the check. --- src/qemu/qemu_monitor.c | 4 ++-- src/qemu/qemu_monitor.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-)
ACK Jirka

Commit f6563bc3 introduced HMP impl of the function (so that a different uglier function could be removed). Before the HMP code is called there's a leftover check that the monitor is JSON which inhibits the code from working. --- src/qemu/qemu_monitor.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 20605cd..d5bdfb8 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1873,12 +1873,6 @@ qemuMonitorGetAllBlockStatsInfo(qemuMonitorPtr mon, int ret = -1; VIR_DEBUG("mon=%p ret_stats=%p, backing=%d", mon, ret_stats, backingChain); - if (!mon->json) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("unable to query all block stats with this QEMU")); - return -1; - } - if (!(*ret_stats = virHashCreate(10, virHashValueFree))) goto error; -- 2.3.5

On Tue, Apr 14, 2015 at 18:05:10 +0200, Peter Krempa wrote:
Commit f6563bc3 introduced HMP impl of the function (so that a different uglier function could be removed). Before the HMP code is called there's a leftover check that the monitor is JSON which inhibits the code from working. --- src/qemu/qemu_monitor.c | 6 ------ 1 file changed, 6 deletions(-)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 20605cd..d5bdfb8 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1873,12 +1873,6 @@ qemuMonitorGetAllBlockStatsInfo(qemuMonitorPtr mon, int ret = -1; VIR_DEBUG("mon=%p ret_stats=%p, backing=%d", mon, ret_stats, backingChain);
- if (!mon->json) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("unable to query all block stats with this QEMU")); - return -1; - } - if (!(*ret_stats = virHashCreate(10, virHashValueFree))) goto error;
ACK Jirka

Among all the monitor APIs some where checking if mon is NULL and some were not. Since it's possible to have mon equal to NULL in case a second call is attempted once entered the monitor. This requires that every single API checks for the monitor. This patch adds a macro that helps checking the state of the monitor and either refactors existing checking code to use the macro or adds it in case it was missing. --- src/qemu/qemu_monitor.c | 918 +++++++++--------------------------------------- src/qemu/qemu_monitor.h | 18 +- 2 files changed, 174 insertions(+), 762 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index d5bdfb8..e5630f1 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -98,6 +98,32 @@ struct _qemuMonitor { int logfd; }; +/** + * QEMU_CHECK_MONITOR_FULL: + * @MON: monitor pointer variable to check, evaluated multiple times, no parentheses + * @FORCE_JSON: force JSON monitor, true or false + * @EXIT: statement that is used to exit the function + * + * This macro checks that the monitor is valid for given operation and exits + * the function if not. The macro also adds a debug statement regarding the + * monitor. + */ +#define QEMU_CHECK_MONITOR_FULL(MON, FORCE_JSON, EXIT) \ + if (!MON) { \ + virReportError(VIR_ERR_INVALID_ARG, "%s", \ + _("Monitor must not be NULL")); \ + EXIT; \ + } \ + VIR_DEBUG("Mon:%p vm:%p json:%d fd:%d", MON, MON->vm, MON->json, MON->fd); \ + if (FORCE_JSON && !MON->json) { \ + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", \ + _("JSON monitor is required")); \ + EXIT; \ + } + +#define QEMU_CHECK_MONITOR(MON) QEMU_CHECK_MONITOR_FULL(MON, false, return -1) +#define QEMU_CHECK_MONITOR_JSON(MON) QEMU_CHECK_MONITOR_FULL(MON, true, return -1) + static virClassPtr qemuMonitorClass; static void qemuMonitorDispose(void *obj); @@ -1188,6 +1214,8 @@ qemuMonitorUpdateVideoMemorySize(qemuMonitorPtr mon, int ret = -1; char *path = NULL; + QEMU_CHECK_MONITOR(mon); + if (mon->json) { ret = qemuMonitorFindObjectPath(mon, "/", videoName, &path); if (ret < 0) { @@ -1216,6 +1244,8 @@ qemuMonitorHMPCommandWithFd(qemuMonitorPtr mon, char *json_cmd = NULL; int ret = -1; + QEMU_CHECK_MONITOR(mon); + if (mon->json) { /* hack to avoid complicating each call to text monitor functions */ json_cmd = qemuMonitorUnescapeArg(cmd); @@ -1527,13 +1557,7 @@ qemuMonitorEmitSerialChange(qemuMonitorPtr mon, int qemuMonitorSetCapabilities(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (!mon->json) return 0; @@ -1546,13 +1570,7 @@ int qemuMonitorStartCPUs(qemuMonitorPtr mon, virConnectPtr conn) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONStartCPUs(mon, conn); @@ -1564,13 +1582,7 @@ qemuMonitorStartCPUs(qemuMonitorPtr mon, int qemuMonitorStopCPUs(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONStopCPUs(mon); @@ -1586,11 +1598,7 @@ qemuMonitorGetStatus(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, running=%p, reason=%p", mon, running, reason); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONGetStatus(mon, running, reason); @@ -1602,13 +1610,7 @@ qemuMonitorGetStatus(qemuMonitorPtr mon, int qemuMonitorSystemPowerdown(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONSystemPowerdown(mon); @@ -1620,13 +1622,7 @@ qemuMonitorSystemPowerdown(qemuMonitorPtr mon) int qemuMonitorSystemReset(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONSystemReset(mon); @@ -1639,13 +1635,7 @@ int qemuMonitorGetCPUInfo(qemuMonitorPtr mon, int **pids) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONGetCPUInfo(mon, pids); @@ -1661,11 +1651,7 @@ qemuMonitorSetLink(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, name=%s, state=%u", mon, name, state); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONSetLink(mon, name, state); @@ -1678,13 +1664,7 @@ int qemuMonitorGetVirtType(qemuMonitorPtr mon, int *virtType) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONGetVirtType(mon, virtType); @@ -1697,13 +1677,7 @@ int qemuMonitorGetBalloonInfo(qemuMonitorPtr mon, unsigned long long *currmem) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONGetBalloonInfo(mon, currmem); @@ -1719,11 +1693,7 @@ qemuMonitorGetMemoryStats(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p stats=%p nstats=%u", mon, stats, nr_stats); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) { ignore_value(qemuMonitorFindBalloonObjectPath(mon, "/")); @@ -1810,13 +1780,7 @@ qemuMonitorGetBlockInfo(qemuMonitorPtr mon) int ret; virHashTablePtr table; - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return NULL; - } + QEMU_CHECK_MONITOR_FULL(mon, false, return NULL); if (!(table = virHashCreate(32, virHashValueFree))) return NULL; @@ -1876,6 +1840,8 @@ qemuMonitorGetAllBlockStatsInfo(qemuMonitorPtr mon, if (!(*ret_stats = virHashCreate(10, virHashValueFree))) goto error; + QEMU_CHECK_MONITOR(mon); + if (mon->json) { ret = qemuMonitorJSONGetAllBlockStatsInfo(mon, *ret_stats, backingChain); @@ -1910,11 +1876,7 @@ qemuMonitorBlockStatsUpdateCapacity(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, stats=%p, backing=%d", mon, stats, backingChain); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("block capacity/size info requires JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONBlockStatsUpdateCapacity(mon, stats, backingChain); } @@ -1927,6 +1889,8 @@ qemuMonitorGetBlockExtent(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, dev_name=%s", mon, dev_name); + QEMU_CHECK_MONITOR(mon); + if (mon->json) return qemuMonitorJSONGetBlockExtent(mon, dev_name, extent); else @@ -1941,6 +1905,8 @@ qemuMonitorBlockResize(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, device=%s size=%llu", mon, device, size); + QEMU_CHECK_MONITOR(mon); + if (mon->json) return qemuMonitorJSONBlockResize(mon, device, size); else @@ -1954,11 +1920,7 @@ qemuMonitorSetVNCPassword(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, password=%p", mon, password); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (!password) password = ""; @@ -2002,11 +1964,7 @@ qemuMonitorSetPassword(qemuMonitorPtr mon, VIR_DEBUG("mon=%p, protocol=%s, password=%p, action_if_connected=%s", mon, protocol, password, action_if_connected); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (!password) password = ""; @@ -2033,11 +1991,7 @@ qemuMonitorExpirePassword(qemuMonitorPtr mon, VIR_DEBUG("mon=%p, protocol=%s, expire_time=%s", mon, protocol, expire_time); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (!expire_time) expire_time = "now"; @@ -2055,11 +2009,7 @@ qemuMonitorSetBalloon(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p newmem=%lu", mon, newmem); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONSetBalloon(mon, newmem); @@ -2073,11 +2023,7 @@ qemuMonitorSetCPU(qemuMonitorPtr mon, int cpu, bool online) { VIR_DEBUG("mon=%p cpu=%d online=%d", mon, cpu, online); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONSetCPU(mon, cpu, online); @@ -2093,11 +2039,7 @@ qemuMonitorEjectMedia(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p dev_name=%s force=%d", mon, dev_name, force); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONEjectMedia(mon, dev_name, force); @@ -2115,11 +2057,7 @@ qemuMonitorChangeMedia(qemuMonitorPtr mon, VIR_DEBUG("mon=%p dev_name=%s newmedia=%s format=%s", mon, dev_name, newmedia, format); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONChangeMedia(mon, dev_name, newmedia, format); @@ -2137,11 +2075,7 @@ qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon, VIR_DEBUG("mon=%p offset=%llu length=%zu path=%s", mon, offset, length, path); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONSaveVirtualMemory(mon, offset, length, path); @@ -2159,11 +2093,7 @@ qemuMonitorSavePhysicalMemory(qemuMonitorPtr mon, VIR_DEBUG("mon=%p offset=%llu length=%zu path=%s", mon, offset, length, path); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONSavePhysicalMemory(mon, offset, length, path); @@ -2178,11 +2108,7 @@ qemuMonitorSetMigrationSpeed(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p bandwidth=%lu", mon, bandwidth); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (bandwidth > QEMU_DOMAIN_MIG_BANDWIDTH_MAX) { virReportError(VIR_ERR_OVERFLOW, @@ -2204,11 +2130,7 @@ qemuMonitorSetMigrationDowntime(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p downtime=%llu", mon, downtime); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONSetMigrationDowntime(mon, downtime); @@ -2223,17 +2145,7 @@ qemuMonitorGetMigrationCacheSize(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p cacheSize=%p", mon, cacheSize); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetMigrationCacheSize(mon, cacheSize); } @@ -2245,17 +2157,7 @@ qemuMonitorSetMigrationCacheSize(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p cacheSize=%llu", mon, cacheSize); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONSetMigrationCacheSize(mon, cacheSize); } @@ -2265,13 +2167,7 @@ int qemuMonitorGetMigrationStatus(qemuMonitorPtr mon, qemuMonitorMigrationStatusPtr status) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONGetMigrationStatus(mon, status); @@ -2284,21 +2180,9 @@ int qemuMonitorGetSpiceMigrationStatus(qemuMonitorPtr mon, bool *spice_migrated) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); - if (mon->json) { - return qemuMonitorJSONGetSpiceMigrationStatus(mon, spice_migrated); - } else { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + return qemuMonitorJSONGetSpiceMigrationStatus(mon, spice_migrated); } @@ -2310,11 +2194,7 @@ qemuMonitorMigrateToFd(qemuMonitorPtr mon, int ret; VIR_DEBUG("mon=%p fd=%d flags=%x", mon, fd, flags); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (qemuMonitorSendFileHandle(mon, "migrate", fd) < 0) return -1; @@ -2344,11 +2224,7 @@ qemuMonitorMigrateToHost(qemuMonitorPtr mon, char *uri = NULL; VIR_DEBUG("mon=%p hostname=%s port=%d flags=%x", mon, hostname, port, flags); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (virAsprintf(&uri, "%s:%s:%d", protocol, hostname, port) < 0) return -1; @@ -2373,11 +2249,7 @@ qemuMonitorMigrateToCommand(qemuMonitorPtr mon, int ret = -1; VIR_DEBUG("mon=%p argv=%p flags=%x", mon, argv, flags); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); argstr = virArgvToString(argv); if (!argstr) @@ -2413,11 +2285,7 @@ qemuMonitorMigrateToFile(qemuMonitorPtr mon, VIR_DEBUG("mon=%p argv=%p target=%s offset=%llu flags=%x", mon, argv, target, offset, flags); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (offset % QEMU_MONITOR_MIGRATE_TO_FILE_BS) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -2472,11 +2340,7 @@ qemuMonitorMigrateToUnix(qemuMonitorPtr mon, int ret = -1; VIR_DEBUG("mon=%p, unixfile=%s flags=%x", mon, unixfile, flags); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (virAsprintf(&dest, "unix:%s", unixfile) < 0) return -1; @@ -2494,13 +2358,7 @@ qemuMonitorMigrateToUnix(qemuMonitorPtr mon, int qemuMonitorMigrateCancel(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONMigrateCancel(mon); @@ -2518,11 +2376,7 @@ qemuMonitorGetDumpGuestMemoryCapability(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p capability=%s", mon, capability); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); /* No capability is supported without JSON monitor */ if (!mon->json) @@ -2538,20 +2392,7 @@ qemuMonitorDumpToFd(qemuMonitorPtr mon, int fd, const char *dumpformat) int ret; VIR_DEBUG("mon=%p fd=%d dumpformat=%s", mon, fd, dumpformat); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - /* We don't have qemuMonitorTextDump(), so we should check mon->json - * here. - */ - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("dump-guest-memory is not supported in text mode")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); if (qemuMonitorSendFileHandle(mon, "dump", fd) < 0) return -1; @@ -2578,6 +2419,8 @@ qemuMonitorGraphicsRelocate(qemuMonitorPtr mon, VIR_DEBUG("mon=%p type=%d hostname=%s port=%d tlsPort=%d tlsSubject=%s", mon, type, hostname, port, tlsPort, NULLSTR(tlsSubject)); + QEMU_CHECK_MONITOR(mon); + if (mon->json) return qemuMonitorJSONGraphicsRelocate(mon, type, @@ -2601,11 +2444,7 @@ qemuMonitorAddUSBDisk(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p path=%s", mon, path); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONAddUSBDisk(mon, path); @@ -2621,11 +2460,7 @@ qemuMonitorAddUSBDeviceExact(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p bus=%d dev=%d", mon, bus, dev); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONAddUSBDeviceExact(mon, bus, dev); @@ -2641,11 +2476,7 @@ qemuMonitorAddUSBDeviceMatch(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p vendor=%d product=%d", mon, vendor, product); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONAddUSBDeviceMatch(mon, vendor, product); @@ -2663,11 +2494,7 @@ qemuMonitorAddPCIHostDevice(qemuMonitorPtr mon, mon, hostAddr->domain, hostAddr->bus, hostAddr->slot, hostAddr->function); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONAddPCIHostDevice(mon, hostAddr, guestAddr); @@ -2684,11 +2511,7 @@ qemuMonitorAddPCIDisk(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p path=%s bus=%s", mon, path, bus); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONAddPCIDisk(mon, path, bus, guestAddr); @@ -2704,11 +2527,7 @@ qemuMonitorAddPCINetwork(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p nicstr=%s", mon, nicstr); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONAddPCINetwork(mon, nicstr, guestAddr); @@ -2725,11 +2544,7 @@ qemuMonitorRemovePCIDevice(qemuMonitorPtr mon, mon, guestAddr->domain, guestAddr->bus, guestAddr->slot, guestAddr->function); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONRemovePCIDevice(mon, guestAddr); @@ -2745,11 +2560,7 @@ qemuMonitorSendFileHandle(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, fdname=%s fd=%d", mon, fdname, fd); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (fd < 0) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2782,11 +2593,7 @@ qemuMonitorCloseFileHandle(qemuMonitorPtr mon, error = virSaveLastError(); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - goto cleanup; - } + QEMU_CHECK_MONITOR_FULL(mon, false, goto cleanup); if (mon->json) ret = qemuMonitorJSONCloseFileHandle(mon, fdname); @@ -2810,11 +2617,7 @@ qemuMonitorAddFd(qemuMonitorPtr mon, int fdset, int fd, const char *name) { VIR_DEBUG("mon=%p, fdset=%d, fd=%d, name=%s", mon, fdset, fd, NULLSTR(name)); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); if (fd < 0 || fdset < 0) { virReportError(VIR_ERR_INVALID_ARG, "%s", @@ -2829,13 +2632,7 @@ qemuMonitorAddFd(qemuMonitorPtr mon, int fdset, int fd, const char *name) return -1; } - if (mon->json) { - return qemuMonitorJSONAddFd(mon, fdset, fd, name); - } else { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("add fd requires JSON monitor")); - return -1; - } + return qemuMonitorJSONAddFd(mon, fdset, fd, name); } @@ -2852,17 +2649,9 @@ qemuMonitorRemoveFd(qemuMonitorPtr mon, int fdset, int fd) error = virSaveLastError(); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - goto cleanup; - } + QEMU_CHECK_MONITOR_FULL(mon, true, goto cleanup); - if (mon->json) - ret = qemuMonitorJSONRemoveFd(mon, fdset, fd); - else - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("remove fd requires JSON monitor")); + ret = qemuMonitorJSONRemoveFd(mon, fdset, fd); cleanup: if (error) { @@ -2887,11 +2676,7 @@ qemuMonitorAddHostNetwork(qemuMonitorPtr mon, mon, netstr, tapfd, tapfdName, tapfdSize, vhostfd, vhostfdName, vhostfdSize); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); for (i = 0; i < tapfdSize; i++) { if (qemuMonitorSendFileHandle(mon, tapfdName[i], tapfd[i]) < 0) @@ -2931,11 +2716,7 @@ qemuMonitorRemoveHostNetwork(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p netname=%s", mon, netname); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", @@ -2961,11 +2742,7 @@ qemuMonitorAddNetdev(qemuMonitorPtr mon, mon, netdevstr, tapfd, tapfdName, tapfdSize, vhostfd, vhostfdName, vhostfdSize); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); for (i = 0; i < tapfdSize; i++) { if (qemuMonitorSendFileHandle(mon, tapfdName[i], tapfd[i]) < 0) @@ -3003,11 +2780,7 @@ qemuMonitorRemoveNetdev(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p alias=%s", mon, alias); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONRemoveNetdev(mon, alias); @@ -3022,17 +2795,7 @@ qemuMonitorQueryRxFilter(qemuMonitorPtr mon, const char *alias, { VIR_DEBUG("mon=%p alias=%s filter=%p", mon, alias, filter); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("query-rx-filter requires JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONQueryRxFilter(mon, alias, filter); } @@ -3058,11 +2821,7 @@ qemuMonitorGetChardevInfo(qemuMonitorPtr mon, VIR_DEBUG("mon=%p retinfo=%p", mon, retinfo); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - goto error; - } + QEMU_CHECK_MONITOR_FULL(mon, false, goto error); if (!(info = virHashCreate(10, qemuMonitorChardevInfoFree))) goto error; @@ -3092,11 +2851,7 @@ qemuMonitorAttachPCIDiskController(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p type=%s", mon, bus); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONAttachPCIDiskController(mon, bus, guestAddr); @@ -3115,17 +2870,7 @@ qemuMonitorAttachDrive(qemuMonitorPtr mon, mon, drivestr, controllerAddr->domain, controllerAddr->bus, controllerAddr->slot, controllerAddr->function); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor should be using AddDrive")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorTextAttachDrive(mon, drivestr, controllerAddr, driveAddr); } @@ -3137,11 +2882,7 @@ qemuMonitorGetAllPCIAddresses(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p addrs=%p", mon, addrs); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONGetAllPCIAddresses(mon, addrs); @@ -3156,11 +2897,7 @@ qemuMonitorDriveDel(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p drivestr=%s", mon, drivestr); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONDriveDel(mon, drivestr); @@ -3175,11 +2912,7 @@ qemuMonitorDelDevice(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p devalias=%s", mon, devalias); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONDelDevice(mon, devalias); @@ -3198,11 +2931,7 @@ qemuMonitorAddDeviceWithFd(qemuMonitorPtr mon, NULLSTR(fdname)); int ret; - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (fd >= 0 && qemuMonitorSendFileHandle(mon, fdname, fd) < 0) return -1; @@ -3248,15 +2977,14 @@ qemuMonitorAddObject(qemuMonitorPtr mon, VIR_DEBUG("mon=%p type=%s objalias=%s props=%p", mon, type, objalias, props); - if (!mon->json) { - virJSONValueFree(props); - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("object adding requires JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_FULL(mon, true, goto error); return qemuMonitorJSONAddObject(mon, type, objalias, props); -} + + error: + virJSONValueFree(props); + return -1; +} int @@ -3265,11 +2993,7 @@ qemuMonitorDelObject(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p objalias=%s", mon, objalias); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("object deletion requires JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONDelObject(mon, objalias); } @@ -3281,11 +3005,7 @@ qemuMonitorAddDrive(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p drive=%s", mon, drivestr); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONAddDrive(mon, drivestr); @@ -3301,11 +3021,7 @@ qemuMonitorSetDrivePassphrase(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p alias=%s passphrase=%p(value hidden)", mon, alias, passphrase); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONSetDrivePassphrase(mon, alias, passphrase); @@ -3319,11 +3035,7 @@ qemuMonitorCreateSnapshot(qemuMonitorPtr mon, const char *name) { VIR_DEBUG("mon=%p, name=%s", mon, name); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONCreateSnapshot(mon, name); @@ -3336,11 +3048,7 @@ qemuMonitorLoadSnapshot(qemuMonitorPtr mon, const char *name) { VIR_DEBUG("mon=%p, name=%s", mon, name); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONLoadSnapshot(mon, name); @@ -3354,11 +3062,7 @@ qemuMonitorDeleteSnapshot(qemuMonitorPtr mon, const char *name) { VIR_DEBUG("mon=%p, name=%s", mon, name); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONDeleteSnapshot(mon, name); @@ -3378,16 +3082,7 @@ qemuMonitorDiskSnapshot(qemuMonitorPtr mon, virJSONValuePtr actions, VIR_DEBUG("mon=%p, actions=%p, device=%s, file=%s, format=%s, reuse=%d", mon, actions, device, file, format, reuse); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("disk snapshot requires JSON monitor")); - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONDiskSnapshot(mon, actions, device, file, format, reuse); } @@ -3406,11 +3101,7 @@ qemuMonitorDriveMirror(qemuMonitorPtr mon, mon, device, file, NULLSTR(format), bandwidth, granularity, buf_size, flags); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("drive-mirror requires JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONDriveMirror(mon, device, file, format, bandwidth, granularity, buf_size, flags); @@ -3423,10 +3114,7 @@ qemuMonitorTransaction(qemuMonitorPtr mon, virJSONValuePtr actions) { VIR_DEBUG("mon=%p, actions=%p", mon, actions); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("transaction requires JSON monitor")); - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONTransaction(mon, actions); } @@ -3443,11 +3131,7 @@ qemuMonitorBlockCommit(qemuMonitorPtr mon, const char *device, "bandwidth=%llu", mon, device, top, base, NULLSTR(backingName), bandwidth); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("block-commit requires JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONBlockCommit(mon, device, top, base, backingName, bandwidth); @@ -3458,7 +3142,7 @@ qemuMonitorBlockCommit(qemuMonitorPtr mon, const char *device, bool qemuMonitorSupportsActiveCommit(qemuMonitorPtr mon) { - if (!mon->json) + if (!mon || !mon->json) return false; return qemuMonitorJSONBlockCommit(mon, "bogus", NULL, NULL, NULL, 0) == -2; @@ -3473,11 +3157,7 @@ qemuMonitorDiskNameLookup(qemuMonitorPtr mon, virStorageSourcePtr top, virStorageSourcePtr target) { - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return NULL; - } + QEMU_CHECK_MONITOR_FULL(mon, true, return NULL); return qemuMonitorJSONDiskNameLookup(mon, device, top, target); } @@ -3490,11 +3170,7 @@ qemuMonitorDrivePivot(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, device=%s", mon, device); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("drive pivot requires JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONDrivePivot(mon, device); } @@ -3508,6 +3184,8 @@ qemuMonitorArbitraryCommand(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, cmd=%s, reply=%p, hmp=%d", mon, cmd, reply, hmp); + QEMU_CHECK_MONITOR(mon); + if (mon->json) return qemuMonitorJSONArbitraryCommand(mon, cmd, reply, hmp); else @@ -3518,7 +3196,7 @@ qemuMonitorArbitraryCommand(qemuMonitorPtr mon, int qemuMonitorInjectNMI(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONInjectNMI(mon); @@ -3535,6 +3213,8 @@ qemuMonitorSendKey(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, holdtime=%u, nkeycodes=%u", mon, holdtime, nkeycodes); + QEMU_CHECK_MONITOR(mon); + if (mon->json) return qemuMonitorJSONSendKey(mon, holdtime, keycodes, nkeycodes); else @@ -3548,11 +3228,7 @@ qemuMonitorScreendump(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, file=%s", mon, file); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (mon->json) return qemuMonitorJSONScreendump(mon, file); @@ -3575,11 +3251,7 @@ qemuMonitorBlockStream(qemuMonitorPtr mon, mon, device, NULLSTR(base), NULLSTR(backingName), bandwidth, modern); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("block jobs require JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONBlockStream(mon, device, base, backingName, bandwidth, modern); @@ -3593,11 +3265,7 @@ qemuMonitorBlockJobCancel(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, device=%s, modern=%d", mon, device, modern); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("block jobs require JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONBlockJobCancel(mon, device, modern); } @@ -3612,11 +3280,7 @@ qemuMonitorBlockJobSetSpeed(qemuMonitorPtr mon, VIR_DEBUG("mon=%p, device=%s, bandwidth=%lluB, modern=%d", mon, device, bandwidth, modern); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("block jobs require JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONBlockJobSetSpeed(mon, device, bandwidth, modern); } @@ -3631,11 +3295,7 @@ qemuMonitorBlockJobInfo(qemuMonitorPtr mon, VIR_DEBUG("mon=%p, device=%s, info=%p, bandwidth=%p", mon, device, info, bandwidth); - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("block jobs require JSON monitor")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONBlockJobInfo(mon, device, info, bandwidth); } @@ -3649,6 +3309,8 @@ qemuMonitorSetBlockIoThrottle(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, device=%p, info=%p", mon, device, info); + QEMU_CHECK_MONITOR(mon); + if (mon->json) return qemuMonitorJSONSetBlockIoThrottle(mon, device, info, supportMaxOptions); else @@ -3664,6 +3326,8 @@ qemuMonitorGetBlockIoThrottle(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, device=%p, reply=%p", mon, device, reply); + QEMU_CHECK_MONITOR(mon); + if (mon->json) return qemuMonitorJSONGetBlockIoThrottle(mon, device, reply, supportMaxOptions); else @@ -3737,11 +3401,7 @@ qemuMonitorOpenGraphics(qemuMonitorPtr mon, mon, protocol, fd, NULLSTR(fdname), skipauth); int ret; - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); if (qemuMonitorSendFileHandle(mon, fdname, fd) < 0) return -1; @@ -3763,44 +3423,23 @@ qemuMonitorOpenGraphics(qemuMonitorPtr mon, int qemuMonitorSystemWakeup(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONSystemWakeup(mon); } -int qemuMonitorGetVersion(qemuMonitorPtr mon, - int *major, - int *minor, - int *micro, - char **package) +int +qemuMonitorGetVersion(qemuMonitorPtr mon, + int *major, + int *minor, + int *micro, + char **package) { VIR_DEBUG("mon=%p major=%p minor=%p micro=%p package=%p", mon, major, minor, micro, package); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetVersion(mon, major, minor, micro, package); } @@ -3812,17 +3451,7 @@ qemuMonitorGetMachines(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p machines=%p", mon, machines); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetMachines(mon, machines); } @@ -3845,17 +3474,7 @@ qemuMonitorGetCPUDefinitions(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p cpus=%p", mon, cpus); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetCPUDefinitions(mon, cpus); } @@ -3867,17 +3486,7 @@ qemuMonitorGetCommands(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p commands=%p", mon, commands); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetCommands(mon, commands); } @@ -3889,17 +3498,7 @@ qemuMonitorGetEvents(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p events=%p", mon, events); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetEvents(mon, events); } @@ -3915,17 +3514,7 @@ qemuMonitorGetCommandLineOptionParameters(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p option=%s params=%p", mon, option, params); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetCommandLineOptionParameters(mon, option, params, found); @@ -3939,17 +3528,7 @@ qemuMonitorGetKVMState(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p enabled=%p present=%p", mon, enabled, present); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetKVMState(mon, enabled, present); } @@ -3961,17 +3540,7 @@ qemuMonitorGetObjectTypes(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p types=%p", mon, types); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetObjectTypes(mon, types); } @@ -3984,17 +3553,7 @@ qemuMonitorGetObjectProps(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p type=%s props=%p", mon, type, props); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetObjectProps(mon, type, props); } @@ -4003,19 +3562,7 @@ qemuMonitorGetObjectProps(qemuMonitorPtr mon, char * qemuMonitorGetTargetArch(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return NULL; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return NULL; - } + QEMU_CHECK_MONITOR_FULL(mon, true, return NULL); return qemuMonitorJSONGetTargetArch(mon); } @@ -4025,13 +3572,7 @@ int qemuMonitorGetMigrationCapabilities(qemuMonitorPtr mon, char ***capabilities) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); /* No capability is supported without JSON monitor */ if (!mon->json) @@ -4050,11 +3591,7 @@ qemuMonitorGetMigrationCapability(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p capability=%d", mon, capability); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); /* No capability is supported without JSON monitor */ if (!mon->json) @@ -4071,17 +3608,7 @@ qemuMonitorSetMigrationCapability(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p capability=%d", mon, capability); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONSetMigrationCapability(mon, capability, state); } @@ -4094,17 +3621,7 @@ qemuMonitorNBDServerStart(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p host=%s port=%u", mon, host, port); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONNBDServerStart(mon, host, port); } @@ -4117,17 +3634,7 @@ qemuMonitorNBDServerAdd(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p deviceID=%s", mon, deviceID); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONNBDServerAdd(mon, deviceID, writable); } @@ -4136,19 +3643,7 @@ qemuMonitorNBDServerAdd(qemuMonitorPtr mon, int qemuMonitorNBDServerStop(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONNBDServerStop(mon); } @@ -4160,17 +3655,7 @@ qemuMonitorGetTPMModels(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p tpmmodels=%p", mon, tpmmodels); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetTPMModels(mon, tpmmodels); } @@ -4182,17 +3667,7 @@ qemuMonitorGetTPMTypes(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p tpmtypes=%p", mon, tpmtypes); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetTPMTypes(mon, tpmtypes); } @@ -4205,17 +3680,7 @@ qemuMonitorAttachCharDev(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p chrID=%s chr=%p", mon, chrID, chr); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONAttachCharDev(mon, chrID, chr); } @@ -4227,17 +3692,7 @@ qemuMonitorDetachCharDev(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p chrID=%s", mon, chrID); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONDetachCharDev(mon, chrID); } @@ -4249,17 +3704,7 @@ qemuMonitorGetDeviceAliases(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, aliases=%p", mon, aliases); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONGetDeviceAliases(mon, aliases); } @@ -4305,17 +3750,7 @@ qemuMonitorGetGuestCPU(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, arch='%s' data='%p'", mon, virArchToString(arch), data); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); *data = NULL; @@ -4338,20 +3773,7 @@ qemuMonitorGetGuestCPU(qemuMonitorPtr mon, int qemuMonitorRTCResetReinjection(qemuMonitorPtr mon) { - - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); return qemuMonitorJSONRTCResetReinjection(mon); } @@ -4375,11 +3797,7 @@ qemuMonitorGetIOThreads(qemuMonitorPtr mon, VIR_DEBUG("mon=%p iothreads=%p", mon, iothreads); - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon); /* Requires JSON to make the query */ if (!mon->json) { @@ -4422,11 +3840,7 @@ qemuMonitorGetMemoryDeviceInfo(qemuMonitorPtr mon, *info = NULL; - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon); if (!mon->json) return -2; diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 3e9c43c..cd4cc66 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -712,7 +712,7 @@ int qemuMonitorDiskSnapshot(qemuMonitorPtr mon, const char *format, bool reuse); int qemuMonitorTransaction(qemuMonitorPtr mon, virJSONValuePtr actions) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); + ATTRIBUTE_NONNULL(2); int qemuMonitorDriveMirror(qemuMonitorPtr mon, const char *device, const char *file, @@ -721,10 +721,10 @@ int qemuMonitorDriveMirror(qemuMonitorPtr mon, unsigned int granularity, unsigned long long buf_size, unsigned int flags) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); + ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); int qemuMonitorDrivePivot(qemuMonitorPtr mon, const char *device) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); + ATTRIBUTE_NONNULL(2); int qemuMonitorBlockCommit(qemuMonitorPtr mon, const char *device, @@ -732,15 +732,13 @@ int qemuMonitorBlockCommit(qemuMonitorPtr mon, const char *base, const char *backingName, unsigned long long bandwidth) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) - ATTRIBUTE_NONNULL(4); + ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); bool qemuMonitorSupportsActiveCommit(qemuMonitorPtr mon); char *qemuMonitorDiskNameLookup(qemuMonitorPtr mon, const char *device, virStorageSourcePtr top, virStorageSourcePtr target) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) - ATTRIBUTE_NONNULL(4); + ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); int qemuMonitorArbitraryCommand(qemuMonitorPtr mon, const char *cmd, @@ -763,12 +761,12 @@ int qemuMonitorBlockStream(qemuMonitorPtr mon, const char *backingName, unsigned long long bandwidth, bool modern) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); + ATTRIBUTE_NONNULL(2); int qemuMonitorBlockJobCancel(qemuMonitorPtr mon, const char *device, bool modern) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); + ATTRIBUTE_NONNULL(2); int qemuMonitorBlockJobSetSpeed(qemuMonitorPtr mon, const char *device, @@ -779,7 +777,7 @@ int qemuMonitorBlockJobInfo(qemuMonitorPtr mon, const char *device, virDomainBlockJobInfoPtr info, unsigned long long *bandwidth) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); + ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); int qemuMonitorOpenGraphics(qemuMonitorPtr mon, const char *protocol, -- 2.3.5

On Tue, Apr 14, 2015 at 18:05:11 +0200, Peter Krempa wrote:
Among all the monitor APIs some where checking if mon is NULL and some were not. Since it's possible to have mon equal to NULL in case a second call is attempted once entered the monitor. This requires that every single API checks for the monitor.
This patch adds a macro that helps checking the state of the monitor and either refactors existing checking code to use the macro or adds it in case it was missing. --- src/qemu/qemu_monitor.c | 918 +++++++++--------------------------------------- src/qemu/qemu_monitor.h | 18 +- 2 files changed, 174 insertions(+), 762 deletions(-)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index d5bdfb8..e5630f1 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -98,6 +98,32 @@ struct _qemuMonitor { int logfd; };
+/** + * QEMU_CHECK_MONITOR_FULL: + * @MON: monitor pointer variable to check, evaluated multiple times, no parentheses + * @FORCE_JSON: force JSON monitor, true or false + * @EXIT: statement that is used to exit the function + * + * This macro checks that the monitor is valid for given operation and exits + * the function if not. The macro also adds a debug statement regarding the + * monitor. + */ +#define QEMU_CHECK_MONITOR_FULL(MON, FORCE_JSON, EXIT) \
The uppercase parameters look ugly, I think we use lowercase everywhere.
+ if (!MON) { \ + virReportError(VIR_ERR_INVALID_ARG, "%s", \ + _("Monitor must not be NULL")); \
s/Monitor/monitor/
+ EXIT; \ + } \ + VIR_DEBUG("Mon:%p vm:%p json:%d fd:%d", MON, MON->vm, MON->json, MON->fd); \
s/Mon/mon/
+ if (FORCE_JSON && !MON->json) { \ + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", \ + _("JSON monitor is required")); \ + EXIT; \ + } + +#define QEMU_CHECK_MONITOR(MON) QEMU_CHECK_MONITOR_FULL(MON, false, return -1) +#define QEMU_CHECK_MONITOR_JSON(MON) QEMU_CHECK_MONITOR_FULL(MON, true, return -1)
I think it would be nice to add a few more macros so that the FULL variant does not have to be used anywhere. Especially having to use true/false instead of QEMU_CHECK_MONITOR{_JSON,} is less obvious :-)
+ static virClassPtr qemuMonitorClass; static void qemuMonitorDispose(void *obj);
...
@@ -1661,11 +1651,7 @@ qemuMonitorSetLink(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, name=%s, state=%u", mon, name, state);
Should we remove "mon=%p" from this (and other similar) VIR_DEBUG since it will be logged by QEMU_CHECK_MONITOR?
- if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon);
if (mon->json) return qemuMonitorJSONSetLink(mon, name, state);
...
@@ -3763,44 +3423,23 @@ qemuMonitorOpenGraphics(qemuMonitorPtr mon, int qemuMonitorSystemWakeup(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon);
return qemuMonitorJSONSystemWakeup(mon); }
-int qemuMonitorGetVersion(qemuMonitorPtr mon, - int *major, - int *minor, - int *micro, - char **package) +int +qemuMonitorGetVersion(qemuMonitorPtr mon, + int *major, + int *minor, + int *micro, + char **package)
This change should go to the first patch in this series.
{ VIR_DEBUG("mon=%p major=%p minor=%p micro=%p package=%p", mon, major, minor, micro, package);
- if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon);
return qemuMonitorJSONGetVersion(mon, major, minor, micro, package); } ...
Jirka

On Wed, Apr 15, 2015 at 10:24:10 +0200, Jiri Denemark wrote:
On Tue, Apr 14, 2015 at 18:05:11 +0200, Peter Krempa wrote:
Among all the monitor APIs some where checking if mon is NULL and some were not. Since it's possible to have mon equal to NULL in case a second call is attempted once entered the monitor. This requires that every single API checks for the monitor.
This patch adds a macro that helps checking the state of the monitor and either refactors existing checking code to use the macro or adds it in case it was missing. --- src/qemu/qemu_monitor.c | 918 +++++++++--------------------------------------- src/qemu/qemu_monitor.h | 18 +- 2 files changed, 174 insertions(+), 762 deletions(-)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index d5bdfb8..e5630f1 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -98,6 +98,32 @@ struct _qemuMonitor { int logfd; };
+/** + * QEMU_CHECK_MONITOR_FULL: + * @MON: monitor pointer variable to check, evaluated multiple times, no parentheses + * @FORCE_JSON: force JSON monitor, true or false + * @EXIT: statement that is used to exit the function + * + * This macro checks that the monitor is valid for given operation and exits + * the function if not. The macro also adds a debug statement regarding the + * monitor. + */ +#define QEMU_CHECK_MONITOR_FULL(MON, FORCE_JSON, EXIT) \
The uppercase parameters look ugly, I think we use lowercase everywhere.
+ if (!MON) { \ + virReportError(VIR_ERR_INVALID_ARG, "%s", \ + _("Monitor must not be NULL")); \
s/Monitor/monitor/
+ EXIT; \ + } \ + VIR_DEBUG("Mon:%p vm:%p json:%d fd:%d", MON, MON->vm, MON->json, MON->fd); \
s/Mon/mon/
+ if (FORCE_JSON && !MON->json) { \ + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", \ + _("JSON monitor is required")); \ + EXIT; \ + } + +#define QEMU_CHECK_MONITOR(MON) QEMU_CHECK_MONITOR_FULL(MON, false, return -1) +#define QEMU_CHECK_MONITOR_JSON(MON) QEMU_CHECK_MONITOR_FULL(MON, true, return -1)
I think it would be nice to add a few more macros so that the FULL variant does not have to be used anywhere. Especially having to use true/false instead of QEMU_CHECK_MONITOR{_JSON,} is less obvious :-)
Indeed. I was thinking about those but ended up not finishing that idea.
+ static virClassPtr qemuMonitorClass; static void qemuMonitorDispose(void *obj);
...
@@ -1661,11 +1651,7 @@ qemuMonitorSetLink(qemuMonitorPtr mon, { VIR_DEBUG("mon=%p, name=%s, state=%u", mon, name, state);
Should we remove "mon=%p" from this (and other similar) VIR_DEBUG since it will be logged by QEMU_CHECK_MONITOR?
I didn't want to touch the existing debug macros but I might as well go through the code and finish that up.
- if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } + QEMU_CHECK_MONITOR(mon);
if (mon->json) return qemuMonitorJSONSetLink(mon, name, state);
...
@@ -3763,44 +3423,23 @@ qemuMonitorOpenGraphics(qemuMonitorPtr mon, int qemuMonitorSystemWakeup(qemuMonitorPtr mon) { - VIR_DEBUG("mon=%p", mon); - - if (!mon) { - virReportError(VIR_ERR_INVALID_ARG, "%s", - _("monitor must not be NULL")); - return -1; - } - - if (!mon->json) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("JSON monitor is required")); - return -1; - } + QEMU_CHECK_MONITOR_JSON(mon);
return qemuMonitorJSONSystemWakeup(mon); }
-int qemuMonitorGetVersion(qemuMonitorPtr mon, - int *major, - int *minor, - int *micro, - char **package) +int +qemuMonitorGetVersion(qemuMonitorPtr mon, + int *major, + int *minor, + int *micro, + char **package)
This change should go to the first patch in this series.
I've moved this to the first patch and pushed 1-6. Thanks Peter

On 04/14/2015 12:05 PM, Peter Krempa wrote:
Among all the monitor APIs some where checking if mon is NULL and some were not. Since it's possible to have mon equal to NULL in case a second call is attempted once entered the monitor. This requires that every single API checks for the monitor.
This patch adds a macro that helps checking the state of the monitor and either refactors existing checking code to use the macro or adds it in case it was missing. --- src/qemu/qemu_monitor.c | 918 +++++++++--------------------------------------- src/qemu/qemu_monitor.h | 18 +- 2 files changed, 174 insertions(+), 762 deletions(-)
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index d5bdfb8..e5630f1 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -98,6 +98,32 @@ struct _qemuMonitor { int logfd; };
+/** + * QEMU_CHECK_MONITOR_FULL: + * @MON: monitor pointer variable to check, evaluated multiple times, no parentheses + * @FORCE_JSON: force JSON monitor, true or false + * @EXIT: statement that is used to exit the function + * + * This macro checks that the monitor is valid for given operation and exits + * the function if not. The macro also adds a debug statement regarding the + * monitor. + */ +#define QEMU_CHECK_MONITOR_FULL(MON, FORCE_JSON, EXIT) \ + if (!MON) { \ + virReportError(VIR_ERR_INVALID_ARG, "%s", \ + _("Monitor must not be NULL")); \ + EXIT; \ + } \ + VIR_DEBUG("Mon:%p vm:%p json:%d fd:%d", MON, MON->vm, MON->json, MON->fd); \ + if (FORCE_JSON && !MON->json) { \ + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", \ + _("JSON monitor is required")); \ + EXIT; \ + } + +#define QEMU_CHECK_MONITOR(MON) QEMU_CHECK_MONITOR_FULL(MON, false, return -1) +#define QEMU_CHECK_MONITOR_JSON(MON) QEMU_CHECK_MONITOR_FULL(MON, true, return -1) +
...
@@ -1876,6 +1840,8 @@ qemuMonitorGetAllBlockStatsInfo(qemuMonitorPtr mon, if (!(*ret_stats = virHashCreate(10, virHashValueFree))) goto error;
+ QEMU_CHECK_MONITOR(mon); +
Leaks *ret_stats on failure Looks like you'll need to use the _FULL like other places
if (mon->json) { ret = qemuMonitorJSONGetAllBlockStatsInfo(mon, *ret_stats, backingChain);
... John
participants (3)
-
Jiri Denemark
-
John Ferlan
-
Peter Krempa