qemu_monitor_json.h 22.1 KB
Newer Older
D
Daniel P. Berrange 已提交
1 2 3
/*
 * qemu_monitor_json.h: interaction with QEMU monitor console
 *
4
 * Copyright (C) 2006-2009, 2011-2015 Red Hat, Inc.
D
Daniel P. Berrange 已提交
5 6 7 8 9 10 11 12 13 14 15 16 17
 * Copyright (C) 2006 Daniel P. Berrange
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with this library.  If not, see
O
Osier Yang 已提交
19
 * <http://www.gnu.org/licenses/>.
D
Daniel P. Berrange 已提交
20 21 22 23 24 25
 *
 * Author: Daniel P. Berrange <berrange@redhat.com>
 */


#ifndef QEMU_MONITOR_JSON_H
26
# define QEMU_MONITOR_JSON_H
D
Daniel P. Berrange 已提交
27

28
# include "internal.h"
D
Daniel P. Berrange 已提交
29

30
# include "qemu_monitor.h"
31
# include "virbitmap.h"
32
# include "cpu/cpu.h"
A
Andrea Bolognani 已提交
33
# include "util/virgic.h"
D
Daniel P. Berrange 已提交
34

35 36 37 38
int qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon,
                                 const char *line,
                                 qemuMonitorMessagePtr msg);

D
Daniel P. Berrange 已提交
39 40 41 42 43
int qemuMonitorJSONIOProcess(qemuMonitorPtr mon,
                             const char *data,
                             size_t len,
                             qemuMonitorMessagePtr msg);

44 45 46 47 48
int qemuMonitorJSONHumanCommandWithFd(qemuMonitorPtr mon,
                                      const char *cmd,
                                      int scm_fd,
                                      char **reply);

49 50
int qemuMonitorJSONSetCapabilities(qemuMonitorPtr mon);

D
Daniel P. Berrange 已提交
51 52 53
int qemuMonitorJSONStartCPUs(qemuMonitorPtr mon,
                             virConnectPtr conn);
int qemuMonitorJSONStopCPUs(qemuMonitorPtr mon);
54 55 56
int qemuMonitorJSONGetStatus(qemuMonitorPtr mon,
                             bool *running,
                             virDomainPausedReason *reason);
D
Daniel P. Berrange 已提交
57 58

int qemuMonitorJSONSystemPowerdown(qemuMonitorPtr mon);
59
int qemuMonitorJSONSystemReset(qemuMonitorPtr mon);
D
Daniel P. Berrange 已提交
60

61
int qemuMonitorJSONQueryCPUs(qemuMonitorPtr mon,
62
                             struct qemuMonitorQueryCpusEntry **entries,
63 64
                             size_t *nentries,
                             bool force);
65
int qemuMonitorJSONGetVirtType(qemuMonitorPtr mon,
66
                               virDomainVirtType *virtType);
67 68 69
int qemuMonitorJSONUpdateVideoMemorySize(qemuMonitorPtr mon,
                                         virDomainVideoDefPtr video,
                                         char *path);
70 71 72
int qemuMonitorJSONUpdateVideoVram64Size(qemuMonitorPtr mon,
                                         virDomainVideoDefPtr video,
                                         char *path);
D
Daniel P. Berrange 已提交
73
int qemuMonitorJSONGetBalloonInfo(qemuMonitorPtr mon,
74
                                  unsigned long long *currmem);
75
int qemuMonitorJSONGetMemoryStats(qemuMonitorPtr mon,
76
                                  char *balloonpath,
77 78
                                  virDomainMemoryStatPtr stats,
                                  unsigned int nr_stats);
79 80 81
int qemuMonitorJSONSetMemoryStatsPeriod(qemuMonitorPtr mon,
                                        char *balloonpath,
                                        int period);
82
int qemuMonitorJSONGetBlockInfo(qemuMonitorPtr mon,
83
                                virHashTablePtr table);
