qemu_monitor_json.h 28.5 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 91 92
virHashTablePtr
qemuMonitorJSONBlockGetNamedNodeDataJSON(virJSONValuePtr nodes);

93 94 95
virHashTablePtr
qemuMonitorJSONBlockGetNamedNodeData(qemuMonitorPtr mon);

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

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

int qemuMonitorJSONEjectMedia(qemuMonitorPtr mon,
113
                              const char *dev_name,
114
                              bool force);
D
Daniel P. Berrange 已提交
115
int qemuMonitorJSONChangeMedia(qemuMonitorPtr mon,
116
                               const char *dev_name,
D
Daniel P. Berrange 已提交
117 118 119 120 121 122
                               const char *newmedia,
                               const char *format);


int qemuMonitorJSONSaveVirtualMemory(qemuMonitorPtr mon,
                                     unsigned long long offset,
123
                                     unsigned long long length,
D
Daniel P. Berrange 已提交
124 125 126
                                     const char *path);
int qemuMonitorJSONSavePhysicalMemory(qemuMonitorPtr mon,
                                      unsigned long long offset,
127
                                      unsigned long long length,
D
Daniel P. Berrange 已提交
128 129 130 131 132
                                      const char *path);

int qemuMonitorJSONSetMigrationSpeed(qemuMonitorPtr mon,
                                     unsigned long bandwidth);

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

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

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

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

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

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

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

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

D
Daniel P. Berrange 已提交
167 168 169

int qemuMonitorJSONMigrateCancel(qemuMonitorPtr mon);

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

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

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

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

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

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

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

int qemuMonitorJSONRemovePCIDevice(qemuMonitorPtr mon,
202
                                   virPCIDeviceAddress *guestAddr);
D
Daniel P. Berrange 已提交
203 204 205 206 207 208 209 210

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

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

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

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

217 218 219
int qemuMonitorJSONQueryRxFilter(qemuMonitorPtr mon, const char *alias,
                                 virNetDevRxFilterPtr *filter);

220 221
int qemuMonitorJSONGetChardevInfo(qemuMonitorPtr mon,
                                  virHashTablePtr info);
222

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

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

232
int qemuMonitorJSONDelDevice(qemuMonitorPtr mon,
233
                             const char *devalias);
234

235 236 237 238 239 240
int qemuMonitorJSONAddObject(qemuMonitorPtr mon,
                             virJSONValuePtr props);

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

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

267 268 269
bool qemuMonitorJSONSupportsActiveCommit(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);

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

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

289 290
int qemuMonitorJSONArbitraryCommand(qemuMonitorPtr mon,
                                    const char *cmd_str,
291
                                    char **reply_str);
292

293
int qemuMonitorJSONInjectNMI(qemuMonitorPtr mon);
294

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

300
int qemuMonitorJSONScreendump(qemuMonitorPtr mon,
301 302
                              const char *device,
                              unsigned int head,
303 304
                              const char *file);

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

315
int qemuMonitorJSONBlockJobCancel(qemuMonitorPtr mon,
316
                                  const char *jobname)
317 318
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

319 320 321 322 323 324
int
qemuMonitorJSONGetJobInfo(qemuMonitorPtr mon,
                          qemuMonitorJobInfoPtr **jobs,
                          size_t *njobs);


325
int qemuMonitorJSONBlockJobSetSpeed(qemuMonitorPtr mon,
326
                                    const char *jobname,
327
                                    unsigned long long speed)
328 329
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

330 331
virHashTablePtr qemuMonitorJSONGetAllBlockJobInfo(qemuMonitorPtr mon,
                                                  bool rawjobname)
332
    ATTRIBUTE_NONNULL(1);
333

334 335 336 337
int qemuMonitorJSONJobDismiss(qemuMonitorPtr mon,
                              const char *jobname)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

338 339 340 341 342
int qemuMonitorJSONJobCancel(qemuMonitorPtr mon,
                             const char *jobname,
                             bool quiet)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

343 344 345 346
int qemuMonitorJSONJobComplete(qemuMonitorPtr mon,
                               const char *jobname)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

347 348
int qemuMonitorJSONSetLink(qemuMonitorPtr mon,
                           const char *name,
349
                           virDomainNetInterfaceLinkState state);
350

