qemu_monitor_json.h 27.8 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 qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon,
                                 const char *line,
                                 qemuMonitorMessagePtr msg);

D
Daniel P. Berrange 已提交
35 36 37 38 39
int qemuMonitorJSONIOProcess(qemuMonitorPtr mon,
                             const char *data,
                             size_t len,
                             qemuMonitorMessagePtr msg);

40 41 42
int qemuMonitorJSONHumanCommand(qemuMonitorPtr mon,
                                const char *cmd,
                                char **reply);
43

44 45
int qemuMonitorJSONSetCapabilities(qemuMonitorPtr mon);

46
int qemuMonitorJSONStartCPUs(qemuMonitorPtr mon);
D
Daniel P. Berrange 已提交
47
int qemuMonitorJSONStopCPUs(qemuMonitorPtr mon);
48 49 50
int qemuMonitorJSONGetStatus(qemuMonitorPtr mon,
                             bool *running,
                             virDomainPausedReason *reason);
D
Daniel P. Berrange 已提交
51 52

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

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

80
virJSONValuePtr qemuMonitorJSONQueryBlockstats(qemuMonitorPtr mon);
81
int qemuMonitorJSONGetAllBlockStatsInfo(qemuMonitorPtr mon,
82
                                        virHashTablePtr hash,
83
                                        bool backingChain);
84
int qemuMonitorJSONBlockStatsUpdateCapacity(qemuMonitorPtr mon,
85 86
                                            virHashTablePtr stats,
                                            bool backingChain);
87 88 89
int qemuMonitorJSONBlockStatsUpdateCapacityBlockdev(qemuMonitorPtr mon,
                                                    virHashTablePtr stats);

90
int qemuMonitorJSONBlockResize(qemuMonitorPtr mon,
91 92
                               const char *device,
                               const char *nodename,
93
                               unsigned long long size);
D
Daniel P. Berrange 已提交
94

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

int qemuMonitorJSONEjectMedia(qemuMonitorPtr mon,
107
                              const char *dev_name,
108
                              bool force);
D
Daniel P. Berrange 已提交
109
int qemuMonitorJSONChangeMedia(qemuMonitorPtr mon,
110
                               const char *dev_name,
D
Daniel P. Berrange 已提交
111 112 113 114 115 116
                               const char *newmedia,
                               const char *format);


int qemuMonitorJSONSaveVirtualMemory(qemuMonitorPtr mon,
                                     unsigned long long offset,
117
                                     unsigned long long length,
D
Daniel P. Berrange 已提交
118 119 120
                                     const char *path);
int qemuMonitorJSONSavePhysicalMemory(qemuMonitorPtr mon,
                                      unsigned long long offset,
121
                                      unsigned long long length,
D
Daniel P. Berrange 已提交
122 123 124 125 126
                                      const char *path);

int qemuMonitorJSONSetMigrationSpeed(qemuMonitorPtr mon,
                                     unsigned long bandwidth);

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

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

135
int qemuMonitorJSONGetMigrationParams(qemuMonitorPtr mon,
136
                                      virJSONValuePtr *params);
137
int qemuMonitorJSONSetMigrationParams(qemuMonitorPtr mon,
138
                                      virJSONValuePtr params);
139

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

144 145
int qemuMonitorJSONGetMigrationCapabilities(qemuMonitorPtr mon,
                                            char ***capabilities);
146
int qemuMonitorJSONSetMigrationCapabilities(qemuMonitorPtr mon,
147
                                            virJSONValuePtr caps);
148

A
Andrea Bolognani 已提交
149 150 151
int qemuMonitorJSONGetGICCapabilities(qemuMonitorPtr mon,
                                      virGICCapability **capabilities);