84 85

virJSONValuePtr qemuMonitorJSONQueryBlockstats(qemuMonitorPtr mon);
86
int qemuMonitorJSONGetAllBlockStatsInfo(qemuMonitorPtr mon,
87
                                        virHashTablePtr hash,
88
                                        bool backingChain);
89
int qemuMonitorJSONBlockStatsUpdateCapacity(qemuMonitorPtr mon,
90 91
                                            virHashTablePtr stats,
                                            bool backingChain);
92 93 94
int qemuMonitorJSONBlockResize(qemuMonitorPtr mon,
                               const char *devce,
                               unsigned long long size);
D
Daniel P. Berrange 已提交
95 96 97

int qemuMonitorJSONSetVNCPassword(qemuMonitorPtr mon,
                                  const char *password);
98 99 100 101 102 103 104
int qemuMonitorJSONSetPassword(qemuMonitorPtr mon,
                               const char *protocol,
                               const char *password,
                               const char *action_if_connected);
int qemuMonitorJSONExpirePassword(qemuMonitorPtr mon,
                                  const char *protocol,
                                  const char *expire_time);
D
Daniel P. Berrange 已提交
105
int qemuMonitorJSONSetBalloon(qemuMonitorPtr mon,
106
                              unsigned long long newmem);
107
int qemuMonitorJSONSetCPU(qemuMonitorPtr mon, int cpu, bool online);
D
Daniel P. Berrange 已提交
108 109

int qemuMonitorJSONEjectMedia(qemuMonitorPtr mon,
110
                              const char *dev_name,
111
                              bool force);
D
Daniel P. Berrange 已提交
112
int qemuMonitorJSONChangeMedia(qemuMonitorPtr mon,
113
                               const char *dev_name,
D
Daniel P. Berrange 已提交
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
                               const char *newmedia,
                               const char *format);


int qemuMonitorJSONSaveVirtualMemory(qemuMonitorPtr mon,
                                     unsigned long long offset,
                                     size_t length,
                                     const char *path);
int qemuMonitorJSONSavePhysicalMemory(qemuMonitorPtr mon,
                                      unsigned long long offset,
                                      size_t length,
                                      const char *path);

int qemuMonitorJSONSetMigrationSpeed(qemuMonitorPtr mon,
                                     unsigned long bandwidth);

130 131 132
int qemuMonitorJSONSetMigrationDowntime(qemuMonitorPtr mon,
                                        unsigned long long downtime);

133 134 135 136 137
int qemuMonitorJSONGetMigrationCacheSize(qemuMonitorPtr mon,
                                         unsigned long long *cacheSize);
int qemuMonitorJSONSetMigrationCacheSize(qemuMonitorPtr mon,
                                         unsigned long long cacheSize);

138 139 140 141
int qemuMonitorJSONGetMigrationParams(qemuMonitorPtr mon,
                                      qemuMonitorMigrationParamsPtr params);
int qemuMonitorJSONSetMigrationParams(qemuMonitorPtr mon,
                                      qemuMonitorMigrationParamsPtr params);
142

143
int qemuMonitorJSONGetMigrationStats(qemuMonitorPtr mon,
144 145
                                     qemuMonitorMigrationStatsPtr stats,
                                     char **error);
D
Daniel P. Berrange 已提交
146

147 148
int qemuMonitorJSONGetMigrationCapabilities(qemuMonitorPtr mon,
                                            char ***capabilities);
149
int qemuMonitorJSONSetMigrationCapability(qemuMonitorPtr mon,
150 151
                                          qemuMonitorMigrationCaps capability,
                                          bool state);
152

A
Andrea Bolognani 已提交
153 154 155
int qemuMonitorJSONGetGICCapabilities(qemuMonitorPtr mon,
                                      virGICCapability **capabilities);

156 157 158
int qemuMonitorJSONMigrate(qemuMonitorPtr mon,
                           unsigned int flags,
                           const char *uri);
