qemu_monitor_json.h 22.2 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);

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

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

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

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

int qemuMonitorJSONSetVNCPassword(qemuMonitorPtr mon,
                                  const char *password);
97 98 99 100 101 102 103
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 已提交
104
int qemuMonitorJSONSetBalloon(qemuMonitorPtr mon,
105
                              unsigned long long newmem);
106
int qemuMonitorJSONSetCPU(qemuMonitorPtr mon, int cpu, bool online);
D
Daniel P. Berrange 已提交
107 108

int qemuMonitorJSONEjectMedia(qemuMonitorPtr mon,
109
                              const char *dev_name,
110
                              bool force);
D
Daniel P. Berrange 已提交
111
int qemuMonitorJSONChangeMedia(qemuMonitorPtr mon,
112
                               const char *dev_name,
D
Daniel P. Berrange 已提交
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
                               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);

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

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

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

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

146 147
int qemuMonitorJSONGetMigrationCapabilities(qemuMonitorPtr mon,
                                            char ***capabilities);
148 149 150
int qemuMonitorJSONSetMigrationCapabilities(qemuMonitorPtr mon,
                                            virBitmapPtr caps,
                                            virBitmapPtr states);
151

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

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

D
Daniel P. Berrange 已提交
161 162 163

int qemuMonitorJSONMigrateCancel(qemuMonitorPtr mon);

164 165 166
int qemuMonitorJSONQueryDump(qemuMonitorPtr mon,
                             qemuMonitorDumpStatsPtr stats);

167 168 169
int qemuMonitorJSONGetDumpGuestMemoryCapability(qemuMonitorPtr mon,
                                                const char *capability);

170
int qemuMonitorJSONDump(qemuMonitorPtr mon,
171
                        const char *protocol,
172 173
                        const char *dumpformat,
                        bool detach);
174

175 176 177 178 179 180 181
int qemuMonitorJSONGraphicsRelocate(qemuMonitorPtr mon,
                                    int type,
                                    const char *hostname,
                                    int port,
                                    int tlsPort,
                                    const char *tlsSubject);

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

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

int qemuMonitorJSONAddPCINetwork(qemuMonitorPtr mon,
                                 const char *nicstr,
193
                                 virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
194 195

int qemuMonitorJSONRemovePCIDevice(qemuMonitorPtr mon,
196
                                   virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
197 198 199 200

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

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

208 209 210 211 212 213
int qemuMonitorJSONAddNetdev(qemuMonitorPtr mon,
                             const char *netdevstr);

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

214 215 216
int qemuMonitorJSONQueryRxFilter(qemuMonitorPtr mon, const char *alias,
                                 virNetDevRxFilterPtr *filter);

217 218
int qemuMonitorJSONGetChardevInfo(qemuMonitorPtr mon,
                                  virHashTablePtr info);
219

220 221
int qemuMonitorJSONAttachPCIDiskController(qemuMonitorPtr mon,
                                           const char *bus,
222
                                           virPCIDeviceAddress *guestAddr);
223

224 225
int qemuMonitorJSONAddDeviceArgs(qemuMonitorPtr mon,
                                 virJSONValuePtr args);
226 227 228
int qemuMonitorJSONAddDevice(qemuMonitorPtr mon,
                             const char *devicestr);

229
int qemuMonitorJSONDelDevice(qemuMonitorPtr mon,
230
                             const char *devalias);
231

232 233 234 235 236 237 238 239
int qemuMonitorJSONAddObject(qemuMonitorPtr mon,
                             const char *type,
                             const char *objalias,
                             virJSONValuePtr props);

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

240 241 242 243
int qemuMonitorJSONSetDrivePassphrase(qemuMonitorPtr mon,
                                      const char *alias,
                                      const char *passphrase);

C
Chris Lalancette 已提交
244 245 246 247
int qemuMonitorJSONCreateSnapshot(qemuMonitorPtr mon, const char *name);
int qemuMonitorJSONLoadSnapshot(qemuMonitorPtr mon, const char *name);
int qemuMonitorJSONDeleteSnapshot(qemuMonitorPtr mon, const char *name);

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

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

279 280 281 282 283 284 285
char *qemuMonitorJSONDiskNameLookup(qemuMonitorPtr mon,
                                    const char *device,
                                    virStorageSourcePtr top,
                                    virStorageSourcePtr target)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
    ATTRIBUTE_NONNULL(4);

286 287
int qemuMonitorJSONArbitraryCommand(qemuMonitorPtr mon,
                                    const char *cmd_str,
288 289
                                    char **reply_str,
                                    bool hmp);
290

291
int qemuMonitorJSONInjectNMI(qemuMonitorPtr mon);
292

293 294 295 296 297
int qemuMonitorJSONSendKey(qemuMonitorPtr mon,
                           unsigned int holdtime,
                           unsigned int *keycodes,
                           unsigned int nkeycodes);

298 299 300
int qemuMonitorJSONScreendump(qemuMonitorPtr mon,
                              const char *file);

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

308
int qemuMonitorJSONBlockJobCancel(qemuMonitorPtr mon,
309
                                  const char *device)
310 311
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

312 313
int qemuMonitorJSONBlockJobSetSpeed(qemuMonitorPtr mon,
                                    const char *device,
314
                                    unsigned long long speed)
315 316
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

317 318
virHashTablePtr qemuMonitorJSONGetAllBlockJobInfo(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);
319

320 321
int qemuMonitorJSONSetLink(qemuMonitorPtr mon,
                           const char *name,
322
                           virDomainNetInterfaceLinkState state);
323

324 325 326 327 328
int qemuMonitorJSONOpenGraphics(qemuMonitorPtr mon,
                                const char *protocol,
                                const char *fdname,
                                bool skipauth);

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

int qemuMonitorJSONGetBlockIoThrottle(qemuMonitorPtr mon,
                                      const char *device,
338
                                      virDomainBlockIoTuneInfoPtr reply);
339

340 341
int qemuMonitorJSONSystemWakeup(qemuMonitorPtr mon);

342 343 344 345 346 347 348
int qemuMonitorJSONGetVersion(qemuMonitorPtr mon,
                              int *major,
                              int *minor,
                              int *micro,
                              char **package)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

349 350 351 352
int qemuMonitorJSONGetMachines(qemuMonitorPtr mon,
                               qemuMonitorMachineInfoPtr **machines)
    ATTRIBUTE_NONNULL(2);

353
int qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon,
354
                                     qemuMonitorCPUDefInfoPtr **cpus)
355 356
    ATTRIBUTE_NONNULL(2);

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

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

376 377 378 379 380
int qemuMonitorJSONGetKVMState(qemuMonitorPtr mon,
                               bool *enabled,
                               bool *present)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);

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