152 153 154
int qemuMonitorJSONGetSEVCapabilities(qemuMonitorPtr mon,
                                      virSEVCapability **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 201 202 203 204

int qemuMonitorJSONSendFileHandle(qemuMonitorPtr mon,
                                  const char *fdname,
                                  int fd);

int qemuMonitorJSONCloseFileHandle(qemuMonitorPtr mon,
                                   const char *fdname);

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
int qemuMonitorJSONAddObject(qemuMonitorPtr mon,
                             virJSONValuePtr props);

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

235
int qemuMonitorJSONTransaction(qemuMonitorPtr mon, virJSONValuePtr *actions)
236 237 238 239 240 241
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuMonitorJSONDriveMirror(qemuMonitorPtr mon,
                               const char *device,
                               const char *file,
                               const char *format,
                               unsigned long long speed,
242 243
                               unsigned int granularity,
                               unsigned long long buf_size,
244 245
                               bool shallow,
                               bool reuse)
246
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
247 248
int qemuMonitorJSONBlockdevMirror(qemuMonitorPtr mon,
                                  const char *jobname,
249
                                  bool persistjob,
250 251 252 253 254
                                  const char *device,
                                  const char *target,
                                  unsigned long long speed,
                                  unsigned int granularity,
                                  unsigned long long buf_size,
255
                                  bool shallow)
256
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4) ATTRIBUTE_NONNULL(5);
257
int qemuMonitorJSONDrivePivot(qemuMonitorPtr mon,
258
                              const char *jobname)
259
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
260

261 262 263
bool qemuMonitorJSONSupportsActiveCommit(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);

264 265
int qemuMonitorJSONBlockCommit(qemuMonitorPtr mon,
                               const char *device,
266 267
                               const char *jobname,
                               bool persistjob,
268
                               const char *top,
269
                               const char *topNode,
270
                               const char *base,
271
                               const char *baseNode,
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
                                    char **reply_str);
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
int qemuMonitorJSONScreendump(qemuMonitorPtr mon,
295 296
                              const char *device,
                              unsigned int head,
297 298
                              const char *file);

299 300
int qemuMonitorJSONBlockStream(qemuMonitorPtr mon,
                               const char *device,
301 302
                               const char *jobname,
                               bool persistjob,
303
                               const char *base,
304
                               const char *baseNode,
305
                               const char *backingName,
306
                               unsigned long long speed)
307
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
308

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

313 314 315 316 317 318
int
qemuMonitorJSONGetJobInfo(qemuMonitorPtr mon,
                          qemuMonitorJobInfoPtr **jobs,
                          size_t *njobs);


319
int qemuMonitorJSONBlockJobSetSpeed(qemuMonitorPtr mon,
320
                                    const char *jobname,
321
                                    unsigned long long speed)
322 323
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

324 325
virHashTablePtr qemuMonitorJSONGetAllBlockJobInfo(qemuMonitorPtr mon,
                                                  bool rawjobname)
326
    ATTRIBUTE_NONNULL(1);
327

328 329 330 331
int qemuMonitorJSONJobDismiss(qemuMonitorPtr mon,
                              const char *jobname)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

332 333 334 335 336
int qemuMonitorJSONJobCancel(qemuMonitorPtr mon,
                             const char *jobname,
                             bool quiet)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

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

341 342
int qemuMonitorJSONSetLink(qemuMonitorPtr mon,
                           const char *name,
343
                           virDomainNetInterfaceLinkState state);
344

345 346 347 348 349
int qemuMonitorJSONOpenGraphics(qemuMonitorPtr mon,
                                const char *protocol,
                                const char *fdname,
                                bool skipauth);

350
int qemuMonitorJSONSetBlockIoThrottle(qemuMonitorPtr mon,
351 352
                                      const char *drivealias,
                                      const char *qomid,
353
                                      virDomainBlockIoTuneInfoPtr info,
354
                                      bool supportMaxOptions,
355
                                      bool supportGroupNameOption,
356
                                      bool supportMaxLengthOptions);
357 358

int qemuMonitorJSONGetBlockIoThrottle(qemuMonitorPtr mon,
359 360
                                      const char *drivealias,
                                      const char *qdevid,
361
                                      virDomainBlockIoTuneInfoPtr reply);