159 160 161
int qemuMonitorJSONGetSpiceMigrationStatus(qemuMonitorPtr mon,
                                           bool *spice_migrated);

D
Daniel P. Berrange 已提交
162 163 164

int qemuMonitorJSONMigrateCancel(qemuMonitorPtr mon);

165 166 167
int qemuMonitorJSONGetDumpGuestMemoryCapability(qemuMonitorPtr mon,
                                                const char *capability);

168
int qemuMonitorJSONDump(qemuMonitorPtr mon,
169 170
                        const char *protocol,
                        const char *dumpformat);
171

172 173 174 175 176 177 178
int qemuMonitorJSONGraphicsRelocate(qemuMonitorPtr mon,
                                    int type,
                                    const char *hostname,
                                    int port,
                                    int tlsPort,
                                    const char *tlsSubject);

D
Daniel P. Berrange 已提交
179
int qemuMonitorJSONAddPCIHostDevice(qemuMonitorPtr mon,
180 181
                                    virPCIDeviceAddress *hostAddr,
                                    virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
182 183 184 185

int qemuMonitorJSONAddPCIDisk(qemuMonitorPtr mon,
                              const char *path,
                              const char *bus,
186
                              virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
187 188 189

int qemuMonitorJSONAddPCINetwork(qemuMonitorPtr mon,
                                 const char *nicstr,
190
                                 virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
191 192

int qemuMonitorJSONRemovePCIDevice(qemuMonitorPtr mon,
193
                                   virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
194 195 196 197

int qemuMonitorJSONSendFileHandle(qemuMonitorPtr mon,
                                  const char *fdname,
                                  int fd);
198 199
int qemuMonitorJSONAddFd(qemuMonitorPtr mon, int fdset, int fd,
                         const char *name);
D
Daniel P. Berrange 已提交
200 201 202

int qemuMonitorJSONCloseFileHandle(qemuMonitorPtr mon,
                                   const char *fdname);
203
int qemuMonitorJSONRemoveFd(qemuMonitorPtr mon, int fdset, int fd);
D
Daniel P. Berrange 已提交
204

205 206 207 208 209 210
int qemuMonitorJSONAddNetdev(qemuMonitorPtr mon,
                             const char *netdevstr);

int qemuMonitorJSONRemoveNetdev(qemuMonitorPtr mon,
                                const char *alias);

211 212 213
int qemuMonitorJSONQueryRxFilter(qemuMonitorPtr mon, const char *alias,
                                 virNetDevRxFilterPtr *filter);

214 215
int qemuMonitorJSONGetChardevInfo(qemuMonitorPtr mon,
                                  virHashTablePtr info);
216

217 218
int qemuMonitorJSONAttachPCIDiskController(qemuMonitorPtr mon,
                                           const char *bus,
219
                                           virPCIDeviceAddress *guestAddr);
220

221 222
int qemuMonitorJSONAddDeviceArgs(qemuMonitorPtr mon,
                                 virJSONValuePtr args);
223 224 225
int qemuMonitorJSONAddDevice(qemuMonitorPtr mon,
                             const char *devicestr);

226
int qemuMonitorJSONDelDevice(qemuMonitorPtr mon,
227
                             const char *devalias);
228

229 230 231 232 233 234 235 236
int qemuMonitorJSONAddObject(qemuMonitorPtr mon,
                             const char *type,
                             const char *objalias,
                             virJSONValuePtr props);

int qemuMonitorJSONDelObject(qemuMonitorPtr mon,
                             const char *objalias);

237 238 239 240
int qemuMonitorJSONSetDrivePassphrase(qemuMonitorPtr mon,
                                      const char *alias,
                                      const char *passphrase);

C
Chris Lalancette 已提交
241 242 243 244
int qemuMonitorJSONCreateSnapshot(qemuMonitorPtr mon, const char *name);
int qemuMonitorJSONLoadSnapshot(qemuMonitorPtr mon, const char *name);
int qemuMonitorJSONDeleteSnapshot(qemuMonitorPtr mon, const char *name);

245
int qemuMonitorJSONDiskSnapshot(qemuMonitorPtr mon,
246
                                virJSONValuePtr actions,
247
                                const char *device,
248 249
                                const char *file,
                                const char *format,
250 251 252 253 254 255 256 257 258 259
                                bool reuse)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3)
    ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5);
int qemuMonitorJSONTransaction(qemuMonitorPtr mon, virJSONValuePtr actions)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuMonitorJSONDriveMirror(qemuMonitorPtr mon,
                               const char *device,
                               const char *file,
                               const char *format,
                               unsigned long long speed,
260 261
                               unsigned int granularity,
                               unsigned long long buf_size,
262 263 264
                               unsigned int flags)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
int qemuMonitorJSONDrivePivot(qemuMonitorPtr mon,
265
                              const char *device)
266
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
267

268 269 270 271
int qemuMonitorJSONBlockCommit(qemuMonitorPtr mon,
                               const char *device,
                               const char *top,
                               const char *base,
272
                               const char *backingName,
273
                               unsigned long long bandwidth)
274
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
275

276 277 278 279 280 281 282
char *qemuMonitorJSONDiskNameLookup(qemuMonitorPtr mon,
                                    const char *device,
                                    virStorageSourcePtr top,
                                    virStorageSourcePtr target)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
    ATTRIBUTE_NONNULL(4);

283 284
int qemuMonitorJSONArbitraryCommand(qemuMonitorPtr mon,
                                    const char *cmd_str,
285 286
                                    char **reply_str,
                                    bool hmp);
287

288
int qemuMonitorJSONInjectNMI(qemuMonitorPtr mon);
289

290 291 292 293 294
int qemuMonitorJSONSendKey(qemuMonitorPtr mon,
                           unsigned int holdtime,
                           unsigned int *keycodes,
                           unsigned int nkeycodes);

295 296 297
int qemuMonitorJSONScreendump(qemuMonitorPtr mon,
                              const char *file);

298 299 300 301
int qemuMonitorJSONBlockStream(qemuMonitorPtr mon,
                               const char *device,
                               const char *base,
                               const char *backingName,
302
                               unsigned long long speed)
303
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
304

305
int qemuMonitorJSONBlockJobCancel(qemuMonitorPtr mon,
306
                                  const char *device)
307 308
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

309 310
int qemuMonitorJSONBlockJobSetSpeed(qemuMonitorPtr mon,
                                    const char *device,
311
                                    unsigned long long speed)
312 313
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

314 315
virHashTablePtr qemuMonitorJSONGetAllBlockJobInfo(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);
316

317 318
int qemuMonitorJSONSetLink(qemuMonitorPtr mon,
                           const char *name,
319
                           virDomainNetInterfaceLinkState state);
320

321 322 323 324 325
int qemuMonitorJSONOpenGraphics(qemuMonitorPtr mon,
                                const char *protocol,
                                const char *fdname,
                                bool skipauth);

326 327
int qemuMonitorJSONSetBlockIoThrottle(qemuMonitorPtr mon,
                                      const char *device,
328
                                      virDomainBlockIoTuneInfoPtr info,
329
                                      bool supportMaxOptions,
330
                                      bool supportGroupNameOption,
331
                                      bool supportMaxLengthOptions);
332 333 334

int qemuMonitorJSONGetBlockIoThrottle(qemuMonitorPtr mon,
                                      const char *device,
335
                                      virDomainBlockIoTuneInfoPtr reply);
336

337 338
int qemuMonitorJSONSystemWakeup(qemuMonitorPtr mon);

339 340 341 342 343 344 345
int qemuMonitorJSONGetVersion(qemuMonitorPtr mon,
                              int *major,
                              int *minor,
                              int *micro,
                              char **package)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

346 347 348 349
int qemuMonitorJSONGetMachines(qemuMonitorPtr mon,
                               qemuMonitorMachineInfoPtr **machines)
    ATTRIBUTE_NONNULL(2);

350
int qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon,
351
                                     qemuMonitorCPUDefInfoPtr **cpus)
352 353
    ATTRIBUTE_NONNULL(2);

354
int qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
355
                                        qemuMonitorCPUModelExpansionType type,
356
                                        const char *model_name,
357
                                        bool migratable,
358
                                        qemuMonitorCPUModelInfoPtr *model_info)
