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