/* 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);

401 402 403
/* ObjectProperty structures and Get/Set API's are public only
 * for qemumonitorjsontest
 */
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 435 436 437
/* 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);

438 439 440 441 442 443
int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
                                     const char *path,
                                     const char *property,
                                     qemuMonitorJSONObjectPropertyPtr prop)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

444 445 446 447
int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
                                  const char *type,
                                  char ***props)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
448
char *qemuMonitorJSONGetTargetArch(qemuMonitorPtr mon);
449

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

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

465 466 467
int qemuMonitorJSONAttachCharDev(qemuMonitorPtr mon,
                                 const char *chrID,
                                 virDomainChrSourceDefPtr chr);
468 469
int qemuMonitorJSONDetachCharDev(qemuMonitorPtr mon,
                                 const char *chrID);
470 471 472 473

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

474 475 476 477
int qemuMonitorJSONGetCPUx86Data(qemuMonitorPtr mon,
                                 const char *property,
                                 virCPUDataPtr *cpudata);

478 479
int qemuMonitorJSONGetGuestCPU(qemuMonitorPtr mon,
                               virArch arch,
480 481
                               virCPUDataPtr *data,
                               virCPUDataPtr *disabled);
482 483

int qemuMonitorJSONRTCResetReinjection(qemuMonitorPtr mon);
484 485

int qemuMonitorJSONGetIOThreads(qemuMonitorPtr mon,
486
                                qemuMonitorIOThreadInfoPtr **iothreads)
487
    ATTRIBUTE_NONNULL(2);
488 489 490 491 492

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

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

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

503 504
int qemuMonitorJSONMigrateStartPostCopy(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);
505 506 507 508

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

510 511 512
int qemuMonitorJSONGetRTCTime(qemuMonitorPtr mon,
                              struct tm *tm)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
513 514 515 516 517

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

519
virJSONValuePtr qemuMonitorJSONQueryQMPSchema(qemuMonitorPtr mon)
520
    ATTRIBUTE_NONNULL(1);
521 522 523 524 525 526

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

527 528 529
virJSONValuePtr qemuMonitorJSONQueryNamedBlockNodes(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);

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