359
    ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(5);
360

361 362 363
int qemuMonitorJSONGetCommands(qemuMonitorPtr mon,
                               char ***commands)
    ATTRIBUTE_NONNULL(2);
364 365 366
int qemuMonitorJSONGetEvents(qemuMonitorPtr mon,
                             char ***events)
    ATTRIBUTE_NONNULL(2);
367 368
int qemuMonitorJSONGetCommandLineOptionParameters(qemuMonitorPtr mon,
                                                  const char *option,
369 370
                                                  char ***params,
                                                  bool *found)
371
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
372

373 374 375 376 377
int qemuMonitorJSONGetKVMState(qemuMonitorPtr mon,
                               bool *enabled,
                               bool *present)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);

378 379 380
int qemuMonitorJSONGetObjectTypes(qemuMonitorPtr mon,
                                  char ***types)
    ATTRIBUTE_NONNULL(2);
381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397

/* ListPath structures and API's are public only for qemumonitorjsontest */
typedef struct _qemuMonitorJSONListPath qemuMonitorJSONListPath;
typedef qemuMonitorJSONListPath *qemuMonitorJSONListPathPtr;

struct _qemuMonitorJSONListPath {
    char *name;
    char *type;
};

int qemuMonitorJSONGetObjectListPaths(qemuMonitorPtr mon,
                                      const char *path,
                                      qemuMonitorJSONListPathPtr **paths)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);