351 352 353 354 355
int qemuMonitorJSONOpenGraphics(qemuMonitorPtr mon,
                                const char *protocol,
                                const char *fdname,
                                bool skipauth);

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

int qemuMonitorJSONGetBlockIoThrottle(qemuMonitorPtr mon,
365 366
                                      const char *drivealias,
                                      const char *qdevid,
367
                                      virDomainBlockIoTuneInfoPtr reply);
368

369 370
int qemuMonitorJSONSystemWakeup(qemuMonitorPtr mon);

371 372
char *qemuMonitorJSONGetSEVMeasurement(qemuMonitorPtr mon);

373 374 375 376 377 378 379
int qemuMonitorJSONGetVersion(qemuMonitorPtr mon,
                              int *major,
                              int *minor,
                              int *micro,
                              char **package)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

380 381 382 383
int qemuMonitorJSONGetMachines(qemuMonitorPtr mon,
                               qemuMonitorMachineInfoPtr **machines)
    ATTRIBUTE_NONNULL(2);

384
int qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon,
385
                                     qemuMonitorCPUDefsPtr *cpuDefs)
386 387
    ATTRIBUTE_NONNULL(2);

388
int qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
389
                                        qemuMonitorCPUModelExpansionType type,
390
                                        virCPUDefPtr cpu,
391
                                        bool migratable,
392
                                        bool fail_no_props,
393
                                        qemuMonitorCPUModelInfoPtr *model_info)
394
    ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(6);
395

396 397 398 399 400 401
int qemuMonitorJSONGetCPUModelBaseline(qemuMonitorPtr mon,
                                       virCPUDefPtr cpu_a,
                                       virCPUDefPtr cpu_b,
                                       qemuMonitorCPUModelInfoPtr *baseline)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

402 403 404 405 406 407
int qemuMonitorJSONGetCPUModelComparison(qemuMonitorPtr mon,
                                         virCPUDefPtr cpu_a,
                                         virCPUDefPtr cpu_b,
                                         char **result)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);

408 409 410
int qemuMonitorJSONGetCommands(qemuMonitorPtr mon,
                               char ***commands)
    ATTRIBUTE_NONNULL(2);
411 412 413
int qemuMonitorJSONGetEvents(qemuMonitorPtr mon,
                             char ***events)
    ATTRIBUTE_NONNULL(2);
414 415
int qemuMonitorJSONGetCommandLineOptionParameters(qemuMonitorPtr mon,
                                                  const char *option,
416 417
                                                  char ***params,
                                                  bool *found)
418
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
419

420 421 422 423 424
int qemuMonitorJSONGetKVMState(qemuMonitorPtr mon,
                               bool *enabled,
                               bool *present)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);

425 426 427
int qemuMonitorJSONGetObjectTypes(qemuMonitorPtr mon,
                                  char ***types)
    ATTRIBUTE_NONNULL(2);
428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444

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

445 446 447
/* ObjectProperty structures and Get/Set API's are public only
 * for qemumonitorjsontest
 */