362

363 364
int qemuMonitorJSONSystemWakeup(qemuMonitorPtr mon);

365 366
char *qemuMonitorJSONGetSEVMeasurement(qemuMonitorPtr mon);

367 368 369 370 371 372 373
int qemuMonitorJSONGetVersion(qemuMonitorPtr mon,
                              int *major,
                              int *minor,
                              int *micro,
                              char **package)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

374 375 376 377
int qemuMonitorJSONGetMachines(qemuMonitorPtr mon,
                               qemuMonitorMachineInfoPtr **machines)
    ATTRIBUTE_NONNULL(2);

378
int qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon,
379
                                     qemuMonitorCPUDefInfoPtr **cpus)
380 381
    ATTRIBUTE_NONNULL(2);

382
int qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
383
                                        qemuMonitorCPUModelExpansionType type,
384
                                        virCPUDefPtr cpu,
385
                                        bool migratable,
386
                                        bool fail_no_props,
387
                                        qemuMonitorCPUModelInfoPtr *model_info)
388
    ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(6);
389

390 391 392
int qemuMonitorJSONGetCommands(qemuMonitorPtr mon,
                               char ***commands)
    ATTRIBUTE_NONNULL(2);
393 394 395
int qemuMonitorJSONGetEvents(qemuMonitorPtr mon,
                             char ***events)
    ATTRIBUTE_NONNULL(2);
396 397
int qemuMonitorJSONGetCommandLineOptionParameters(qemuMonitorPtr mon,
                                                  const char *option,
398 399
                                                  char ***params,
                                                  bool *found)
400
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
401

402 403 404 405 406
int qemuMonitorJSONGetKVMState(qemuMonitorPtr mon,
                               bool *enabled,
                               bool *present)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);

407 408 409
int qemuMonitorJSONGetObjectTypes(qemuMonitorPtr mon,
                                  char ***types)
    ATTRIBUTE_NONNULL(2);
410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426

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

427 428 429
/* ObjectProperty structures and Get/Set API's are public only
 * for qemumonitorjsontest
 */