void qemuMonitorJSONListPathFree(qemuMonitorJSONListPathPtr paths);

398 399 400
/* ObjectProperty structures and Get/Set API's are public only
 * for qemumonitorjsontest
 */
401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434
/* Flags for the 'type' field in _qemuMonitorJSONObjectProperty */
typedef enum {
    QEMU_MONITOR_OBJECT_PROPERTY_BOOLEAN=1,
    QEMU_MONITOR_OBJECT_PROPERTY_INT,
    QEMU_MONITOR_OBJECT_PROPERTY_LONG,
    QEMU_MONITOR_OBJECT_PROPERTY_UINT,
    QEMU_MONITOR_OBJECT_PROPERTY_ULONG,
    QEMU_MONITOR_OBJECT_PROPERTY_DOUBLE,
    QEMU_MONITOR_OBJECT_PROPERTY_STRING,

    QEMU_MONITOR_OBJECT_PROPERTY_LAST
} qemuMonitorJSONObjectPropertyType;

typedef struct _qemuMonitorJSONObjectProperty qemuMonitorJSONObjectProperty;
typedef qemuMonitorJSONObjectProperty *qemuMonitorJSONObjectPropertyPtr;
struct _qemuMonitorJSONObjectProperty {
    int type;    /* qemuMonitorJSONObjectPropertyType */
    union {
        bool b;
        int iv;
        long long l;
        unsigned int ui;
        unsigned long long ul;
        double d;
        char *str;
    } val;
};

int qemuMonitorJSONGetObjectProperty(qemuMonitorPtr mon,
                                     const char *path,
                                     const char *property,
                                     qemuMonitorJSONObjectPropertyPtr prop)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

435 436 437 438 439 440
int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
                                     const char *path,
                                     const char *property,
                                     qemuMonitorJSONObjectPropertyPtr prop)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

