qemu_monitor_json.h 26.4 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
#pragma once
D
Daniel P. Berrange 已提交
23

24
#include "internal.h"
D
Daniel P. Berrange 已提交
25

26 27 28 29
#include "qemu_monitor.h"
#include "virbitmap.h"
#include "cpu/cpu.h"
#include "util/virgic.h"
D
Daniel P. Berrange 已提交
30

31 32 33 34
int qemuMonitorJSONTransactionAdd(virJSONValuePtr actions,
                                  const char *cmdname,
                                  ...);

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
                             size_t *nentries,
63 64
                             bool force,
                             bool fast);
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 qemuMonitorJSONBlockStatsUpdateCapacityBlockdev(qemuMonitorPtr mon,
                                                    virHashTablePtr stats);

95
int qemuMonitorJSONBlockResize(qemuMonitorPtr mon,
96 97
                               const char *device,
                               const char *nodename,
98
                               unsigned long long size);
D
Daniel P. Berrange 已提交
99

100 101 102 103 104 105 106
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 已提交
107
int qemuMonitorJSONSetBalloon(qemuMonitorPtr mon,
108
                              unsigned long long newmem);
109
int qemuMonitorJSONSetCPU(qemuMonitorPtr mon, int cpu, bool online);
D
Daniel P. Berrange 已提交
110 111

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

132 133 134
int qemuMonitorJSONSetMigrationDowntime(qemuMonitorPtr mon,
                                        unsigned long long downtime);

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

140
int qemuMonitorJSONGetMigrationParams(qemuMonitorPtr mon,
141
                                      virJSONValuePtr *params);
142
int qemuMonitorJSONSetMigrationParams(qemuMonitorPtr mon,
143
                                      virJSONValuePtr params);
144

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

149 150
int qemuMonitorJSONGetMigrationCapabilities(qemuMonitorPtr mon,
                                            char ***capabilities);
151
int qemuMonitorJSONSetMigrationCapabilities(qemuMonitorPtr mon,
152
                                            virJSONValuePtr caps);
153

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

157 158 159
int qemuMonitorJSONGetSEVCapabilities(qemuMonitorPtr mon,
                                      virSEVCapability **capabilities);

160 161 162
int qemuMonitorJSONMigrate(qemuMonitorPtr mon,
                           unsigned int flags,
                           const char *uri);
163 164 165
int qemuMonitorJSONGetSpiceMigrationStatus(qemuMonitorPtr mon,
                                           bool *spice_migrated);

D
Daniel P. Berrange 已提交
166 167 168

int qemuMonitorJSONMigrateCancel(qemuMonitorPtr mon);

169 170 171
int qemuMonitorJSONQueryDump(qemuMonitorPtr mon,
                             qemuMonitorDumpStatsPtr stats);

172 173 174
int qemuMonitorJSONGetDumpGuestMemoryCapability(qemuMonitorPtr mon,
                                                const char *capability);

175
int qemuMonitorJSONDump(qemuMonitorPtr mon,
176
                        const char *protocol,
177 178
                        const char *dumpformat,
                        bool detach);
179

180 181 182 183 184 185 186
int qemuMonitorJSONGraphicsRelocate(qemuMonitorPtr mon,
                                    int type,
                                    const char *hostname,
                                    int port,
                                    int tlsPort,
                                    const char *tlsSubject);

