qemu_monitor_json.h 21.6 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
int qemuMonitorJSONGetAllBlockStatsInfo(qemuMonitorPtr mon,
85
                                        virHashTablePtr hash,
86
                                        bool backingChain);
87
int qemuMonitorJSONBlockStatsUpdateCapacity(qemuMonitorPtr mon,
88 89
                                            virHashTablePtr stats,
                                            bool backingChain);
90 91 92
int qemuMonitorJSONBlockResize(qemuMonitorPtr mon,
                               const char *devce,
                               unsigned long long size);
D
Daniel P. Berrange 已提交
93 94 95

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

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

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

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

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

141 142
int qemuMonitorJSONGetMigrationStats(qemuMonitorPtr mon,
                                     qemuMonitorMigrationStatsPtr stats);
D
Daniel P. Berrange 已提交
143

144 145
int qemuMonitorJSONGetMigrationCapabilities(qemuMonitorPtr mon,
                                            char ***capabilities);
146 147 148
int qemuMonitorJSONGetMigrationCapability(qemuMonitorPtr mon,
                                          qemuMonitorMigrationCaps capability);
int qemuMonitorJSONSetMigrationCapability(qemuMonitorPtr mon,
149 150
                                          qemuMonitorMigrationCaps capability,
                                          bool state);
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 qemuMonitorJSONGetDumpGuestMemoryCapability(qemuMonitorPtr mon,
                                                const char *capability);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

244
int qemuMonitorJSONDiskSnapshot(qemuMonitorPtr mon,
245
                                virJSONValuePtr actions,
246
                                const char *device,
247 248
                                const char *file,
                                const char *format,
249 250 251 252 253 254 255 256 257 258
                                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,
259 260
                               unsigned int granularity,
                               unsigned long long buf_size,
261 262 263
                               unsigned int flags)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
int qemuMonitorJSONDrivePivot(qemuMonitorPtr mon,
264
                              const char *device)
265
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
266

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

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

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

287
int qemuMonitorJSONInjectNMI(qemuMonitorPtr mon);
288

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

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

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

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

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

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

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

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

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

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

339 340
int qemuMonitorJSONSystemWakeup(qemuMonitorPtr mon);

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

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

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

356
int qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
357
                                        qemuMonitorCPUModelExpansionType type,
358 359
                                        const char *model_name,
                                        qemuMonitorCPUModelInfoPtr *model_info)
360
    ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
361

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

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

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

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

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

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

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

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

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

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

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

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

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

int qemuMonitorJSONRTCResetReinjection(qemuMonitorPtr mon);
482 483

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

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

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

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

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

504 505 506
int qemuMonitorJSONGetRTCTime(qemuMonitorPtr mon,
                              struct tm *tm)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
507 508 509 510 511

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

virHashTablePtr qemuMonitorJSONQueryQMPSchema(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);
D
Daniel P. Berrange 已提交
515
#endif /* QEMU_MONITOR_JSON_H */