441 442 443 444
int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
                                  const char *type,
                                  char ***props)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
445
char *qemuMonitorJSONGetTargetArch(qemuMonitorPtr mon);
446

447 448 449
int qemuMonitorJSONNBDServerStart(qemuMonitorPtr mon,
                                  const char *host,
                                  unsigned int port);
450 451 452
int qemuMonitorJSONNBDServerAdd(qemuMonitorPtr mon,
                                const char *deviceID,
                                bool writable);
453
int qemuMonitorJSONNBDServerStop(qemuMonitorPtr mon);
S
Stefan Berger 已提交
454 455 456 457 458 459 460 461
int qemuMonitorJSONGetTPMModels(qemuMonitorPtr mon,
                                char ***tpmmodels)
    ATTRIBUTE_NONNULL(2);

int qemuMonitorJSONGetTPMTypes(qemuMonitorPtr mon,
                               char ***tpmtypes)
    ATTRIBUTE_NONNULL(2);

462 463 464
int qemuMonitorJSONAttachCharDev(qemuMonitorPtr mon,
                                 const char *chrID,
                                 virDomainChrSourceDefPtr chr);
465 466
int qemuMonitorJSONDetachCharDev(qemuMonitorPtr mon,
                                 const char *chrID);
467 468 469 470

int qemuMonitorJSONGetDeviceAliases(qemuMonitorPtr mon,
                                    char ***aliases);

471 472 473 474
int qemuMonitorJSONGetCPUx86Data(qemuMonitorPtr mon,
                                 const char *property,
                                 virCPUDataPtr *cpudata);

475 476
int qemuMonitorJSONGetGuestCPU(qemuMonitorPtr mon,
                               virArch arch,
477 478
                               virCPUDataPtr *data,
                               virCPUDataPtr *disabled);
479 480

int qemuMonitorJSONRTCResetReinjection(qemuMonitorPtr mon);
481 482

int qemuMonitorJSONGetIOThreads(qemuMonitorPtr mon,
483
                                qemuMonitorIOThreadInfoPtr **iothreads)
484
    ATTRIBUTE_NONNULL(2);
485 486 487 488 489

int qemuMonitorJSONGetMemoryDeviceInfo(qemuMonitorPtr mon,
                                       virHashTablePtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

490 491
int qemuMonitorJSONFindLinkPath(qemuMonitorPtr mon,
                                const char *name,
492
                                const char *alias,
493
                                char **path)
494
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4);
495 496 497 498 499

int qemuMonitorJSONMigrateIncoming(qemuMonitorPtr mon,
                                   const char *uri)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

500 501
int qemuMonitorJSONMigrateStartPostCopy(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);
502 503 504 505

int qemuMonitorJSONMigrateContinue(qemuMonitorPtr mon,
                                   qemuMonitorMigrationStatus status)
    ATTRIBUTE_NONNULL(1);
506

507 508 509
int qemuMonitorJSONGetRTCTime(qemuMonitorPtr mon,
                              struct tm *tm)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
510 511 512 513 514

int qemuMonitorJSONGetHotpluggableCPUs(qemuMonitorPtr mon,
                                       struct qemuMonitorQueryHotpluggableCpusEntry **entries,
                                       size_t *nentries)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
515 516 517

virHashTablePtr qemuMonitorJSONQueryQMPSchema(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);
518 519 520 521 522 523

int qemuMonitorJSONSetBlockThreshold(qemuMonitorPtr mon,
                                     const char *nodename,
                                     unsigned long long threshold)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

524 525 526
virJSONValuePtr qemuMonitorJSONQueryNamedBlockNodes(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);

M
Michal Privoznik 已提交
527 528 529
int qemuMonitorJSONSetWatchdogAction(qemuMonitorPtr mon,
                                     const char *action)
    ATTRIBUTE_NONNULL(1);
D
Daniel P. Berrange 已提交
530
#endif /* QEMU_MONITOR_JSON_H */