430 431 432 433 434 435 436 437 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
/* 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);

464 465 466 467 468 469
int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
                                     const char *path,
                                     const char *property,
                                     qemuMonitorJSONObjectPropertyPtr prop)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

470 471
int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon,
                                  const char *device,
472 473
                                  char ***props)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
474 475 476 477
int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
                                  const char *object,
                                  char ***props)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
478
char *qemuMonitorJSONGetTargetArch(qemuMonitorPtr mon);
479

480
int qemuMonitorJSONNBDServerStart(qemuMonitorPtr mon,
481
                                  const virStorageNetHostDef *server,
482
                                  const char *tls_alias);
483 484
int qemuMonitorJSONNBDServerAdd(qemuMonitorPtr mon,
                                const char *deviceID,
485 486 487
                                const char *export,
                                bool writable,
                                const char *bitmap);
488
int qemuMonitorJSONNBDServerStop(qemuMonitorPtr mon);
S
Stefan Berger 已提交
489 490 491 492 493 494 495 496
int qemuMonitorJSONGetTPMModels(qemuMonitorPtr mon,
                                char ***tpmmodels)
    ATTRIBUTE_NONNULL(2);

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

497 498 499
int qemuMonitorJSONAttachCharDev(qemuMonitorPtr mon,
                                 const char *chrID,
                                 virDomainChrSourceDefPtr chr);
500 501
int qemuMonitorJSONDetachCharDev(qemuMonitorPtr mon,
                                 const char *chrID);
502 503 504 505

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

506 507 508 509
int qemuMonitorJSONGetCPUx86Data(qemuMonitorPtr mon,
                                 const char *property,
                                 virCPUDataPtr *cpudata);

510 511 512
int qemuMonitorJSONGetGuestCPUx86(qemuMonitorPtr mon,
                                  virCPUDataPtr *data,
                                  virCPUDataPtr *disabled);
513

514 515 516 517 518 519 520
int qemuMonitorJSONGetGuestCPU(qemuMonitorPtr mon,
                               virArch arch,
                               qemuMonitorCPUFeatureTranslationCallback translate,
                               void *opaque,
                               virCPUDataPtr *enabled,
                               virCPUDataPtr *disabled);

521
int qemuMonitorJSONRTCResetReinjection(qemuMonitorPtr mon);
522 523

int qemuMonitorJSONGetIOThreads(qemuMonitorPtr mon,
524
                                qemuMonitorIOThreadInfoPtr **iothreads)
525
    ATTRIBUTE_NONNULL(2);
526

527 528 529 530
int qemuMonitorJSONSetIOThread(qemuMonitorPtr mon,
                               qemuMonitorIOThreadInfoPtr iothreadInfo)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

531 532 533 534
int qemuMonitorJSONGetMemoryDeviceInfo(qemuMonitorPtr mon,
                                       virHashTablePtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

535 536
int qemuMonitorJSONFindLinkPath(qemuMonitorPtr mon,
                                const char *name,
537
                                const char *alias,
538
                                char **path)
539
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4);
540 541 542 543 544

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

545 546
int qemuMonitorJSONMigrateStartPostCopy(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);
547 548 549 550

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

552 553 554
int qemuMonitorJSONGetRTCTime(qemuMonitorPtr mon,
                              struct tm *tm)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
555 556 557 558 559

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

561
virJSONValuePtr qemuMonitorJSONQueryQMPSchema(qemuMonitorPtr mon)
562
    ATTRIBUTE_NONNULL(1);
563 564 565 566 567 568

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

569 570 571
virJSONValuePtr qemuMonitorJSONQueryNamedBlockNodes(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);

M
Michal Privoznik 已提交
572 573 574
int qemuMonitorJSONSetWatchdogAction(qemuMonitorPtr mon,
                                     const char *action)
    ATTRIBUTE_NONNULL(1);
575

576 577 578 579 580
int qemuMonitorJSONBlockdevCreate(qemuMonitorPtr mon,
                                  const char *jobname,
                                  virJSONValuePtr props)
    ATTRIBUTE_NONNULL(1);

581 582 583 584 585 586 587 588
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);

589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606
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);

607 608 609 610
int qemuMonitorJSONGetPRManagerInfo(qemuMonitorPtr mon,
                                    virHashTablePtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

611 612 613 614
int
qemuMonitorJSONGetCurrentMachineInfo(qemuMonitorPtr mon,
                                     qemuMonitorCurrentMachineInfoPtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
E
Eric Blake 已提交
615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631
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);
632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655

int
qemuMonitorJSONTransactionBitmapAdd(virJSONValuePtr actions,
                                    const char *node,
                                    const char *name,
                                    bool persistent,
                                    bool disabled);
int
qemuMonitorJSONTransactionBitmapRemove(virJSONValuePtr actions,
                                       const char *node,
                                       const char *name);
int
qemuMonitorJSONTransactionBitmapEnable(virJSONValuePtr actions,
                                       const char *node,
                                       const char *name);
int
qemuMonitorJSONTransactionBitmapDisable(virJSONValuePtr actions,
                                        const char *node,
                                        const char *name);
int
qemuMonitorJSONTransactionBitmapMerge(virJSONValuePtr actions,
                                      const char *node,
                                      const char *target,
                                      virJSONValuePtr *sources);
656 657 658 659 660 661 662 663 664 665 666

int
qemuMonitorJSONTransactionSnapshotLegacy(virJSONValuePtr actions,
                                         const char *device,
                                         const char *path,
                                         const char *format,
                                         bool existing);
int
qemuMonitorJSONTransactionSnapshotBlockdev(virJSONValuePtr actions,
                                           const char *node,
                                           const char *overlay);