448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481
/* 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);

482 483 484 485 486 487
int qemuMonitorJSONSetObjectProperty(qemuMonitorPtr mon,
                                     const char *path,
                                     const char *property,
                                     qemuMonitorJSONObjectPropertyPtr prop)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);

488 489
int qemuMonitorJSONGetDeviceProps(qemuMonitorPtr mon,
                                  const char *device,
490 491
                                  char ***props)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
492 493 494 495
int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
                                  const char *object,
                                  char ***props)
    ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
496
char *qemuMonitorJSONGetTargetArch(qemuMonitorPtr mon);
497

498
int qemuMonitorJSONNBDServerStart(qemuMonitorPtr mon,
499
                                  const virStorageNetHostDef *server,
500
                                  const char *tls_alias);
501 502
int qemuMonitorJSONNBDServerAdd(qemuMonitorPtr mon,
                                const char *deviceID,
503 504 505
                                const char *export,
                                bool writable,
                                const char *bitmap);
506
int qemuMonitorJSONNBDServerStop(qemuMonitorPtr mon);
S
Stefan Berger 已提交
507 508 509 510 511 512 513 514
int qemuMonitorJSONGetTPMModels(qemuMonitorPtr mon,
                                char ***tpmmodels)
    ATTRIBUTE_NONNULL(2);

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

515 516 517
int qemuMonitorJSONAttachCharDev(qemuMonitorPtr mon,
                                 const char *chrID,
                                 virDomainChrSourceDefPtr chr);
518 519
int qemuMonitorJSONDetachCharDev(qemuMonitorPtr mon,
                                 const char *chrID);
520 521 522 523

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

524 525 526 527
int qemuMonitorJSONGetCPUx86Data(qemuMonitorPtr mon,
                                 const char *property,
                                 virCPUDataPtr *cpudata);

528 529 530
int qemuMonitorJSONGetGuestCPUx86(qemuMonitorPtr mon,
                                  virCPUDataPtr *data,
                                  virCPUDataPtr *disabled);
531

532 533 534 535 536 537 538
int qemuMonitorJSONGetGuestCPU(qemuMonitorPtr mon,
                               virArch arch,
                               qemuMonitorCPUFeatureTranslationCallback translate,
                               void *opaque,
                               virCPUDataPtr *enabled,
                               virCPUDataPtr *disabled);

539
int qemuMonitorJSONRTCResetReinjection(qemuMonitorPtr mon);
540 541

int qemuMonitorJSONGetIOThreads(qemuMonitorPtr mon,
542
                                qemuMonitorIOThreadInfoPtr **iothreads)
543
    ATTRIBUTE_NONNULL(2);
544

545 546 547 548
int qemuMonitorJSONSetIOThread(qemuMonitorPtr mon,
                               qemuMonitorIOThreadInfoPtr iothreadInfo)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

549 550 551 552
int qemuMonitorJSONGetMemoryDeviceInfo(qemuMonitorPtr mon,
                                       virHashTablePtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

553 554
int qemuMonitorJSONFindLinkPath(qemuMonitorPtr mon,
                                const char *name,
555
                                const char *alias,
556
                                char **path)
557
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4);
558 559 560 561 562

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

563 564
int qemuMonitorJSONMigrateStartPostCopy(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);
565 566 567 568

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

570 571 572
int qemuMonitorJSONGetRTCTime(qemuMonitorPtr mon,
                              struct tm *tm)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
573 574 575 576 577

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

579
virJSONValuePtr qemuMonitorJSONQueryQMPSchema(qemuMonitorPtr mon)
580
    ATTRIBUTE_NONNULL(1);
581 582 583 584 585 586

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

587 588 589
virJSONValuePtr qemuMonitorJSONQueryNamedBlockNodes(qemuMonitorPtr mon)
    ATTRIBUTE_NONNULL(1);

M
Michal Privoznik 已提交
590 591 592
int qemuMonitorJSONSetWatchdogAction(qemuMonitorPtr mon,
                                     const char *action)
    ATTRIBUTE_NONNULL(1);
593

594 595 596 597 598
int qemuMonitorJSONBlockdevCreate(qemuMonitorPtr mon,
                                  const char *jobname,
                                  virJSONValuePtr props)
    ATTRIBUTE_NONNULL(1);

599 600 601 602 603 604 605 606
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);

607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624
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);

625 626 627 628
int qemuMonitorJSONGetPRManagerInfo(qemuMonitorPtr mon,
                                    virHashTablePtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

629 630 631 632
int
qemuMonitorJSONGetCurrentMachineInfo(qemuMonitorPtr mon,
                                     qemuMonitorCurrentMachineInfoPtr info)
    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
633 634 635 636 637 638

int
qemuMonitorJSONTransactionBitmapAdd(virJSONValuePtr actions,
                                    const char *node,
                                    const char *name,
                                    bool persistent,
639 640
                                    bool disabled,
                                    unsigned long long granularity);
641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657
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);
658

659 660 661 662 663
int
qemuMonitorJSONTransactionBitmapMergeSourceAddBitmap(virJSONValuePtr sources,
                                                     const char *sourcenode,
                                                     const char *sourcebitmap);

664 665 666 667 668 669 670 671 672 673
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);
674 675 676 677 678 679 680 681

int
qemuMonitorJSONTransactionBackup(virJSONValuePtr actions,
                                 const char *device,
                                 const char *jobname,
                                 const char *target,
                                 const char *bitmap,
                                 qemuMonitorTransactionBackupSyncMode syncmode);