D
Daniel P. Berrange 已提交
187
int qemuMonitorJSONAddPCIHostDevice(qemuMonitorPtr mon,
188 189
                                    virPCIDeviceAddress *hostAddr,
                                    virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
190 191 192 193

int qemuMonitorJSONAddPCIDisk(qemuMonitorPtr mon,
                              const char *path,
                              const char *bus,
194
                              virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
195 196 197

int qemuMonitorJSONAddPCINetwork(qemuMonitorPtr mon,
                                 const char *nicstr,
198
                                 virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
199 200

int qemuMonitorJSONRemovePCIDevice(qemuMonitorPtr mon,
201
                                   virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
202 203 204 205

int qemuMonitorJSONSendFileHandle(qemuMonitorPtr mon,
                                  const char *fdname,
                                  int fd);
206 207
int qemuMonitorJSONAddFd(qemuMonitorPtr mon, int fdset, int fd,
                         const char *name);
D
Daniel P. Berrange 已提交
208 209 210

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

213 214 215 216 217 218
int qemuMonitorJSONAddNetdev(qemuMonitorPtr mon,
                             const char *netdevstr);

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

219 220 221
int qemuMonitorJSONQueryRxFilter(qemuMonitorPtr mon, const char *alias,
                                 virNetDevRxFilterPtr *filter);

222 223
int qemuMonitorJSONGetChardevInfo(qemuMonitorPtr mon,
                                  virHashTablePtr info);
224

225 226
int qemuMonitorJSONAttachPCIDiskController(qemuMonitorPtr mon,
                                           const char *bus,
227
                                           virPCIDeviceAddress *guestAddr);
228

229 230
int qemuMonitorJSONAddDeviceArgs(qemuMonitorPtr mon,
                                 virJSONValuePtr args);
231 232 233
int qemuMonitorJSONAddDevice(qemuMonitorPtr mon,
                             const char *devicestr);

234
int qemuMonitorJSONDelDevice(qemuMonitorPtr mon,
235
                             const char *devalias);
236

237 238 239 240 241 242
int qemuMonitorJSONAddObject(qemuMonitorPtr mon,
                             virJSONValuePtr props);

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

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

269 270 271
bool qemuMonitorJSONSupportsActiveCommit(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);

272 273
int qemuMonitorJSONBlockCommit(qemuMonitorPtr mon,
                               const char *device,
274 275
                               const char *jobname,
                               bool persistjob,
276
                               const char *top,
277
                               const char *topNode,
278
                               const char *base,
279
                               const char *baseNode,
280
                               const char *backingName,
281
                               unsigned long long bandwidth)
282
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
283

284 285 286 287 288 289 290
char *qemuMonitorJSONDiskNameLookup(qemuMonitorPtr mon,
                                    const char *device,
                                    virStorageSourcePtr top,
                                    virStorageSourcePtr target)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
    ATTRIBUTE_NONNULL(4);

291 292
int qemuMonitorJSONArbitraryCommand(qemuMonitorPtr mon,
                                    const char *cmd_str,
293 294
                                    char **reply_str,
                                    bool hmp);
295

296
int qemuMonitorJSONInjectNMI(qemuMonitorPtr mon);
297

298 299 300 301 302
int qemuMonitorJSONSendKey(qemuMonitorPtr mon,
                           unsigned int holdtime,
                           unsigned int *keycodes,
                           unsigned int nkeycodes);

303
int qemuMonitorJSONScreendump(qemuMonitorPtr mon,
304 305
                              const char *device,
                              unsigned int head,
306 307
                              const char *file);

308 309
int qemuMonitorJSONBlockStream(qemuMonitorPtr mon,
                               const char *device,
310 311
                               const char *jobname,
                               bool persistjob,
312
                               const char *base,
313
                               const char *baseNode,
314
                               const char *backingName,
315
                               unsigned long long speed)
316
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
317

318
int qemuMonitorJSONBlockJobCancel(qemuMonitorPtr mon,
319
                                  const char *jobname)
320 321
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

322 323 324 325 326 327
int
qemuMonitorJSONGetJobInfo(qemuMonitorPtr mon,
                          qemuMonitorJobInfoPtr **jobs,
                          size_t *njobs);


328
int qemuMonitorJSONBlockJobSetSpeed(qemuMonitorPtr mon,
329
                                    const char *jobname,
330
                                    unsigned long long speed)
331 332
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

333 334
virHashTablePtr qemuMonitorJSONGetAllBlockJobInfo(qemuMonitorPtr mon,
                                                  bool rawjobname)
335
    ATTRIBUTE_NONNULL(1);
336

337 338 339 340
int qemuMonitorJSONJobDismiss(qemuMonitorPtr mon,
                              const char *jobname)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

341 342 343 344 345
int qemuMonitorJSONJobCancel(qemuMonitorPtr mon,
                             const char *jobname,
                             bool quiet)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

346 347 348 349
int qemuMonitorJSONJobComplete(qemuMonitorPtr mon,
                               const char *jobname)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

350 351
int qemuMonitorJSONSetLink(qemuMonitorPtr mon,
                           const char *name,
352
                           virDomainNetInterfaceLinkState state);
353

354 355 356 357 358
int qemuMonitorJSONOpenGraphics(qemuMonitorPtr mon,
                                const char *protocol,
                                const char *fdname,
                                bool skipauth);

359
int qemuMonitorJSONSetBlockIoThrottle(qemuMonitorPtr mon,
360 361
                                      const char *drivealias,
                                      const char *qomid,
362
                                      virDomainBlockIoTuneInfoPtr info,
363
                                      bool supportMaxOptions,
364
                                      bool supportGroupNameOption,
365
                                      bool supportMaxLengthOptions);
366 367

int qemuMonitorJSONGetBlockIoThrottle(qemuMonitorPtr mon,
368 369
                                      const char *drivealias,
                                      const char *qdevid,
370
                                      virDomainBlockIoTuneInfoPtr reply);
371

372 373
int qemuMonitorJSONSystemWakeup(qemuMonitorPtr mon);

374 375
char *qemuMonitorJSONGetSEVMeasurement(qemuMonitorPtr mon);

376 377 378 379 380 381 382
int qemuMonitorJSONGetVersion(qemuMonitorPtr mon,
                              int *major,
                              int *minor,
                              int *micro,
                              char **package)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

383 384 385 386
int qemuMonitorJSONGetMachines(qemuMonitorPtr mon,
                               qemuMonitorMachineInfoPtr **machines)
    ATTRIBUTE_NONNULL(2);

387
int qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon,
388
                                     qemuMonitorCPUDefInfoPtr **cpus)
389 390
    ATTRIBUTE_NONNULL(2);

391
int qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
392
                                        qemuMonitorCPUModelExpansionType type,
393
                                        const char *model_name,
394
                                        bool migratable,
395
                                        qemuMonitorCPUModelInfoPtr *model_info)
396
    ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(5);
397

398 399 400
int qemuMonitorJSONGetCommands(qemuMonitorPtr mon,
                               char ***commands)
    ATTRIBUTE_NONNULL(2);
401 402 403
int qemuMonitorJSONGetEvents(qemuMonitorPtr mon,
                             char ***events)
    ATTRIBUTE_NONNULL(2);
404 405
int qemuMonitorJSONGetCommandLineOptionParameters(qemuMonitorPtr mon,
                                                  const char *option,
406 407
                                                  char ***params,
                                                  bool *found)
408
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
409

410 411 412 413 414
int qemuMonitorJSONGetKVMState(qemuMonitorPtr mon,
                               bool *enabled,
                               bool *present)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);

415 416 417
int qemuMonitorJSONGetObjectTypes(qemuMonitorPtr mon,
                                  char ***types)
    ATTRIBUTE_NONNULL(2);
418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434

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

435 436 437
/* ObjectProperty structures and Get/Set API's are public only
 * for qemumonitorjsontest
 */
438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471
/* 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);

472 473 474 475 476 477
int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
                                     const char *path,
                                     const char *property,
                                     qemuMonitorJSONObjectPropertyPtr prop)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

478 479
int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon,
                                  const char *device,
480 481
                                  char ***props)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
482 483 484 485
int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
                                  const char *object,
                                  char ***props)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
486
char *qemuMonitorJSONGetTargetArch(qemuMonitorPtr mon);
487

488
int qemuMonitorJSONNBDServerStart(qemuMonitorPtr mon,
489
                                  const virStorageNetHostDef *server,
490
                                  const char *tls_alias);
491 492
int qemuMonitorJSONNBDServerAdd(qemuMonitorPtr mon,
                                const char *deviceID,
493 494 495
                                const char *export,
                                bool writable,
                                const char *bitmap);
496
int qemuMonitorJSONNBDServerStop(qemuMonitorPtr mon);
S
Stefan Berger 已提交
497 498 499 500 501 502 503 504
int qemuMonitorJSONGetTPMModels(qemuMonitorPtr mon,
                                char ***tpmmodels)
    ATTRIBUTE_NONNULL(2);

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

505 506 507
int qemuMonitorJSONAttachCharDev(qemuMonitorPtr mon,
                                 const char *chrID,
                                 virDomainChrSourceDefPtr chr);
508 509
int qemuMonitorJSONDetachCharDev(qemuMonitorPtr mon,
                                 const char *chrID);
510 511 512 513

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

514 515 516 517
int qemuMonitorJSONGetCPUx86Data(qemuMonitorPtr mon,
                                 const char *property,
                                 virCPUDataPtr *cpudata);

518 519 520
int qemuMonitorJSONGetGuestCPUx86(qemuMonitorPtr mon,
                                  virCPUDataPtr *data,
                                  virCPUDataPtr *disabled);
521

522 523 524 525 526 527 528
int qemuMonitorJSONGetGuestCPU(qemuMonitorPtr mon,
                               virArch arch,
                               qemuMonitorCPUFeatureTranslationCallback translate,
                               void *opaque,
                               virCPUDataPtr *enabled,
                               virCPUDataPtr *disabled);

529
int qemuMonitorJSONRTCResetReinjection(qemuMonitorPtr mon);
530 531

int qemuMonitorJSONGetIOThreads(qemuMonitorPtr mon,
532
                                qemuMonitorIOThreadInfoPtr **iothreads)
533
    ATTRIBUTE_NONNULL(2);
534

535 536 537 538
int qemuMonitorJSONSetIOThread(qemuMonitorPtr mon,
                               qemuMonitorIOThreadInfoPtr iothreadInfo)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

539 540 541 542
int qemuMonitorJSONGetMemoryDeviceInfo(qemuMonitorPtr mon,
                                       virHashTablePtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

543 544
int qemuMonitorJSONFindLinkPath(qemuMonitorPtr mon,
                                const char *name,
545
                                const char *alias,
546
                                char **path)
547
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4);
548 549 550 551 552

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

553 554
int qemuMonitorJSONMigrateStartPostCopy(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);
555 556 557 558

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

560 561 562
int qemuMonitorJSONGetRTCTime(qemuMonitorPtr mon,
                              struct tm *tm)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
563 564 565 566 567

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

569
virJSONValuePtr qemuMonitorJSONQueryQMPSchema(qemuMonitorPtr mon)
570
    ATTRIBUTE_NONNULL(1);
571 572 573 574 575 576

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

577 578 579
virJSONValuePtr qemuMonitorJSONQueryNamedBlockNodes(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);

M
Michal Privoznik 已提交
580 581 582
int qemuMonitorJSONSetWatchdogAction(qemuMonitorPtr mon,
                                     const char *action)
    ATTRIBUTE_NONNULL(1);
583 584 585 586 587 588 589 590 591

int qemuMonitorJSONBlockdevAdd(qemuMonitorPtr mon,
                               virJSONValuePtr props)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

int qemuMonitorJSONBlockdevDel(qemuMonitorPtr mon,
                               const char *nodename)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609
int qemuMonitorJSONBlockdevTrayOpen(qemuMonitorPtr mon,
                                    const char *id,
                                    bool force)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

int qemuMonitorJSONBlockdevTrayClose(qemuMonitorPtr mon,
                                     const char *id)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

int qemuMonitorJSONBlockdevMediumRemove(qemuMonitorPtr mon,
                                        const char *id)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

int qemuMonitorJSONBlockdevMediumInsert(qemuMonitorPtr mon,
                                        const char *id,
                                        const char *nodename)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);

610 611 612 613
int qemuMonitorJSONGetPRManagerInfo(qemuMonitorPtr mon,
                                    virHashTablePtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

614 615 616 617
int
qemuMonitorJSONGetCurrentMachineInfo(qemuMonitorPtr mon,
                                     qemuMonitorCurrentMachineInfoPtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
E
Eric Blake 已提交
618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634
int qemuMonitorJSONAddBitmap(qemuMonitorPtr mon,
                             const char *node,
                             const char *bitmap,
                             bool persistent);

int qemuMonitorJSONEnableBitmap(qemuMonitorPtr mon,
                                const char *node,
                                const char *bitmap);

int qemuMonitorJSONMergeBitmaps(qemuMonitorPtr mon,
                                const char *node,
                                const char *dst,
                                virJSONValuePtr *src);

int qemuMonitorJSONDeleteBitmap(qemuMonitorPtr mon,
                                const char *node,
                                const char *bitmap);