@samitouri / QOSamiQemu / commits / 139ffc1039

monitor: change HMPCommand cmd to take MonitorHMP

HMP commands are specific to the HMP monitor, so make the cmd function pointer in HMPCommand take MonitorHMP * instead of Monitor *. This strengthens type safety and makes the HMP-specific nature of these handlers explicit. Handler functions are renamed to take MonitorHMP *hmp, with a local Monitor *mon = MONITOR(hmp) added where the body needs the base type. Following patches will drop it, since most functions are HMP specific. Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com> Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <20260828-qemu-no-hmp-v5-31-9227de146347@redhat.com>

Marc-André Lureau committed Aug 28, 2026 at 16:04 UTC 139ffc1039d9f23cc2d948d45183d0932595c73a
53 files changed +561 -390
audio/audio-hmp-cmds.c
+5 -3
@@ -32,8 +32,9 @@
32
33 static QLIST_HEAD (capture_list_head, CaptureState) capture_head;
34
35 -void hmp_info_capture(Monitor *mon, const QDict *qdict)
35 +void hmp_info_capture(MonitorHMP *hmp, const QDict *qdict)
36 {
37 + Monitor *mon = MONITOR(hmp);
38 int i;
39 CaptureState *s;
40
@@ -45,7 +46,7 @@ void hmp_info_capture(Monitor *mon, const QDict *qdict)
46 }
47 }
48
48 -void hmp_stopcapture(Monitor *mon, const QDict *qdict)
49 +void hmp_stopcapture(MonitorHMP *hmp, const QDict *qdict)
50 {
51 int i;
52 int n = qdict_get_int(qdict, "n");
@@ -63,8 +64,9 @@ void hmp_stopcapture(Monitor *mon, const QDict *qdict)
64 }
65 }
66
66 -void hmp_wavcapture(Monitor *mon, const QDict *qdict)
67 +void hmp_wavcapture(MonitorHMP *hmp, const QDict *qdict)
68 {
69 + Monitor *mon = MONITOR(hmp);
70 const char *path = qdict_get_str(qdict, "path");
71 int freq = qdict_get_try_int(qdict, "freq", 44100);
72 int bits = qdict_get_try_int(qdict, "bits", 16);
backends/cryptodev-hmp-cmds.c
+2 -1
@@ -17,8 +17,9 @@
17 #include "qobject/qdict.h"
18
19
20 -void hmp_info_cryptodev(Monitor *mon, const QDict *qdict)
20 +void hmp_info_cryptodev(MonitorHMP *hmp, const QDict *qdict)
21 {
22 + Monitor *mon = MONITOR(hmp);
23 QCryptodevInfoList *il;
24 QCryptodevBackendServiceTypeList *sl;
25 QCryptodevBackendClientList *cl;
block/monitor/block-hmp-cmds.c
+52 -26
@@ -87,8 +87,9 @@ out:
87 hmp_handle_error(mon, err);
88 }
89
90 -void hmp_drive_add(Monitor *mon, const QDict *qdict)
90 +void hmp_drive_add(MonitorHMP *hmp, const QDict *qdict)
91 {
92 + Monitor *mon = MONITOR(hmp);
93 Error *err = NULL;
94 DriveInfo *dinfo;
95 QemuOpts *opts;
@@ -135,8 +136,9 @@ err:
136 hmp_handle_error(mon, err);
137 }
138
138 -void hmp_drive_del(Monitor *mon, const QDict *qdict)
139 +void hmp_drive_del(MonitorHMP *hmp, const QDict *qdict)
140 {
141 + Monitor *mon = MONITOR(hmp);
142 const char *id = qdict_get_str(qdict, "id");
143 BlockBackend *blk;
144 BlockDriverState *bs;
@@ -194,8 +196,9 @@ unlock:
196 hmp_handle_error(mon, err);
197 }
198
197 -void hmp_commit(Monitor *mon, const QDict *qdict)
199 +void hmp_commit(MonitorHMP *hmp, const QDict *qdict)
200 {
201 + Monitor *mon = MONITOR(hmp);
202 const char *device = qdict_get_str(qdict, "device");
203 BlockBackend *blk;
204 int ret;
@@ -232,8 +235,9 @@ end:
235 hmp_handle_error(mon, err);
236 }
237
235 -void hmp_drive_mirror(Monitor *mon, const QDict *qdict)
238 +void hmp_drive_mirror(MonitorHMP *hmp, const QDict *qdict)
239 {
240 + Monitor *mon = MONITOR(hmp);
241 const char *filename = qdict_get_str(qdict, "target");
242 const char *format = qdict_get_try_str(qdict, "format");
243 bool reuse = qdict_get_try_bool(qdict, "reuse", false);
@@ -258,8 +262,9 @@ end:
262 hmp_handle_error(mon, err);
263 }
264
261 -void hmp_drive_backup(Monitor *mon, const QDict *qdict)
265 +void hmp_drive_backup(MonitorHMP *hmp, const QDict *qdict)
266 {
267 + Monitor *mon = MONITOR(hmp);
268 const char *device = qdict_get_str(qdict, "device");
269 const char *filename = qdict_get_str(qdict, "target");
270 const char *format = qdict_get_try_str(qdict, "format");
@@ -288,8 +293,9 @@ end:
293 hmp_handle_error(mon, err);
294 }
295
291 -void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict)
296 +void hmp_block_job_set_speed(MonitorHMP *hmp, const QDict *qdict)
297 {
298 + Monitor *mon = MONITOR(hmp);
299 Error *error = NULL;
300 const char *device = qdict_get_str(qdict, "device");
301 int64_t value = qdict_get_int(qdict, "speed");
@@ -299,8 +305,9 @@ void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict)
305 hmp_handle_error(mon, error);
306 }
307
302 -void hmp_block_job_cancel(Monitor *mon, const QDict *qdict)
308 +void hmp_block_job_cancel(MonitorHMP *hmp, const QDict *qdict)
309 {
310 + Monitor *mon = MONITOR(hmp);
311 Error *error = NULL;
312 const char *device = qdict_get_str(qdict, "device");
313 bool force = qdict_get_try_bool(qdict, "force", false);
@@ -310,8 +317,9 @@ void hmp_block_job_cancel(Monitor *mon, const QDict *qdict)
317 hmp_handle_error(mon, error);
318 }
319
313 -void hmp_block_job_pause(Monitor *mon, const QDict *qdict)
320 +void hmp_block_job_pause(MonitorHMP *hmp, const QDict *qdict)
321 {
322 + Monitor *mon = MONITOR(hmp);
323 Error *error = NULL;
324 const char *device = qdict_get_str(qdict, "device");
325
@@ -320,8 +328,9 @@ void hmp_block_job_pause(Monitor *mon, const QDict *qdict)
328 hmp_handle_error(mon, error);
329 }
330
323 -void hmp_block_job_resume(Monitor *mon, const QDict *qdict)
331 +void hmp_block_job_resume(MonitorHMP *hmp, const QDict *qdict)
332 {
333 + Monitor *mon = MONITOR(hmp);
334 Error *error = NULL;
335 const char *device = qdict_get_str(qdict, "device");
336
@@ -330,8 +339,9 @@ void hmp_block_job_resume(Monitor *mon, const QDict *qdict)
339 hmp_handle_error(mon, error);
340 }
341
333 -void hmp_block_job_complete(Monitor *mon, const QDict *qdict)
342 +void hmp_block_job_complete(MonitorHMP *hmp, const QDict *qdict)
343 {
344 + Monitor *mon = MONITOR(hmp);
345 Error *error = NULL;
346 const char *device = qdict_get_str(qdict, "device");
347
@@ -340,8 +350,9 @@ void hmp_block_job_complete(Monitor *mon, const QDict *qdict)
350 hmp_handle_error(mon, error);
351 }
352
343 -void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict)
353 +void hmp_snapshot_blkdev(MonitorHMP *hmp, const QDict *qdict)
354 {
355 + Monitor *mon = MONITOR(hmp);
356 const char *device = qdict_get_str(qdict, "device");
357 const char *filename = qdict_get_str(qdict, "snapshot-file");
358 const char *format = qdict_get_try_str(qdict, "format");
@@ -355,8 +366,9 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict)
366 hmp_handle_error(mon, err);
367 }
368
358 -void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict)
369 +void hmp_snapshot_blkdev_internal(MonitorHMP *hmp, const QDict *qdict)
370 {
371 + Monitor *mon = MONITOR(hmp);
372 const char *device = qdict_get_str(qdict, "device");
373 const char *name = qdict_get_str(qdict, "name");
374 Error *err = NULL;
@@ -365,8 +377,9 @@ void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict)
377 hmp_handle_error(mon, err);
378 }
379
368 -void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict)
380 +void hmp_snapshot_delete_blkdev_internal(MonitorHMP *hmp, const QDict *qdict)
381 {
382 + Monitor *mon = MONITOR(hmp);
383 const char *device = qdict_get_str(qdict, "device");
384 const char *name = qdict_get_str(qdict, "name");
385 const char *id = qdict_get_try_str(qdict, "id");
@@ -376,8 +389,9 @@ void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict)
389 hmp_handle_error(mon, err);
390 }
391
379 -void hmp_nbd_server_start(Monitor *mon, const QDict *qdict)
392 +void hmp_nbd_server_start(MonitorHMP *hmp, const QDict *qdict)
393 {
394 + Monitor *mon = MONITOR(hmp);
395 const char *uri = qdict_get_str(qdict, "uri");
396 bool writable = qdict_get_try_bool(qdict, "writable", false);
397 bool all = qdict_get_try_bool(qdict, "all", false);
@@ -438,8 +452,9 @@ exit:
452 hmp_handle_error(mon, local_err);
453 }
454
441 -void hmp_nbd_server_add(Monitor *mon, const QDict *qdict)
455 +void hmp_nbd_server_add(MonitorHMP *hmp, const QDict *qdict)
456 {
457 + Monitor *mon = MONITOR(hmp);
458 const char *device = qdict_get_str(qdict, "device");
459 const char *name = qdict_get_try_str(qdict, "name");
460 bool writable = qdict_get_try_bool(qdict, "writable", false);
@@ -456,8 +471,9 @@ void hmp_nbd_server_add(Monitor *mon, const QDict *qdict)
471 hmp_handle_error(mon, local_err);
472 }
473
459 -void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict)
474 +void hmp_nbd_server_remove(MonitorHMP *hmp, const QDict *qdict)
475 {
476 + Monitor *mon = MONITOR(hmp);
477 const char *name = qdict_get_str(qdict, "name");
478 bool force = qdict_get_try_bool(qdict, "force", false);
479 Error *err = NULL;
@@ -467,16 +483,18 @@ void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict)
483 hmp_handle_error(mon, err);
484 }
485
470 -void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict)
486 +void hmp_nbd_server_stop(MonitorHMP *hmp, const QDict *qdict)
487 {
488 + Monitor *mon = MONITOR(hmp);
489 Error *err = NULL;
490
491 qmp_nbd_server_stop(&err);
492 hmp_handle_error(mon, err);
493 }
494
478 -void coroutine_fn hmp_block_resize(Monitor *mon, const QDict *qdict)
495 +void coroutine_fn hmp_block_resize(MonitorHMP *hmp, const QDict *qdict)
496 {
497 + Monitor *mon = MONITOR(hmp);
498 const char *device = qdict_get_str(qdict, "device");
499 int64_t size = qdict_get_int(qdict, "size");
500 Error *err = NULL;
@@ -485,8 +503,9 @@ void coroutine_fn hmp_block_resize(Monitor *mon, const QDict *qdict)
503 hmp_handle_error(mon, err);
504 }
505
488 -void hmp_block_stream(Monitor *mon, const QDict *qdict)
506 +void hmp_block_stream(MonitorHMP *hmp, const QDict *qdict)
507 {
508 + Monitor *mon = MONITOR(hmp);
509 Error *error = NULL;
510 const char *device = qdict_get_str(qdict, "device");
511 const char *base = qdict_get_try_str(qdict, "base");
@@ -500,8 +519,9 @@ void hmp_block_stream(Monitor *mon, const QDict *qdict)
519 hmp_handle_error(mon, error);
520 }
521
503 -void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict)
522 +void hmp_block_set_io_throttle(MonitorHMP *hmp, const QDict *qdict)
523 {
524 + Monitor *mon = MONITOR(hmp);
525 Error *err = NULL;
526 char *device = (char *) qdict_get_str(qdict, "device");
527 BlockIOThrottle throttle = {
@@ -528,8 +548,9 @@ void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict)
548 hmp_handle_error(mon, err);
549 }
550
531 -void hmp_eject(Monitor *mon, const QDict *qdict)
551 +void hmp_eject(MonitorHMP *hmp, const QDict *qdict)
552 {
553 + Monitor *mon = MONITOR(hmp);
554 bool force = qdict_get_try_bool(qdict, "force", false);
555 const char *device = qdict_get_str(qdict, "device");
556 Error *err = NULL;
@@ -538,8 +559,9 @@ void hmp_eject(Monitor *mon, const QDict *qdict)
559 hmp_handle_error(mon, err);
560 }
561
541 -void hmp_qemu_io(Monitor *mon, const QDict *qdict)
562 +void hmp_qemu_io(MonitorHMP *hmp, const QDict *qdict)
563 {
564 + Monitor *mon = MONITOR(hmp);
565 bool qdev = qdict_get_try_bool(qdict, "qdev", false);
566 const char *device = qdict_get_str(qdict, "device");
567 const char *command = qdict_get_str(qdict, "command");
@@ -666,8 +688,9 @@ static void print_block_info(Monitor *mon, BlockInfo *info,
688 }
689 }
690
669 -void hmp_info_block(Monitor *mon, const QDict *qdict)
691 +void hmp_info_block(MonitorHMP *hmp, const QDict *qdict)
692 {
693 + Monitor *mon = MONITOR(hmp);
694 BlockInfoList *block_list, *info;
695 BlockDeviceInfoList *blockdev_list, *blockdev;
696 const char *device = qdict_get_try_str(qdict, "device");
@@ -719,8 +742,9 @@ void hmp_info_block(Monitor *mon, const QDict *qdict)
742 qapi_free_BlockDeviceInfoList(blockdev_list);
743 }
744
722 -void hmp_info_blockstats(Monitor *mon, const QDict *qdict)
745 +void hmp_info_blockstats(MonitorHMP *hmp, const QDict *qdict)
746 {
747 + Monitor *mon = MONITOR(hmp);
748 BlockStatsList *stats_list, *stats;
749
750 stats_list = qmp_query_blockstats(false, false, NULL);
@@ -757,8 +781,9 @@ void hmp_info_blockstats(Monitor *mon, const QDict *qdict)
781 qapi_free_BlockStatsList(stats_list);
782 }
783
760 -void hmp_info_block_jobs(Monitor *mon, const QDict *qdict)
784 +void hmp_info_block_jobs(MonitorHMP *hmp, const QDict *qdict)
785 {
786 + Monitor *mon = MONITOR(hmp);
787 BlockJobInfoList *list;
788
789 list = qmp_query_block_jobs(&error_abort);
@@ -793,8 +818,9 @@ void hmp_info_block_jobs(Monitor *mon, const QDict *qdict)
818 qapi_free_BlockJobInfoList(list);
819 }
820
796 -void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
821 +void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict)
822 {
823 + Monitor *mon = MONITOR(hmp);
824 BlockDriverState *bs, *bs1;
825 BdrvNextIterator it1;
826 QEMUSnapshotInfo *sn_tab, *sn;
chardev/char-hmp-cmds.c
+14 -7
@@ -24,8 +24,9 @@
24 #include "qemu/config-file.h"
25 #include "qemu/option.h"
26
27 -void hmp_info_chardev(Monitor *mon, const QDict *qdict)
27 +void hmp_info_chardev(MonitorHMP *hmp, const QDict *qdict)
28 {
29 + Monitor *mon = MONITOR(hmp);
30 ChardevInfoList *char_info, *info;
31
32 char_info = qmp_query_chardev(NULL);
@@ -37,8 +38,9 @@ void hmp_info_chardev(Monitor *mon, const QDict *qdict)
38 qapi_free_ChardevInfoList(char_info);
39 }
40
40 -void hmp_ringbuf_write(Monitor *mon, const QDict *qdict)
41 +void hmp_ringbuf_write(MonitorHMP *hmp, const QDict *qdict)
42 {
43 + Monitor *mon = MONITOR(hmp);
44 const char *chardev = qdict_get_str(qdict, "device");
45 const char *data = qdict_get_str(qdict, "data");
46 Error *err = NULL;
@@ -48,8 +50,9 @@ void hmp_ringbuf_write(Monitor *mon, const QDict *qdict)
50 hmp_handle_error(mon, err);
51 }
52
51 -void hmp_ringbuf_read(Monitor *mon, const QDict *qdict)
53 +void hmp_ringbuf_read(MonitorHMP *hmp, const QDict *qdict)
54 {
55 + Monitor *mon = MONITOR(hmp);
56 uint32_t size = qdict_get_int(qdict, "size");
57 const char *chardev = qdict_get_str(qdict, "device");
58 char *data;
@@ -77,8 +80,9 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict)
80 g_free(data);
81 }
82
80 -void hmp_chardev_add(Monitor *mon, const QDict *qdict)
83 +void hmp_chardev_add(MonitorHMP *hmp, const QDict *qdict)
84 {
85 + Monitor *mon = MONITOR(hmp);
86 const char *args = qdict_get_str(qdict, "args");
87 Error *err = NULL;
88 QemuOpts *opts;
@@ -93,8 +97,9 @@ void hmp_chardev_add(Monitor *mon, const QDict *qdict)
97 hmp_handle_error(mon, err);
98 }
99
96 -void hmp_chardev_change(Monitor *mon, const QDict *qdict)
100 +void hmp_chardev_change(MonitorHMP *hmp, const QDict *qdict)
101 {
102 + Monitor *mon = MONITOR(hmp);
103 const char *args = qdict_get_str(qdict, "args");
104 const char *id;
105 Error *err = NULL;
@@ -127,16 +132,18 @@ end:
132 hmp_handle_error(mon, err);
133 }
134
130 -void hmp_chardev_remove(Monitor *mon, const QDict *qdict)
135 +void hmp_chardev_remove(MonitorHMP *hmp, const QDict *qdict)
136 {
137 + Monitor *mon = MONITOR(hmp);
138 Error *local_err = NULL;
139
140 qmp_chardev_remove(qdict_get_str(qdict, "id"), &local_err);
141 hmp_handle_error(mon, local_err);
142 }
143
138 -void hmp_chardev_send_break(Monitor *mon, const QDict *qdict)
144 +void hmp_chardev_send_break(MonitorHMP *hmp, const QDict *qdict)
145 {
146 + Monitor *mon = MONITOR(hmp);
147 Error *local_err = NULL;
148
149 qmp_chardev_send_break(qdict_get_str(qdict, "id"), &local_err);
dump/dump-hmp-cmds.c
+4 -2
@@ -12,8 +12,9 @@
12 #include "qapi/qapi-commands-dump.h"
13 #include "qobject/qdict.h"
14
15 -void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict)
15 +void hmp_dump_guest_memory(MonitorHMP *hmp, const QDict *qdict)
16 {
17 + Monitor *mon = MONITOR(hmp);
18 Error *err = NULL;
19 bool win_dmp = qdict_get_try_bool(qdict, "windmp", false);
20 bool paging = qdict_get_try_bool(qdict, "paging", false);
@@ -83,8 +84,9 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict)
84 g_free(prot);
85 }
86
86 -void hmp_info_dump(Monitor *mon, const QDict *qdict)
87 +void hmp_info_dump(MonitorHMP *hmp, const QDict *qdict)
88 {
89 + Monitor *mon = MONITOR(hmp);
90 DumpQueryResult *result = qmp_query_dump(NULL);
91
92 assert(result && result->status < DUMP_STATUS__MAX);
hw/core/machine-hmp-cmds.c
+32 -17
@@ -25,8 +25,9 @@
25 #include "system/numa.h"
26 #include "hw/core/boards.h"
27
28 -void hmp_info_cpus(Monitor *mon, const QDict *qdict)
28 +void hmp_info_cpus(MonitorHMP *hmp, const QDict *qdict)
29 {
30 + Monitor *mon = MONITOR(hmp);
31 CpuInfoFastList *cpu_list, *cpu;
32
33 cpu_list = qmp_query_cpus_fast(NULL);
@@ -48,8 +49,9 @@ void hmp_info_cpus(Monitor *mon, const QDict *qdict)
49 qapi_free_CpuInfoFastList(cpu_list);
50 }
51
51 -void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
52 +void hmp_hotpluggable_cpus(MonitorHMP *hmp, const QDict *qdict)
53 {
54 + Monitor *mon = MONITOR(hmp);
55 Error *err = NULL;
56 HotpluggableCPUList *l = qmp_query_hotpluggable_cpus(&err);
57 HotpluggableCPUList *saved = l;
@@ -106,8 +108,9 @@ void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
108 qapi_free_HotpluggableCPUList(saved);
109 }
110
109 -void hmp_info_memdev(Monitor *mon, const QDict *qdict)
111 +void hmp_info_memdev(MonitorHMP *hmp, const QDict *qdict)
112 {
113 + Monitor *mon = MONITOR(hmp);
114 Error *err = NULL;
115 MemdevList *memdev_list = qmp_query_memdev(&err);
116 MemdevList *m = memdev_list;
@@ -147,8 +150,9 @@ void hmp_info_memdev(Monitor *mon, const QDict *qdict)
150 hmp_handle_error(mon, err);
151 }
152
150 -void hmp_info_kvm(Monitor *mon, const QDict *qdict)
153 +void hmp_info_kvm(MonitorHMP *hmp, const QDict *qdict)
154 {
155 + Monitor *mon = MONITOR(hmp);
156 KvmInfo *info;
157
158 info = qmp_query_kvm(NULL);
@@ -162,8 +166,9 @@ void hmp_info_kvm(Monitor *mon, const QDict *qdict)
166 qapi_free_KvmInfo(info);
167 }
168
165 -void hmp_info_accelerators(Monitor *mon, const QDict *qdict)
169 +void hmp_info_accelerators(MonitorHMP *hmp, const QDict *qdict)
170 {
171 + Monitor *mon = MONITOR(hmp);
172 AcceleratorInfo *info;
173 AcceleratorList *accel;
174
@@ -180,8 +185,9 @@ void hmp_info_accelerators(Monitor *mon, const QDict *qdict)
185 qapi_free_AcceleratorInfo(info);
186 }
187
183 -void hmp_info_uuid(Monitor *mon, const QDict *qdict)
188 +void hmp_info_uuid(MonitorHMP *hmp, const QDict *qdict)
189 {
190 + Monitor *mon = MONITOR(hmp);
191 UuidInfo *info;
192
193 info = qmp_query_uuid(NULL);
@@ -189,8 +195,9 @@ void hmp_info_uuid(Monitor *mon, const QDict *qdict)
195 qapi_free_UuidInfo(info);
196 }
197
192 -void hmp_info_balloon(Monitor *mon, const QDict *qdict)
198 +void hmp_info_balloon(MonitorHMP *hmp, const QDict *qdict)
199 {
200 + Monitor *mon = MONITOR(hmp);
201 BalloonInfo *info;
202 Error *err = NULL;
203
@@ -204,18 +211,19 @@ void hmp_info_balloon(Monitor *mon, const QDict *qdict)
211 qapi_free_BalloonInfo(info);
212 }
213
207 -void hmp_system_reset(Monitor *mon, const QDict *qdict)
214 +void hmp_system_reset(MonitorHMP *hmp, const QDict *qdict)
215 {
216 qmp_system_reset(NULL);
217 }
218
212 -void hmp_system_powerdown(Monitor *mon, const QDict *qdict)
219 +void hmp_system_powerdown(MonitorHMP *hmp, const QDict *qdict)
220 {
221 qmp_system_powerdown(NULL);
222 }
223
217 -void hmp_memsave(Monitor *mon, const QDict *qdict)
224 +void hmp_memsave(MonitorHMP *hmp, const QDict *qdict)
225 {
226 + Monitor *mon = MONITOR(hmp);
227 uint32_t size = qdict_get_int(qdict, "size");
228 const char *filename = qdict_get_str(qdict, "filename");
229 uint64_t addr = qdict_get_int(qdict, "val");
@@ -231,8 +239,9 @@ void hmp_memsave(Monitor *mon, const QDict *qdict)
239 hmp_handle_error(mon, err);
240 }
241
234 -void hmp_pmemsave(Monitor *mon, const QDict *qdict)
242 +void hmp_pmemsave(MonitorHMP *hmp, const QDict *qdict)
243 {
244 + Monitor *mon = MONITOR(hmp);
245 uint32_t size = qdict_get_int(qdict, "size");
246 const char *filename = qdict_get_str(qdict, "filename");
247 uint64_t addr = qdict_get_int(qdict, "val");
@@ -242,24 +251,27 @@ void hmp_pmemsave(Monitor *mon, const QDict *qdict)
251 hmp_handle_error(mon, err);
252 }
253
245 -void hmp_system_wakeup(Monitor *mon, const QDict *qdict)
254 +void hmp_system_wakeup(MonitorHMP *hmp, const QDict *qdict)
255 {
256 + Monitor *mon = MONITOR(hmp);
257 Error *err = NULL;
258
259 qmp_system_wakeup(&err);
260 hmp_handle_error(mon, err);
261 }
262
253 -void hmp_nmi(Monitor *mon, const QDict *qdict)
263 +void hmp_nmi(MonitorHMP *hmp, const QDict *qdict)
264 {
265 + Monitor *mon = MONITOR(hmp);
266 Error *err = NULL;
267
268 qmp_inject_nmi(&err);
269 hmp_handle_error(mon, err);
270 }
271
261 -void hmp_balloon(Monitor *mon, const QDict *qdict)
272 +void hmp_balloon(MonitorHMP *hmp, const QDict *qdict)
273 {
274 + Monitor *mon = MONITOR(hmp);
275 int64_t value = qdict_get_int(qdict, "value");
276 Error *err = NULL;
277
@@ -267,8 +279,9 @@ void hmp_balloon(Monitor *mon, const QDict *qdict)
279 hmp_handle_error(mon, err);
280 }
281
270 -void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
282 +void hmp_info_memory_devices(MonitorHMP *hmp, const QDict *qdict)
283 {
284 + Monitor *mon = MONITOR(hmp);
285 Error *err = NULL;
286 MemoryDeviceInfoList *info_list = qmp_query_memory_devices(&err);
287 MemoryDeviceInfoList *info;
@@ -370,8 +383,9 @@ void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
383 hmp_handle_error(mon, err);
384 }
385
373 -void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict)
386 +void hmp_info_vm_generation_id(MonitorHMP *hmp, const QDict *qdict)
387 {
388 + Monitor *mon = MONITOR(hmp);
389 Error *err = NULL;
390 GuidInfo *info = qmp_query_vm_generation_id(&err);
391 if (info) {
@@ -381,8 +395,9 @@ void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict)
395 qapi_free_GuidInfo(info);
396 }
397
384 -void hmp_info_memory_size_summary(Monitor *mon, const QDict *qdict)
398 +void hmp_info_memory_size_summary(MonitorHMP *hmp, const QDict *qdict)
399 {
400 + Monitor *mon = MONITOR(hmp);
401 Error *err = NULL;
402 MemoryInfo *info = qmp_query_memory_size_summary(&err);
403 if (info) {
hw/i386/kvm/xen-stubs.c
+4 -2
@@ -40,12 +40,14 @@ void xen_primary_console_set_be_port(uint16_t port)
40 {
41 }
42
43 -void hmp_xen_event_list(Monitor *mon, const QDict *qdict)
43 +void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict)
44 {
45 + Monitor *mon = MONITOR(hmp);
46 monitor_printf(mon, "XEN emulation is not available in this QEMU\n");
47 }
48
48 -void hmp_xen_event_inject(Monitor *mon, const QDict *qdict)
49 +void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict)
50 {
51 + Monitor *mon = MONITOR(hmp);
52 monitor_printf(mon, "XEN emulation is not available in this QEMU\n");
53 }
hw/i386/kvm/xen_evtchn.c
+4 -2
@@ -2344,8 +2344,9 @@ void qmp_xen_event_inject(uint32_t port, Error **errp)
2344 }
2345 }
2346
2347 -void hmp_xen_event_list(Monitor *mon, const QDict *qdict)
2347 +void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict)
2348 {
2349 + Monitor *mon = MONITOR(hmp);
2350 EvtchnInfoList *iter, *info_list;
2351 Error *err = NULL;
2352
@@ -2379,8 +2380,9 @@ void hmp_xen_event_list(Monitor *mon, const QDict *qdict)
2380 qapi_free_EvtchnInfoList(info_list);
2381 }
2382
2382 -void hmp_xen_event_inject(Monitor *mon, const QDict *qdict)
2383 +void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict)
2384 {
2385 + Monitor *mon = MONITOR(hmp);
2386 int port = qdict_get_int(qdict, "port");
2387 Error *err = NULL;
2388
hw/i386/sgx-hmp-stub.c
+2 -1
@@ -10,7 +10,8 @@
10 #include "monitor/hmp.h"
11 #include "monitor/monitor.h"
12
13 -void hmp_info_sgx(Monitor *mon, const QDict *qdict)
13 +void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict)
14 {
15 + Monitor *mon = MONITOR(hmp);
16 monitor_printf(mon, "SGX is not available in this QEMU\n");
17 }
hw/i386/sgx.c
+2 -1
@@ -234,8 +234,9 @@ SgxInfo *qmp_query_sgx(Error **errp)
234 return info;
235 }
236
237 -void hmp_info_sgx(Monitor *mon, const QDict *qdict)
237 +void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict)
238 {
239 + Monitor *mon = MONITOR(hmp);
240 Error *err = NULL;
241 SgxEpcSectionList *section_list, *section;
242 g_autoptr(SgxInfo) info = qmp_query_sgx(&err);
hw/misc/mos6522-stub.c
+2 -1
@@ -10,7 +10,8 @@
10 #include "monitor/monitor.h"
11 #include "monitor/hmp.h"
12
13 -void hmp_info_via(Monitor *mon, const QDict *qdict)
13 +void hmp_info_via(MonitorHMP *hmp, const QDict *qdict)
14 {
15 + Monitor *mon = MONITOR(hmp);
16 monitor_printf(mon, "MOS6522 VIA is not available in this QEMU\n");
17 }
hw/misc/mos6522.c
+2 -1
@@ -586,8 +586,9 @@ static HumanReadableText *qmp_x_query_via(Error **errp)
586 return human_readable_text_from_str(buf);
587 }
588
589 -void hmp_info_via(Monitor *mon, const QDict *qdict)
589 +void hmp_info_via(MonitorHMP *hmp, const QDict *qdict)
590 {
591 + Monitor *mon = MONITOR(hmp);
592 Error *err = NULL;
593 g_autoptr(HumanReadableText) info = qmp_x_query_via(&err);
594
hw/net/rocker/rocker-hmp-cmds.c
+8 -4
@@ -20,8 +20,9 @@
20 #include "qapi/qapi-commands-rocker.h"
21 #include "qobject/qdict.h"
22
23 -void hmp_rocker(Monitor *mon, const QDict *qdict)
23 +void hmp_rocker(MonitorHMP *hmp, const QDict *qdict)
24 {
25 + Monitor *mon = MONITOR(hmp);
26 const char *name = qdict_get_str(qdict, "name");
27 RockerSwitch *rocker;
28 Error *err = NULL;
@@ -38,8 +39,9 @@ void hmp_rocker(Monitor *mon, const QDict *qdict)
39 qapi_free_RockerSwitch(rocker);
40 }
41
41 -void hmp_rocker_ports(Monitor *mon, const QDict *qdict)
42 +void hmp_rocker_ports(MonitorHMP *hmp, const QDict *qdict)
43 {
44 + Monitor *mon = MONITOR(hmp);
45 RockerPortList *list, *port;
46 const char *name = qdict_get_str(qdict, "name");
47 Error *err = NULL;
@@ -65,8 +67,9 @@ void hmp_rocker_ports(Monitor *mon, const QDict *qdict)
67 qapi_free_RockerPortList(list);
68 }
69
68 -void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict)
70 +void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict)
71 {
72 + Monitor *mon = MONITOR(hmp);
73 RockerOfDpaFlowList *list, *info;
74 const char *name = qdict_get_str(qdict, "name");
75 uint32_t tbl_id = qdict_get_try_int(qdict, "tbl_id", -1);
@@ -214,8 +217,9 @@ void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict)
217 qapi_free_RockerOfDpaFlowList(list);
218 }
219
217 -void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict)
220 +void hmp_rocker_of_dpa_groups(MonitorHMP *hmp, const QDict *qdict)
221 {
222 + Monitor *mon = MONITOR(hmp);
223 RockerOfDpaGroupList *list, *g;
224 const char *name = qdict_get_str(qdict, "name");
225 uint8_t type = qdict_get_try_int(qdict, "type", 9);
hw/pci/pci-hmp-cmds.c
+4 -2
@@ -117,8 +117,9 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev)
117 }
118 }
119
120 -void hmp_info_pci(Monitor *mon, const QDict *qdict)
120 +void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict)
121 {
122 + Monitor *mon = MONITOR(hmp);
123 PciInfoList *info_list, *info;
124
125 info_list = qmp_query_pci(&error_abort);
@@ -170,8 +171,9 @@ void pcibus_dev_print(Monitor *mon, DeviceState *dev, int indent)
171 }
172 }
173
173 -void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict)
174 +void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict)
175 {
176 + Monitor *mon = MONITOR(hmp);
177 Error *err = NULL;
178 const char *id = qdict_get_str(qdict, "id");
179 const char *error_name;
hw/pci/pci-stub.c
+3 -2
@@ -34,12 +34,13 @@ PciInfoList *qmp_query_pci(Error **errp)
34 return NULL;
35 }
36
37 -void hmp_info_pci(Monitor *mon, const QDict *qdict)
37 +void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict)
38 {
39 }
40
41 -void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict)
41 +void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict)
42 {
43 + Monitor *mon = MONITOR(hmp);
44 monitor_printf(mon, "PCI devices not supported\n");
45 }
46
hw/s390x/s390-skeys.c
+3 -2
@@ -104,8 +104,9 @@ static void write_keys(FILE *f, uint8_t *keys, uint64_t startgfn,
104 }
105 }
106
107 -void hmp_info_skeys(Monitor *mon, const QDict *qdict)
107 +void hmp_info_skeys(MonitorHMP *hmp, const QDict *qdict)
108 {
109 + Monitor *mon = MONITOR(hmp);
110 S390SKeysState *ss = s390_get_skeys_device();
111 S390SKeysClass *skeyclass = S390_SKEYS_GET_CLASS(ss);
112 uint64_t addr = qdict_get_int(qdict, "addr");
@@ -134,7 +135,7 @@ void hmp_info_skeys(Monitor *mon, const QDict *qdict)
135 monitor_printf(mon, " key: 0x%X\n", key);
136 }
137
137 -void hmp_dump_skeys(Monitor *mon, const QDict *qdict)
138 +void hmp_dump_skeys(MonitorHMP *hmp, const QDict *qdict)
139 {
140 const char *filename = qdict_get_str(qdict, "filename");
141 Error *err = NULL;
hw/s390x/s390-stattrib.c
+4 -2
@@ -59,8 +59,9 @@ void s390_stattrib_init(void)
59
60 /* Console commands: */
61
62 -void hmp_migrationmode(Monitor *mon, const QDict *qdict)
62 +void hmp_migrationmode(MonitorHMP *hmp, const QDict *qdict)
63 {
64 + Monitor *mon = MONITOR(hmp);
65 S390StAttribState *sas = s390_get_stattrib_device();
66 S390StAttribClass *sac = S390_STATTRIB_GET_CLASS(sas);
67 uint64_t what = qdict_get_int(qdict, "mode");
@@ -74,8 +75,9 @@ void hmp_migrationmode(Monitor *mon, const QDict *qdict)
75 }
76 }
77
77 -void hmp_info_cmma(Monitor *mon, const QDict *qdict)
78 +void hmp_info_cmma(MonitorHMP *hmp, const QDict *qdict)
79 {
80 + Monitor *mon = MONITOR(hmp);
81 S390StAttribState *sas = s390_get_stattrib_device();
82 S390StAttribClass *sac = S390_STATTRIB_GET_CLASS(sas);
83 uint64_t addr = qdict_get_int(qdict, "addr");
hw/uefi/ovmf-log.c
+2 -1
@@ -256,8 +256,9 @@ FirmwareLog *qmp_query_firmware_log(bool have_max_size, uint64_t max_size,
256 return ret;
257 }
258
259 -void hmp_info_firmware_log(Monitor *mon, const QDict *qdict)
259 +void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict)
260 {
261 + Monitor *mon = MONITOR(hmp);
262 g_autofree gchar *log_esc = NULL;
263 g_autofree guchar *log_out = NULL;
264 Error *err = NULL;
hw/usb/host-libusb.c
+2 -1
@@ -1920,8 +1920,9 @@ static void usb_host_auto_check(void *unused)
1920 timer_mod(usb_auto_timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME) + 2000);
1921 }
1922
1923 -void hmp_info_usbhost(Monitor *mon, const QDict *qdict)
1923 +void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict)
1924 {
1925 + Monitor *mon = MONITOR(hmp);
1926 libusb_device **devs = NULL;
1927 struct libusb_device_descriptor ddesc;
1928 char port[16];
hw/virtio/virtio-hmp-cmds.c
+10 -5
@@ -80,8 +80,9 @@ static void hmp_virtio_dump_features(Monitor *mon,
80 }
81 }
82
83 -void hmp_virtio_query(Monitor *mon, const QDict *qdict)
83 +void hmp_virtio_query(MonitorHMP *hmp, const QDict *qdict)
84 {
85 + Monitor *mon = MONITOR(hmp);
86 Error *err = NULL;
87 VirtioInfoList *list = qmp_x_query_virtio(&err);
88 VirtioInfoList *node;
@@ -105,8 +106,9 @@ void hmp_virtio_query(Monitor *mon, const QDict *qdict)
106 qapi_free_VirtioInfoList(list);
107 }
108
108 -void hmp_virtio_status(Monitor *mon, const QDict *qdict)
109 +void hmp_virtio_status(MonitorHMP *hmp, const QDict *qdict)
110 {
111 + Monitor *mon = MONITOR(hmp);
112 Error *err = NULL;
113 const char *path = qdict_get_try_str(qdict, "path");
114 VirtioStatus *s = qmp_x_query_virtio_status(path, &err);
@@ -183,8 +185,9 @@ void hmp_virtio_status(Monitor *mon, const QDict *qdict)
185 qapi_free_VirtioStatus(s);
186 }
187
186 -void hmp_vhost_queue_status(Monitor *mon, const QDict *qdict)
188 +void hmp_vhost_queue_status(MonitorHMP *hmp, const QDict *qdict)
189 {
190 + Monitor *mon = MONITOR(hmp);
191 Error *err = NULL;
192 const char *path = qdict_get_try_str(qdict, "path");
193 int queue = qdict_get_int(qdict, "queue");
@@ -216,8 +219,9 @@ void hmp_vhost_queue_status(Monitor *mon, const QDict *qdict)
219 qapi_free_VirtVhostQueueStatus(s);
220 }
221
219 -void hmp_virtio_queue_status(Monitor *mon, const QDict *qdict)
222 +void hmp_virtio_queue_status(MonitorHMP *hmp, const QDict *qdict)
223 {
224 + Monitor *mon = MONITOR(hmp);
225 Error *err = NULL;
226 const char *path = qdict_get_try_str(qdict, "path");
227 int queue = qdict_get_int(qdict, "queue");
@@ -261,8 +265,9 @@ void hmp_virtio_queue_status(Monitor *mon, const QDict *qdict)
265 qapi_free_VirtQueueStatus(s);
266 }
267
264 -void hmp_virtio_queue_element(Monitor *mon, const QDict *qdict)
268 +void hmp_virtio_queue_element(MonitorHMP *hmp, const QDict *qdict)
269 {
270 + Monitor *mon = MONITOR(hmp);
271 Error *err = NULL;
272 const char *path = qdict_get_try_str(qdict, "path");
273 int queue = qdict_get_int(qdict, "queue");
include/block/block-hmp-cmds.h
+28 -27
@@ -16,41 +16,42 @@
16 #define BLOCK_BLOCK_HMP_CMDS_H
17
18 #include "qemu/coroutine.h"
19 +#include "monitor/hmp.h"
20
20 -void hmp_drive_add(Monitor *mon, const QDict *qdict);
21 +void hmp_drive_add(MonitorHMP *hmp, const QDict *qdict);
22
22 -void hmp_commit(Monitor *mon, const QDict *qdict);
23 -void hmp_drive_del(Monitor *mon, const QDict *qdict);
23 +void hmp_commit(MonitorHMP *hmp, const QDict *qdict);
24 +void hmp_drive_del(MonitorHMP *hmp, const QDict *qdict);
25
25 -void hmp_drive_mirror(Monitor *mon, const QDict *qdict);
26 -void hmp_drive_backup(Monitor *mon, const QDict *qdict);
26 +void hmp_drive_mirror(MonitorHMP *hmp, const QDict *qdict);
27 +void hmp_drive_backup(MonitorHMP *hmp, const QDict *qdict);
28
28 -void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict);
29 -void hmp_block_job_cancel(Monitor *mon, const QDict *qdict);
30 -void hmp_block_job_pause(Monitor *mon, const QDict *qdict);
31 -void hmp_block_job_resume(Monitor *mon, const QDict *qdict);
32 -void hmp_block_job_complete(Monitor *mon, const QDict *qdict);
29 +void hmp_block_job_set_speed(MonitorHMP *hmp, const QDict *qdict);
30 +void hmp_block_job_cancel(MonitorHMP *hmp, const QDict *qdict);
31 +void hmp_block_job_pause(MonitorHMP *hmp, const QDict *qdict);
32 +void hmp_block_job_resume(MonitorHMP *hmp, const QDict *qdict);
33 +void hmp_block_job_complete(MonitorHMP *hmp, const QDict *qdict);
34
34 -void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict);
35 -void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict);
36 -void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict);
35 +void hmp_snapshot_blkdev(MonitorHMP *hmp, const QDict *qdict);
36 +void hmp_snapshot_blkdev_internal(MonitorHMP *hmp, const QDict *qdict);
37 +void hmp_snapshot_delete_blkdev_internal(MonitorHMP *hmp, const QDict *qdict);
38
38 -void hmp_nbd_server_start(Monitor *mon, const QDict *qdict);
39 -void hmp_nbd_server_add(Monitor *mon, const QDict *qdict);
40 -void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict);
41 -void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict);
39 +void hmp_nbd_server_start(MonitorHMP *hmp, const QDict *qdict);
40 +void hmp_nbd_server_add(MonitorHMP *hmp, const QDict *qdict);
41 +void hmp_nbd_server_remove(MonitorHMP *hmp, const QDict *qdict);
42 +void hmp_nbd_server_stop(MonitorHMP *hmp, const QDict *qdict);
43
43 -void coroutine_fn hmp_block_resize(Monitor *mon, const QDict *qdict);
44 -void hmp_block_stream(Monitor *mon, const QDict *qdict);
45 -void hmp_block_passwd(Monitor *mon, const QDict *qdict);
46 -void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict);
47 -void hmp_eject(Monitor *mon, const QDict *qdict);
44 +void coroutine_fn hmp_block_resize(MonitorHMP *hmp, const QDict *qdict);
45 +void hmp_block_stream(MonitorHMP *hmp, const QDict *qdict);
46 +void hmp_block_passwd(MonitorHMP *hmp, const QDict *qdict);
47 +void hmp_block_set_io_throttle(MonitorHMP *hmp, const QDict *qdict);
48 +void hmp_eject(MonitorHMP *hmp, const QDict *qdict);
49
49 -void hmp_qemu_io(Monitor *mon, const QDict *qdict);
50 +void hmp_qemu_io(MonitorHMP *hmp, const QDict *qdict);
51
51 -void hmp_info_block(Monitor *mon, const QDict *qdict);
52 -void hmp_info_blockstats(Monitor *mon, const QDict *qdict);
53 -void hmp_info_block_jobs(Monitor *mon, const QDict *qdict);
54 -void hmp_info_snapshots(Monitor *mon, const QDict *qdict);
52 +void hmp_info_block(MonitorHMP *hmp, const QDict *qdict);
53 +void hmp_info_blockstats(MonitorHMP *hmp, const QDict *qdict);
54 +void hmp_info_block_jobs(MonitorHMP *hmp, const QDict *qdict);
55 +void hmp_info_snapshots(MonitorHMP *hmp, const QDict *qdict);
56
57 #endif
include/hw/usb/usb.h
+2 -1
@@ -31,6 +31,7 @@
31 #include "qemu/queue.h"
32 #include "qom/object.h"
33 #include "qapi/error.h"
34 +#include "monitor/hmp.h"
35
36 /* Constants related to the USB / PCI interaction */
37 #define USB_SBRN 0x60 /* Serial Bus Release Number Register */
@@ -466,7 +467,7 @@ void usb_wakeup(USBEndpoint *ep, unsigned int stream);
467 void usb_generic_async_ctrl_complete(USBDevice *s, USBPacket *p);
468
469 /* usb-linux.c */
469 -void hmp_info_usbhost(Monitor *mon, const QDict *qdict);
470 +void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict);
471
472 /* usb ports of the VM */
473
include/monitor/hmp.h
+147 -147
@@ -22,7 +22,7 @@
22 OBJECT_DECLARE_TYPE(MonitorHMP, MonitorHMPClass, MONITOR_HMP);
23
24 #define HMP_STUB(cmd) \
25 - void hmp_##cmd(Monitor *mon, const QDict *qdict) \
25 + void hmp_##cmd(MonitorHMP *hmp, const QDict *qdict) \
26 { \
27 g_assert_not_reached(); \
28 }
@@ -46,7 +46,7 @@ int monitor_hmp_read_password(MonitorHMP *hmp, ReadLineFunc *readline_func,
46 void *opaque);
47
48 void monitor_register_hmp(const char *name, bool info,
49 - void (*cmd)(Monitor *mon, const QDict *qdict));
49 + void (*cmd)(MonitorHMP *mon, const QDict *qdict));
50 void monitor_register_hmp_info_hrt(const char *name,
51 HumanReadableText *(*handler)(Error **errp));
52
@@ -58,58 +58,58 @@ bool hmp_handle_error(Monitor *mon, Error *err);
58 void hmp_help_cmd(Monitor *mon, const char *name);
59 strList *hmp_split_at_comma(const char *str);
60
61 -void hmp_info_name(Monitor *mon, const QDict *qdict);
62 -void hmp_info_version(Monitor *mon, const QDict *qdict);
63 -void hmp_info_kvm(Monitor *mon, const QDict *qdict);
64 -void hmp_info_accelerators(Monitor *mon, const QDict *qdict);
65 -void hmp_info_status(Monitor *mon, const QDict *qdict);
66 -void hmp_info_uuid(Monitor *mon, const QDict *qdict);
67 -void hmp_info_chardev(Monitor *mon, const QDict *qdict);
68 -void hmp_info_mice(Monitor *mon, const QDict *qdict);
69 -void hmp_info_migrate(Monitor *mon, const QDict *qdict);
70 -void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict);
71 -void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict);
72 -void hmp_info_cpus(Monitor *mon, const QDict *qdict);
73 -void hmp_info_vnc(Monitor *mon, const QDict *qdict);
74 -void hmp_info_spice(Monitor *mon, const QDict *qdict);
75 -void hmp_info_balloon(Monitor *mon, const QDict *qdict);
76 -void hmp_info_pci(Monitor *mon, const QDict *qdict);
77 -void hmp_info_tpm(Monitor *mon, const QDict *qdict);
78 -void hmp_info_iothreads(Monitor *mon, const QDict *qdict);
79 -void hmp_quit(Monitor *mon, const QDict *qdict);
80 -void hmp_stop(Monitor *mon, const QDict *qdict);
81 -void hmp_sync_profile(Monitor *mon, const QDict *qdict);
82 -void hmp_system_reset(Monitor *mon, const QDict *qdict);
83 -void hmp_system_powerdown(Monitor *mon, const QDict *qdict);
84 -void hmp_exit_preconfig(Monitor *mon, const QDict *qdict);
85 -void hmp_announce_self(Monitor *mon, const QDict *qdict);
86 -void hmp_cpu(Monitor *mon, const QDict *qdict);
87 -void hmp_memsave(Monitor *mon, const QDict *qdict);
88 -void hmp_pmemsave(Monitor *mon, const QDict *qdict);
89 -void hmp_ringbuf_write(Monitor *mon, const QDict *qdict);
90 -void hmp_ringbuf_read(Monitor *mon, const QDict *qdict);
91 -void hmp_cont(Monitor *mon, const QDict *qdict);
92 -void hmp_system_wakeup(Monitor *mon, const QDict *qdict);
93 -void hmp_nmi(Monitor *mon, const QDict *qdict);
94 -void hmp_info_network(Monitor *mon, const QDict *qdict);
95 -void hmp_set_link(Monitor *mon, const QDict *qdict);
96 -void hmp_balloon(Monitor *mon, const QDict *qdict);
97 -void hmp_loadvm(Monitor *mon, const QDict *qdict);
98 -void hmp_savevm(Monitor *mon, const QDict *qdict);
99 -void hmp_delvm(Monitor *mon, const QDict *qdict);
100 -void hmp_migrate_cancel(Monitor *mon, const QDict *qdict);
101 -void hmp_migrate_continue(Monitor *mon, const QDict *qdict);
102 -void hmp_migrate_incoming(Monitor *mon, const QDict *qdict);
103 -void hmp_migrate_recover(Monitor *mon, const QDict *qdict);
104 -void hmp_migrate_pause(Monitor *mon, const QDict *qdict);
105 -void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict);
106 -void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict);
107 -void hmp_client_migrate_info(Monitor *mon, const QDict *qdict);
108 -void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict);
109 -void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict);
110 -void hmp_set_password(Monitor *mon, const QDict *qdict);
111 -void hmp_expire_password(Monitor *mon, const QDict *qdict);
112 -void hmp_change(Monitor *mon, const QDict *qdict);
61 +void hmp_info_name(MonitorHMP *hmp, const QDict *qdict);
62 +void hmp_info_version(MonitorHMP *hmp, const QDict *qdict);
63 +void hmp_info_kvm(MonitorHMP *hmp, const QDict *qdict);
64 +void hmp_info_accelerators(MonitorHMP *hmp, const QDict *qdict);
65 +void hmp_info_status(MonitorHMP *hmp, const QDict *qdict);
66 +void hmp_info_uuid(MonitorHMP *hmp, const QDict *qdict);
67 +void hmp_info_chardev(MonitorHMP *hmp, const QDict *qdict);
68 +void hmp_info_mice(MonitorHMP *hmp, const QDict *qdict);
69 +void hmp_info_migrate(MonitorHMP *hmp, const QDict *qdict);
70 +void hmp_info_migrate_capabilities(MonitorHMP *hmp, const QDict *qdict);
71 +void hmp_info_migrate_parameters(MonitorHMP *hmp, const QDict *qdict);
72 +void hmp_info_cpus(MonitorHMP *hmp, const QDict *qdict);
73 +void hmp_info_vnc(MonitorHMP *hmp, const QDict *qdict);
74 +void hmp_info_spice(MonitorHMP *hmp, const QDict *qdict);
75 +void hmp_info_balloon(MonitorHMP *hmp, const QDict *qdict);
76 +void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict);
77 +void hmp_info_tpm(MonitorHMP *hmp, const QDict *qdict);
78 +void hmp_info_iothreads(MonitorHMP *hmp, const QDict *qdict);
79 +void hmp_quit(MonitorHMP *hmp, const QDict *qdict);
80 +void hmp_stop(MonitorHMP *hmp, const QDict *qdict);
81 +void hmp_sync_profile(MonitorHMP *hmp, const QDict *qdict);
82 +void hmp_system_reset(MonitorHMP *hmp, const QDict *qdict);
83 +void hmp_system_powerdown(MonitorHMP *hmp, const QDict *qdict);
84 +void hmp_exit_preconfig(MonitorHMP *hmp, const QDict *qdict);
85 +void hmp_announce_self(MonitorHMP *hmp, const QDict *qdict);
86 +void hmp_cpu(MonitorHMP *hmp, const QDict *qdict);
87 +void hmp_memsave(MonitorHMP *hmp, const QDict *qdict);
88 +void hmp_pmemsave(MonitorHMP *hmp, const QDict *qdict);
89 +void hmp_ringbuf_write(MonitorHMP *hmp, const QDict *qdict);
90 +void hmp_ringbuf_read(MonitorHMP *hmp, const QDict *qdict);
91 +void hmp_cont(MonitorHMP *hmp, const QDict *qdict);
92 +void hmp_system_wakeup(MonitorHMP *hmp, const QDict *qdict);
93 +void hmp_nmi(MonitorHMP *hmp, const QDict *qdict);
94 +void hmp_info_network(MonitorHMP *hmp, const QDict *qdict);
95 +void hmp_set_link(MonitorHMP *hmp, const QDict *qdict);
96 +void hmp_balloon(MonitorHMP *hmp, const QDict *qdict);
97 +void hmp_loadvm(MonitorHMP *hmp, const QDict *qdict);
98 +void hmp_savevm(MonitorHMP *hmp, const QDict *qdict);
99 +void hmp_delvm(MonitorHMP *hmp, const QDict *qdict);
100 +void hmp_migrate_cancel(MonitorHMP *hmp, const QDict *qdict);
101 +void hmp_migrate_continue(MonitorHMP *hmp, const QDict *qdict);
102 +void hmp_migrate_incoming(MonitorHMP *hmp, const QDict *qdict);
103 +void hmp_migrate_recover(MonitorHMP *hmp, const QDict *qdict);
104 +void hmp_migrate_pause(MonitorHMP *hmp, const QDict *qdict);
105 +void hmp_migrate_set_capability(MonitorHMP *hmp, const QDict *qdict);
106 +void hmp_migrate_set_parameter(MonitorHMP *hmp, const QDict *qdict);
107 +void hmp_client_migrate_info(MonitorHMP *hmp, const QDict *qdict);
108 +void hmp_migrate_start_postcopy(MonitorHMP *hmp, const QDict *qdict);
109 +void hmp_x_colo_lost_heartbeat(MonitorHMP *hmp, const QDict *qdict);
110 +void hmp_set_password(MonitorHMP *hmp, const QDict *qdict);
111 +void hmp_expire_password(MonitorHMP *hmp, const QDict *qdict);
112 +void hmp_change(MonitorHMP *hmp, const QDict *qdict);
113 #ifdef CONFIG_VNC
114 void hmp_change_vnc(Monitor *mon, const char *device, const char *target,
115 const char *arg, const char *read_only, bool force,
@@ -118,101 +118,101 @@ void hmp_change_vnc(Monitor *mon, const char *device, const char *target,
118 void hmp_change_medium(Monitor *mon, const char *device, const char *target,
119 const char *arg, const char *read_only, bool force,
120 Error **errp);
121 -void hmp_migrate(Monitor *mon, const QDict *qdict);
122 -void hmp_device_add(Monitor *mon, const QDict *qdict);
123 -void hmp_device_del(Monitor *mon, const QDict *qdict);
124 -void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict);
125 -void hmp_netdev_add(Monitor *mon, const QDict *qdict);
126 -void hmp_netdev_del(Monitor *mon, const QDict *qdict);
127 -void hmp_getfd(Monitor *mon, const QDict *qdict);
128 -void hmp_closefd(Monitor *mon, const QDict *qdict);
129 -void hmp_mouse_move(Monitor *mon, const QDict *qdict);
130 -void hmp_mouse_button(Monitor *mon, const QDict *qdict);
131 -void hmp_mouse_set(Monitor *mon, const QDict *qdict);
132 -void hmp_sendkey(Monitor *mon, const QDict *qdict);
133 -void coroutine_fn hmp_screendump(Monitor *mon, const QDict *qdict);
134 -void hmp_chardev_add(Monitor *mon, const QDict *qdict);
135 -void hmp_chardev_change(Monitor *mon, const QDict *qdict);
136 -void hmp_chardev_remove(Monitor *mon, const QDict *qdict);
137 -void hmp_chardev_send_break(Monitor *mon, const QDict *qdict);
138 -void hmp_object_add(Monitor *mon, const QDict *qdict);
139 -void hmp_object_del(Monitor *mon, const QDict *qdict);
140 -void hmp_info_memdev(Monitor *mon, const QDict *qdict);
141 -void hmp_info_memory_devices(Monitor *mon, const QDict *qdict);
142 -void hmp_qom_list(Monitor *mon, const QDict *qdict);
143 -void hmp_qom_get(Monitor *mon, const QDict *qdict);
144 -void hmp_qom_set(Monitor *mon, const QDict *qdict);
145 -void hmp_info_qom_tree(Monitor *mon, const QDict *dict);
146 -void hmp_virtio_query(Monitor *mon, const QDict *qdict);
147 -void hmp_virtio_status(Monitor *mon, const QDict *qdict);
148 -void hmp_virtio_queue_status(Monitor *mon, const QDict *qdict);
149 -void hmp_vhost_queue_status(Monitor *mon, const QDict *qdict);
150 -void hmp_virtio_queue_element(Monitor *mon, const QDict *qdict);
151 -void hmp_xen_event_inject(Monitor *mon, const QDict *qdict);
152 -void hmp_xen_event_list(Monitor *mon, const QDict *qdict);
153 -void hmp_rocker(Monitor *mon, const QDict *qdict);
154 -void hmp_rocker_ports(Monitor *mon, const QDict *qdict);
155 -void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict);
156 -void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict);
157 -void hmp_info_dump(Monitor *mon, const QDict *qdict);
158 -void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict);
159 -void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict);
160 -void hmp_info_memory_size_summary(Monitor *mon, const QDict *qdict);
161 -void hmp_info_replay(Monitor *mon, const QDict *qdict);
162 -void hmp_replay_break(Monitor *mon, const QDict *qdict);
163 -void hmp_replay_delete_break(Monitor *mon, const QDict *qdict);
164 -void hmp_replay_seek(Monitor *mon, const QDict *qdict);
165 -void hmp_info_dirty_rate(Monitor *mon, const QDict *qdict);
166 -void hmp_calc_dirty_rate(Monitor *mon, const QDict *qdict);
167 -void hmp_set_vcpu_dirty_limit(Monitor *mon, const QDict *qdict);
168 -void hmp_cancel_vcpu_dirty_limit(Monitor *mon, const QDict *qdict);
169 -void hmp_info_vcpu_dirty_limit(Monitor *mon, const QDict *qdict);
121 +void hmp_migrate(MonitorHMP *hmp, const QDict *qdict);
122 +void hmp_device_add(MonitorHMP *hmp, const QDict *qdict);
123 +void hmp_device_del(MonitorHMP *hmp, const QDict *qdict);
124 +void hmp_dump_guest_memory(MonitorHMP *hmp, const QDict *qdict);
125 +void hmp_netdev_add(MonitorHMP *hmp, const QDict *qdict);
126 +void hmp_netdev_del(MonitorHMP *hmp, const QDict *qdict);
127 +void hmp_getfd(MonitorHMP *hmp, const QDict *qdict);
128 +void hmp_closefd(MonitorHMP *hmp, const QDict *qdict);
129 +void hmp_mouse_move(MonitorHMP *hmp, const QDict *qdict);
130 +void hmp_mouse_button(MonitorHMP *hmp, const QDict *qdict);
131 +void hmp_mouse_set(MonitorHMP *hmp, const QDict *qdict);
132 +void hmp_sendkey(MonitorHMP *hmp, const QDict *qdict);
133 +void coroutine_fn hmp_screendump(MonitorHMP *hmp, const QDict *qdict);
134 +void hmp_chardev_add(MonitorHMP *hmp, const QDict *qdict);
135 +void hmp_chardev_change(MonitorHMP *hmp, const QDict *qdict);
136 +void hmp_chardev_remove(MonitorHMP *hmp, const QDict *qdict);
137 +void hmp_chardev_send_break(MonitorHMP *hmp, const QDict *qdict);
138 +void hmp_object_add(MonitorHMP *hmp, const QDict *qdict);
139 +void hmp_object_del(MonitorHMP *hmp, const QDict *qdict);
140 +void hmp_info_memdev(MonitorHMP *hmp, const QDict *qdict);
141 +void hmp_info_memory_devices(MonitorHMP *hmp, const QDict *qdict);
142 +void hmp_qom_list(MonitorHMP *hmp, const QDict *qdict);
143 +void hmp_qom_get(MonitorHMP *hmp, const QDict *qdict);
144 +void hmp_qom_set(MonitorHMP *hmp, const QDict *qdict);
145 +void hmp_info_qom_tree(MonitorHMP *hmp, const QDict *dict);
146 +void hmp_virtio_query(MonitorHMP *hmp, const QDict *qdict);
147 +void hmp_virtio_status(MonitorHMP *hmp, const QDict *qdict);
148 +void hmp_virtio_queue_status(MonitorHMP *hmp, const QDict *qdict);
149 +void hmp_vhost_queue_status(MonitorHMP *hmp, const QDict *qdict);
150 +void hmp_virtio_queue_element(MonitorHMP *hmp, const QDict *qdict);
151 +void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict);
152 +void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict);
153 +void hmp_rocker(MonitorHMP *hmp, const QDict *qdict);
154 +void hmp_rocker_ports(MonitorHMP *hmp, const QDict *qdict);
155 +void hmp_rocker_of_dpa_flows(MonitorHMP *hmp, const QDict *qdict);
156 +void hmp_rocker_of_dpa_groups(MonitorHMP *hmp, const QDict *qdict);
157 +void hmp_info_dump(MonitorHMP *hmp, const QDict *qdict);
158 +void hmp_hotpluggable_cpus(MonitorHMP *hmp, const QDict *qdict);
159 +void hmp_info_vm_generation_id(MonitorHMP *hmp, const QDict *qdict);
160 +void hmp_info_memory_size_summary(MonitorHMP *hmp, const QDict *qdict);
161 +void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict);
162 +void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict);
163 +void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict);
164 +void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict);
165 +void hmp_info_dirty_rate(MonitorHMP *hmp, const QDict *qdict);
166 +void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict);
167 +void hmp_set_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict);
168 +void hmp_cancel_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict);
169 +void hmp_info_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict);
170 void hmp_human_readable_text_helper(Monitor *mon,
171 HumanReadableText *(*qmp_handler)(Error **));
172 -void hmp_info_stats(Monitor *mon, const QDict *qdict);
173 -void hmp_one_insn_per_tb(Monitor *mon, const QDict *qdict);
174 -void hmp_watchdog_action(Monitor *mon, const QDict *qdict);
175 -void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);
176 -void hmp_info_capture(Monitor *mon, const QDict *qdict);
177 -void hmp_stopcapture(Monitor *mon, const QDict *qdict);
178 -void hmp_wavcapture(Monitor *mon, const QDict *qdict);
179 -void hmp_trace_event(Monitor *mon, const QDict *qdict);
180 -void hmp_trace_file(Monitor *mon, const QDict *qdict);
181 -void hmp_info_trace_events(Monitor *mon, const QDict *qdict);
182 -void hmp_help(Monitor *mon, const QDict *qdict);
183 -void hmp_clear(Monitor *mon, const QDict *qdict);
184 -void hmp_info_help(Monitor *mon, const QDict *qdict);
185 -void hmp_info_sync_profile(Monitor *mon, const QDict *qdict);
186 -void hmp_info_history(Monitor *mon, const QDict *qdict);
187 -void hmp_logfile(Monitor *mon, const QDict *qdict);
188 -void hmp_log(Monitor *mon, const QDict *qdict);
189 -void hmp_gdbserver(Monitor *mon, const QDict *qdict);
190 -void hmp_print(Monitor *mon, const QDict *qdict);
191 -void hmp_sum(Monitor *mon, const QDict *qdict);
192 -void hmp_ioport_read(Monitor *mon, const QDict *qdict);
193 -void hmp_ioport_write(Monitor *mon, const QDict *qdict);
194 -void hmp_boot_set(Monitor *mon, const QDict *qdict);
195 -void hmp_info_mtree(Monitor *mon, const QDict *qdict);
196 -void hmp_info_cryptodev(Monitor *mon, const QDict *qdict);
197 -void hmp_dumpdtb(Monitor *mon, const QDict *qdict);
198 -void hmp_info_firmware_log(Monitor *mon, const QDict *qdict);
199 -void hmp_info_mem(Monitor *mon, const QDict *qdict);
200 -void hmp_info_tlb(Monitor *mon, const QDict *qdict);
201 -void hmp_mce(Monitor *mon, const QDict *qdict);
202 -void hmp_info_local_apic(Monitor *mon, const QDict *qdict);
203 -void hmp_info_sev(Monitor *mon, const QDict *qdict);
204 -void hmp_info_sgx(Monitor *mon, const QDict *qdict);
205 -void hmp_info_via(Monitor *mon, const QDict *qdict);
206 -void hmp_memory_dump(Monitor *mon, const QDict *qdict);
207 -void hmp_physical_memory_dump(Monitor *mon, const QDict *qdict);
208 -void hmp_info_registers(Monitor *mon, const QDict *qdict);
209 -void hmp_gva2gpa(Monitor *mon, const QDict *qdict);
210 -void hmp_gpa2hva(Monitor *mon, const QDict *qdict);
211 -void hmp_gpa2hpa(Monitor *mon, const QDict *qdict);
172 +void hmp_info_stats(MonitorHMP *hmp, const QDict *qdict);
173 +void hmp_one_insn_per_tb(MonitorHMP *hmp, const QDict *qdict);
174 +void hmp_watchdog_action(MonitorHMP *hmp, const QDict *qdict);
175 +void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict);
176 +void hmp_info_capture(MonitorHMP *hmp, const QDict *qdict);
177 +void hmp_stopcapture(MonitorHMP *hmp, const QDict *qdict);
178 +void hmp_wavcapture(MonitorHMP *hmp, const QDict *qdict);
179 +void hmp_trace_event(MonitorHMP *hmp, const QDict *qdict);
180 +void hmp_trace_file(MonitorHMP *hmp, const QDict *qdict);
181 +void hmp_info_trace_events(MonitorHMP *hmp, const QDict *qdict);
182 +void hmp_help(MonitorHMP *hmp, const QDict *qdict);
183 +void hmp_clear(MonitorHMP *hmp, const QDict *qdict);
184 +void hmp_info_help(MonitorHMP *hmp, const QDict *qdict);
185 +void hmp_info_sync_profile(MonitorHMP *hmp, const QDict *qdict);
186 +void hmp_info_history(MonitorHMP *hmp, const QDict *qdict);
187 +void hmp_logfile(MonitorHMP *hmp, const QDict *qdict);
188 +void hmp_log(MonitorHMP *hmp, const QDict *qdict);
189 +void hmp_gdbserver(MonitorHMP *hmp, const QDict *qdict);
190 +void hmp_print(MonitorHMP *hmp, const QDict *qdict);
191 +void hmp_sum(MonitorHMP *hmp, const QDict *qdict);
192 +void hmp_ioport_read(MonitorHMP *hmp, const QDict *qdict);
193 +void hmp_ioport_write(MonitorHMP *hmp, const QDict *qdict);
194 +void hmp_boot_set(MonitorHMP *hmp, const QDict *qdict);
195 +void hmp_info_mtree(MonitorHMP *hmp, const QDict *qdict);
196 +void hmp_info_cryptodev(MonitorHMP *hmp, const QDict *qdict);
197 +void hmp_dumpdtb(MonitorHMP *hmp, const QDict *qdict);
198 +void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict);
199 +void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict);
200 +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict);
201 +void hmp_mce(MonitorHMP *hmp, const QDict *qdict);
202 +void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict);
203 +void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict);
204 +void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict);
205 +void hmp_info_via(MonitorHMP *hmp, const QDict *qdict);
206 +void hmp_memory_dump(MonitorHMP *hmp, const QDict *qdict);
207 +void hmp_physical_memory_dump(MonitorHMP *hmp, const QDict *qdict);
208 +void hmp_info_registers(MonitorHMP *hmp, const QDict *qdict);
209 +void hmp_gva2gpa(MonitorHMP *hmp, const QDict *qdict);
210 +void hmp_gpa2hva(MonitorHMP *hmp, const QDict *qdict);
211 +void hmp_gpa2hpa(MonitorHMP *hmp, const QDict *qdict);
212
213 -void hmp_dump_skeys(Monitor *mon, const QDict *qdict);
214 -void hmp_info_skeys(Monitor *mon, const QDict *qdict);
215 -void hmp_info_cmma(Monitor *mon, const QDict *qdict);
216 -void hmp_migrationmode(Monitor *mon, const QDict *qdict);
213 +void hmp_dump_skeys(MonitorHMP *hmp, const QDict *qdict);
214 +void hmp_info_skeys(MonitorHMP *hmp, const QDict *qdict);
215 +void hmp_info_cmma(MonitorHMP *hmp, const QDict *qdict);
216 +void hmp_migrationmode(MonitorHMP *hmp, const QDict *qdict);
217
218 #endif
include/monitor/qdev.h
+3 -2
@@ -2,11 +2,12 @@
2 #define MONITOR_QDEV_H
3
4 #include "hw/core/qdev.h"
5 +#include "monitor/hmp.h"
6
7 /*** monitor commands ***/
8
8 -void hmp_info_qtree(Monitor *mon, const QDict *qdict);
9 -void hmp_info_qdm(Monitor *mon, const QDict *qdict);
9 +void hmp_info_qtree(MonitorHMP *hmp, const QDict *qdict);
10 +void hmp_info_qdm(MonitorHMP *hmp, const QDict *qdict);
11 void qmp_device_add(QDict *qdict, QObject **ret_data, Error **errp);
12
13 int qdev_device_help(QemuOpts *opts);
include/net/net.h
+3 -2
@@ -5,6 +5,7 @@
5 #include "qapi/qapi-types-net.h"
6 #include "net/queue.h"
7 #include "hw/core/qdev-properties-system.h"
8 +#include "monitor/hmp.h"
9
10 #define MAC_FMT "%02X:%02X:%02X:%02X:%02X:%02X"
11 #define MAC_ARG(x) ((uint8_t *)(x))[0], ((uint8_t *)(x))[1], \
@@ -318,8 +319,8 @@ void net_init_clients(void);
319 void net_check_clients(void);
320 void net_client_set_link(NetClientState **ncs, int queues, bool up);
321 void net_cleanup(void);
321 -void hmp_host_net_add(Monitor *mon, const QDict *qdict);
322 -void hmp_host_net_remove(Monitor *mon, const QDict *qdict);
322 +void hmp_host_net_add(MonitorHMP *hmp, const QDict *qdict);
323 +void hmp_host_net_remove(MonitorHMP *hmp, const QDict *qdict);
324 void netdev_add(QemuOpts *opts, Error **errp);
325
326 int net_hub_id_for_client(NetClientState *nc, int *id);
include/net/slirp.h
+4 -4
@@ -24,13 +24,13 @@
24 #ifndef QEMU_NET_SLIRP_H
25 #define QEMU_NET_SLIRP_H
26
27 -
27 #ifdef CONFIG_SLIRP
28 +#include "monitor/hmp.h"
29
30 -void hmp_hostfwd_add(Monitor *mon, const QDict *qdict);
31 -void hmp_hostfwd_remove(Monitor *mon, const QDict *qdict);
30 +void hmp_hostfwd_add(MonitorHMP *hmp, const QDict *qdict);
31 +void hmp_hostfwd_remove(MonitorHMP *hmp, const QDict *qdict);
32
33 -void hmp_info_usernet(Monitor *mon, const QDict *qdict);
33 +void hmp_info_usernet(MonitorHMP *hmp, const QDict *qdict);
34
35 #endif
36
migration/dirtyrate.c
+4 -2
@@ -856,8 +856,9 @@ struct DirtyRateInfo *qmp_query_dirty_rate(bool has_calc_time_unit,
856 has_calc_time_unit ? calc_time_unit : TIME_UNIT_SECOND);
857 }
858
859 -void hmp_info_dirty_rate(Monitor *mon, const QDict *qdict)
859 +void hmp_info_dirty_rate(MonitorHMP *hmp, const QDict *qdict)
860 {
861 + Monitor *mon = MONITOR(hmp);
862 DirtyRateInfo *info = query_dirty_rate_info(TIME_UNIT_SECOND);
863
864 monitor_printf(mon, "Status: %s\n",
@@ -891,8 +892,9 @@ void hmp_info_dirty_rate(Monitor *mon, const QDict *qdict)
892 g_free(info);
893 }
894
894 -void hmp_calc_dirty_rate(Monitor *mon, const QDict *qdict)
895 +void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict)
896 {
897 + Monitor *mon = MONITOR(hmp);
898 int64_t sec = qdict_get_try_int(qdict, "second", 0);
899 int64_t sample_pages = qdict_get_try_int(qdict, "sample_pages_per_GB", -1);
900 bool has_sample_pages = (sample_pages != -1);
migration/migration-hmp-cmds.c
+31 -17
@@ -135,8 +135,9 @@ static void migration_dump_blocktime(Monitor *mon, MigrationInfo *info)
135 }
136 }
137
138 -void hmp_info_migrate(Monitor *mon, const QDict *qdict)
138 +void hmp_info_migrate(MonitorHMP *hmp, const QDict *qdict)
139 {
140 + Monitor *mon = MONITOR(hmp);
141 bool show_all = qdict_get_try_bool(qdict, "all", false);
142 MigrationInfo *info;
143
@@ -297,8 +298,9 @@ out:
298 qapi_free_MigrationInfo(info);
299 }
300
300 -void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict)
301 +void hmp_info_migrate_capabilities(MonitorHMP *hmp, const QDict *qdict)
302 {
303 + Monitor *mon = MONITOR(hmp);
304 MigrationCapabilityStatusList *caps, *cap;
305
306 caps = qmp_query_migrate_capabilities(NULL);
@@ -326,8 +328,9 @@ static void monitor_print_cpr_exec_command(Monitor *mon, strList *args)
328 monitor_printf(mon, "\n");
329 }
330
329 -void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict)
331 +void hmp_info_migrate_parameters(MonitorHMP *hmp, const QDict *qdict)
332 {
333 + Monitor *mon = MONITOR(hmp);
334 MigrationParameters *params;
335 MigrationState *s = migrate_get_current();
336
@@ -473,8 +476,9 @@ void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict)
476 qapi_free_MigrationParameters(params);
477 }
478
476 -void hmp_loadvm(Monitor *mon, const QDict *qdict)
479 +void hmp_loadvm(MonitorHMP *hmp, const QDict *qdict)
480 {
481 + Monitor *mon = MONITOR(hmp);
482 RunState saved_state = runstate_get();
483
484 const char *name = qdict_get_str(qdict, "name");
@@ -489,8 +493,9 @@ void hmp_loadvm(Monitor *mon, const QDict *qdict)
493 hmp_handle_error(mon, err);
494 }
495
492 -void hmp_savevm(Monitor *mon, const QDict *qdict)
496 +void hmp_savevm(MonitorHMP *hmp, const QDict *qdict)
497 {
498 + Monitor *mon = MONITOR(hmp);
499 Error *err = NULL;
500
501 save_snapshot(qdict_get_try_str(qdict, "name"),
@@ -498,8 +503,9 @@ void hmp_savevm(Monitor *mon, const QDict *qdict)
503 hmp_handle_error(mon, err);
504 }
505
501 -void hmp_delvm(Monitor *mon, const QDict *qdict)
506 +void hmp_delvm(MonitorHMP *hmp, const QDict *qdict)
507 {
508 + Monitor *mon = MONITOR(hmp);
509 Error *err = NULL;
510 const char *name = qdict_get_str(qdict, "name");
511
@@ -507,13 +513,14 @@ void hmp_delvm(Monitor *mon, const QDict *qdict)
513 hmp_handle_error(mon, err);
514 }
515
510 -void hmp_migrate_cancel(Monitor *mon, const QDict *qdict)
516 +void hmp_migrate_cancel(MonitorHMP *hmp, const QDict *qdict)
517 {
518 qmp_migrate_cancel(NULL);
519 }
520
515 -void hmp_migrate_continue(Monitor *mon, const QDict *qdict)
521 +void hmp_migrate_continue(MonitorHMP *hmp, const QDict *qdict)
522 {
523 + Monitor *mon = MONITOR(hmp);
524 Error *err = NULL;
525 const char *state = qdict_get_str(qdict, "state");
526 int val = qapi_enum_parse(&MigrationStatus_lookup, state, -1, &err);
@@ -525,8 +532,9 @@ void hmp_migrate_continue(Monitor *mon, const QDict *qdict)
532 hmp_handle_error(mon, err);
533 }
534
528 -void hmp_migrate_incoming(Monitor *mon, const QDict *qdict)
535 +void hmp_migrate_incoming(MonitorHMP *hmp, const QDict *qdict)
536 {
537 + Monitor *mon = MONITOR(hmp);
538 Error *err = NULL;
539 const char *uri = qdict_get_str(qdict, "uri");
540 MigrationChannelList *caps = NULL;
@@ -544,8 +552,9 @@ end:
552 hmp_handle_error(mon, err);
553 }
554
547 -void hmp_migrate_recover(Monitor *mon, const QDict *qdict)
555 +void hmp_migrate_recover(MonitorHMP *hmp, const QDict *qdict)
556 {
557 + Monitor *mon = MONITOR(hmp);
558 Error *err = NULL;
559 const char *uri = qdict_get_str(qdict, "uri");
560
@@ -554,8 +563,9 @@ void hmp_migrate_recover(Monitor *mon, const QDict *qdict)
563 hmp_handle_error(mon, err);
564 }
565
557 -void hmp_migrate_pause(Monitor *mon, const QDict *qdict)
566 +void hmp_migrate_pause(MonitorHMP *hmp, const QDict *qdict)
567 {
568 + Monitor *mon = MONITOR(hmp);
569 Error *err = NULL;
570
571 qmp_migrate_pause(&err);
@@ -564,8 +574,9 @@ void hmp_migrate_pause(Monitor *mon, const QDict *qdict)
574 }
575
576
567 -void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict)
577 +void hmp_migrate_set_capability(MonitorHMP *hmp, const QDict *qdict)
578 {
579 + Monitor *mon = MONITOR(hmp);
580 const char *cap = qdict_get_str(qdict, "capability");
581 bool state = qdict_get_bool(qdict, "state");
582 Error *err = NULL;
@@ -589,8 +600,9 @@ end:
600 hmp_handle_error(mon, err);
601 }
602
592 -void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
603 +void hmp_migrate_set_parameter(MonitorHMP *hmp, const QDict *qdict)
604 {
605 + Monitor *mon = MONITOR(hmp);
606 const char *param = qdict_get_str(qdict, "parameter");
607 const char *valuestr = qdict_get_str(qdict, "value");
608 Visitor *v = string_input_visitor_new(valuestr);
@@ -790,16 +802,18 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
802 hmp_handle_error(mon, err);
803 }
804
793 -void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict)
805 +void hmp_migrate_start_postcopy(MonitorHMP *hmp, const QDict *qdict)
806 {
807 + Monitor *mon = MONITOR(hmp);
808 Error *err = NULL;
809 qmp_migrate_start_postcopy(&err);
810 hmp_handle_error(mon, err);
811 }
812
813 #ifdef CONFIG_REPLICATION
801 -void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict)
814 +void hmp_x_colo_lost_heartbeat(MonitorHMP *hmp, const QDict *qdict)
815 {
816 + Monitor *mon = MONITOR(hmp);
817 Error *err = NULL;
818
819 qmp_x_colo_lost_heartbeat(&err);
@@ -833,8 +847,9 @@ static void hmp_migrate_status_cb(void *opaque)
847 qapi_free_MigrationInfo(info);
848 }
849
836 -void hmp_migrate(Monitor *mon, const QDict *qdict)
850 +void hmp_migrate(MonitorHMP *hmp, const QDict *qdict)
851 {
852 + Monitor *mon = MONITOR(hmp);
853 bool detach = qdict_get_try_bool(qdict, "detach", false);
854 bool resume = qdict_get_try_bool(qdict, "resume", false);
855 const char *uri = qdict_get_str(qdict, "uri");
@@ -873,7 +888,6 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
888
889 if (!detach) {
890 HMPMigrationStatus *status;
876 - MonitorHMP *hmp = MONITOR_HMP(mon);
891
892 if (!hmp->use_readline) {
893 monitor_printf(mon, "terminal does not allow synchronous "
monitor/hmp-cmds.c
+61 -35
@@ -103,8 +103,9 @@ strList *hmp_split_at_comma(const char *str)
103 return res;
104 }
105
106 -void hmp_info_name(Monitor *mon, const QDict *qdict)
106 +void hmp_info_name(MonitorHMP *hmp, const QDict *qdict)
107 {
108 + Monitor *mon = MONITOR(hmp);
109 NameInfo *info;
110
111 info = qmp_query_name(NULL);
@@ -114,8 +115,9 @@ void hmp_info_name(Monitor *mon, const QDict *qdict)
115 qapi_free_NameInfo(info);
116 }
117
117 -void hmp_info_version(Monitor *mon, const QDict *qdict)
118 +void hmp_info_version(MonitorHMP *hmp, const QDict *qdict)
119 {
120 + Monitor *mon = MONITOR(hmp);
121 VersionInfo *info;
122
123 info = qmp_query_version(NULL);
@@ -127,22 +129,23 @@ void hmp_info_version(Monitor *mon, const QDict *qdict)
129 qapi_free_VersionInfo(info);
130 }
131
130 -void hmp_quit(Monitor *mon, const QDict *qdict)
132 +void hmp_quit(MonitorHMP *hmp, const QDict *qdict)
133 {
132 - MonitorHMP *hmp = MONITOR_HMP(mon);
134 + Monitor *mon = MONITOR(hmp);
135 if (hmp->use_readline) {
136 monitor_suspend(mon);
137 }
138 qmp_quit(NULL);
139 }
140
139 -void hmp_stop(Monitor *mon, const QDict *qdict)
141 +void hmp_stop(MonitorHMP *hmp, const QDict *qdict)
142 {
143 qmp_stop(NULL);
144 }
145
144 -void hmp_sync_profile(Monitor *mon, const QDict *qdict)
146 +void hmp_sync_profile(MonitorHMP *hmp, const QDict *qdict)
147 {
148 + Monitor *mon = MONITOR(hmp);
149 const char *op = qdict_get_try_str(qdict, "op");
150
151 if (op == NULL) {
@@ -166,16 +169,18 @@ void hmp_sync_profile(Monitor *mon, const QDict *qdict)
169 }
170 }
171
169 -void hmp_exit_preconfig(Monitor *mon, const QDict *qdict)
172 +void hmp_exit_preconfig(MonitorHMP *hmp, const QDict *qdict)
173 {
174 + Monitor *mon = MONITOR(hmp);
175 Error *err = NULL;
176
177 qmp_x_exit_preconfig(&err);
178 hmp_handle_error(mon, err);
179 }
180
177 -void hmp_cpu(Monitor *mon, const QDict *qdict)
181 +void hmp_cpu(MonitorHMP *hmp, const QDict *qdict)
182 {
183 + Monitor *mon = MONITOR(hmp);
184 int64_t cpu_index;
185
186 /* XXX: drop the monitor_set_cpu() usage when all HMP commands that
@@ -186,16 +191,18 @@ void hmp_cpu(Monitor *mon, const QDict *qdict)
191 }
192 }
193
189 -void hmp_cont(Monitor *mon, const QDict *qdict)
194 +void hmp_cont(MonitorHMP *hmp, const QDict *qdict)
195 {
196 + Monitor *mon = MONITOR(hmp);
197 Error *err = NULL;
198
199 qmp_cont(&err);
200 hmp_handle_error(mon, err);
201 }
202
197 -void hmp_change(Monitor *mon, const QDict *qdict)
203 +void hmp_change(MonitorHMP *hmp, const QDict *qdict)
204 {
205 + Monitor *mon = MONITOR(hmp);
206 const char *device = qdict_get_str(qdict, "device");
207 const char *target = qdict_get_str(qdict, "target");
208 const char *arg = qdict_get_try_str(qdict, "arg");
@@ -216,8 +223,9 @@ void hmp_change(Monitor *mon, const QDict *qdict)
223 }
224
225 #ifdef CONFIG_POSIX
219 -void hmp_getfd(Monitor *mon, const QDict *qdict)
226 +void hmp_getfd(MonitorHMP *hmp, const QDict *qdict)
227 {
228 + Monitor *mon = MONITOR(hmp);
229 const char *fdname = qdict_get_str(qdict, "fdname");
230 Error *err = NULL;
231
@@ -226,8 +234,9 @@ void hmp_getfd(Monitor *mon, const QDict *qdict)
234 }
235 #endif
236
229 -void hmp_closefd(Monitor *mon, const QDict *qdict)
237 +void hmp_closefd(MonitorHMP *hmp, const QDict *qdict)
238 {
239 + Monitor *mon = MONITOR(hmp);
240 const char *fdname = qdict_get_str(qdict, "fdname");
241 Error *err = NULL;
242
@@ -235,8 +244,9 @@ void hmp_closefd(Monitor *mon, const QDict *qdict)
244 hmp_handle_error(mon, err);
245 }
246
238 -void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
247 +void hmp_info_iothreads(MonitorHMP *hmp, const QDict *qdict)
248 {
249 + Monitor *mon = MONITOR(hmp);
250 IOThreadInfoList *info_list = qmp_query_iothreads(NULL);
251 IOThreadInfoList *info;
252 IOThreadInfo *value;
@@ -256,13 +266,15 @@ void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
266 qapi_free_IOThreadInfoList(info_list);
267 }
268
259 -void hmp_help(Monitor *mon, const QDict *qdict)
269 +void hmp_help(MonitorHMP *hmp, const QDict *qdict)
270 {
271 + Monitor *mon = MONITOR(hmp);
272 hmp_help_cmd(mon, qdict_get_try_str(qdict, "name"));
273 }
274
264 -void hmp_clear(Monitor *mon, const QDict *qdict)
275 +void hmp_clear(MonitorHMP *hmp, const QDict *qdict)
276 {
277 + Monitor *mon = MONITOR(hmp);
278 /*
279 * Send an ANSI escape sequence:
280 * "\x1b[H" - move cursor to top-left
@@ -272,12 +284,13 @@ void hmp_clear(Monitor *mon, const QDict *qdict)
284 monitor_printf(mon, "\x1b[H\x1b[2J\x1b[3J");
285 }
286
275 -void hmp_info_help(Monitor *mon, const QDict *qdict)
287 +void hmp_info_help(MonitorHMP *hmp, const QDict *qdict)
288 {
289 + Monitor *mon = MONITOR(hmp);
290 hmp_help_cmd(mon, "info");
291 }
292
280 -void hmp_info_sync_profile(Monitor *mon, const QDict *qdict)
293 +void hmp_info_sync_profile(MonitorHMP *hmp, const QDict *qdict)
294 {
295 int64_t max = qdict_get_try_int(qdict, "max", 10);
296 bool mean = qdict_get_try_bool(qdict, "mean", false);
@@ -288,9 +301,9 @@ void hmp_info_sync_profile(Monitor *mon, const QDict *qdict)
301 qsp_report(max, sort_by, coalesce);
302 }
303
291 -void hmp_info_history(Monitor *mon, const QDict *qdict)
304 +void hmp_info_history(MonitorHMP *hmp, const QDict *qdict)
305 {
293 - MonitorHMP *hmp = MONITOR_HMP(mon);
306 + Monitor *mon = MONITOR(hmp);
307 int i;
308 const char *str;
309
@@ -308,7 +321,7 @@ void hmp_info_history(Monitor *mon, const QDict *qdict)
321 }
322 }
323
311 -void hmp_logfile(Monitor *mon, const QDict *qdict)
324 +void hmp_logfile(MonitorHMP *hmp, const QDict *qdict)
325 {
326 Error *err = NULL;
327
@@ -317,8 +330,9 @@ void hmp_logfile(Monitor *mon, const QDict *qdict)
330 }
331 }
332
320 -void hmp_log(Monitor *mon, const QDict *qdict)
333 +void hmp_log(MonitorHMP *hmp, const QDict *qdict)
334 {
335 + Monitor *mon = MONITOR(hmp);
336 int mask;
337 const char *items = qdict_get_str(qdict, "items");
338 Error *err = NULL;
@@ -338,8 +352,9 @@ void hmp_log(Monitor *mon, const QDict *qdict)
352 }
353 }
354
341 -void hmp_gdbserver(Monitor *mon, const QDict *qdict)
355 +void hmp_gdbserver(MonitorHMP *hmp, const QDict *qdict)
356 {
357 + Monitor *mon = MONITOR(hmp);
358 Error *err = NULL;
359 const char *device = qdict_get_try_str(qdict, "device");
360
@@ -357,8 +372,9 @@ void hmp_gdbserver(Monitor *mon, const QDict *qdict)
372 }
373 }
374
360 -void hmp_print(Monitor *mon, const QDict *qdict)
375 +void hmp_print(MonitorHMP *hmp, const QDict *qdict)
376 {
377 + Monitor *mon = MONITOR(hmp);
378 int format = qdict_get_int(qdict, "format");
379 hwaddr val = qdict_get_int(qdict, "val");
380
@@ -383,8 +399,9 @@ void hmp_print(Monitor *mon, const QDict *qdict)
399 monitor_printf(mon, "\n");
400 }
401
386 -void hmp_sum(Monitor *mon, const QDict *qdict)
402 +void hmp_sum(MonitorHMP *hmp, const QDict *qdict)
403 {
404 + Monitor *mon = MONITOR(hmp);
405 uint32_t addr;
406 uint16_t sum;
407 uint32_t start = qdict_get_int(qdict, "start");
@@ -401,8 +418,9 @@ void hmp_sum(Monitor *mon, const QDict *qdict)
418 monitor_printf(mon, "%05d\n", sum);
419 }
420
404 -void hmp_ioport_read(Monitor *mon, const QDict *qdict)
421 +void hmp_ioport_read(MonitorHMP *hmp, const QDict *qdict)
422 {
423 + Monitor *mon = MONITOR(hmp);
424 int size = qdict_get_int(qdict, "size");
425 int addr = qdict_get_int(qdict, "addr");
426 int has_index = qdict_haskey(qdict, "index");
@@ -435,7 +453,7 @@ void hmp_ioport_read(Monitor *mon, const QDict *qdict)
453 suffix, addr, size * 2, val);
454 }
455
438 -void hmp_ioport_write(Monitor *mon, const QDict *qdict)
456 +void hmp_ioport_write(MonitorHMP *hmp, const QDict *qdict)
457 {
458 int size = qdict_get_int(qdict, "size");
459 int addr = qdict_get_int(qdict, "addr");
@@ -457,8 +475,9 @@ void hmp_ioport_write(Monitor *mon, const QDict *qdict)
475 }
476 }
477
460 -void hmp_boot_set(Monitor *mon, const QDict *qdict)
478 +void hmp_boot_set(MonitorHMP *hmp, const QDict *qdict)
479 {
480 + Monitor *mon = MONITOR(hmp);
481 Error *local_err = NULL;
482 const char *bootdevice = qdict_get_str(qdict, "bootdevice");
483
@@ -470,7 +489,7 @@ void hmp_boot_set(Monitor *mon, const QDict *qdict)
489 }
490 }
491
473 -void hmp_info_mtree(Monitor *mon, const QDict *qdict)
492 +void hmp_info_mtree(MonitorHMP *hmp, const QDict *qdict)
493 {
494 bool flatview = qdict_get_try_bool(qdict, "flatview", false);
495 bool dispatch_tree = qdict_get_try_bool(qdict, "dispatch_tree", false);
@@ -481,8 +500,9 @@ void hmp_info_mtree(Monitor *mon, const QDict *qdict)
500 }
501
502 #if defined(CONFIG_FDT)
484 -void hmp_dumpdtb(Monitor *mon, const QDict *qdict)
503 +void hmp_dumpdtb(MonitorHMP *hmp, const QDict *qdict)
504 {
505 + Monitor *mon = MONITOR(hmp);
506 const char *filename = qdict_get_str(qdict, "filename");
507 Error *local_err = NULL;
508
@@ -558,8 +578,9 @@ int monitor_get_cpu_index(Monitor *mon)
578 return cs ? cs->cpu_index : UNASSIGNED_CPU_INDEX;
579 }
580
561 -void hmp_info_registers(Monitor *mon, const QDict *qdict)
581 +void hmp_info_registers(MonitorHMP *hmp, const QDict *qdict)
582 {
583 + Monitor *mon = MONITOR(hmp);
584 bool all_cpus = qdict_get_try_bool(qdict, "cpustate_all", false);
585 int vcpu = qdict_get_try_int(qdict, "vcpu", -1);
586 CPUState *cs;
@@ -694,8 +715,9 @@ static void memory_dump(Monitor *mon, int count, int format, int wsize,
715 }
716 }
717
697 -void hmp_memory_dump(Monitor *mon, const QDict *qdict)
718 +void hmp_memory_dump(MonitorHMP *hmp, const QDict *qdict)
719 {
720 + Monitor *mon = MONITOR(hmp);
721 int count = qdict_get_int(qdict, "count");
722 int format = qdict_get_int(qdict, "format");
723 int size = qdict_get_int(qdict, "size");
@@ -704,8 +726,9 @@ void hmp_memory_dump(Monitor *mon, const QDict *qdict)
726 memory_dump(mon, count, format, size, addr, false);
727 }
728
707 -void hmp_physical_memory_dump(Monitor *mon, const QDict *qdict)
729 +void hmp_physical_memory_dump(MonitorHMP *hmp, const QDict *qdict)
730 {
731 + Monitor *mon = MONITOR(hmp);
732 int count = qdict_get_int(qdict, "count");
733 int format = qdict_get_int(qdict, "format");
734 int size = qdict_get_int(qdict, "size");
@@ -714,8 +737,9 @@ void hmp_physical_memory_dump(Monitor *mon, const QDict *qdict)
737 memory_dump(mon, count, format, size, addr, true);
738 }
739
717 -void hmp_gpa2hva(Monitor *mon, const QDict *qdict)
740 +void hmp_gpa2hva(MonitorHMP *hmp, const QDict *qdict)
741 {
742 + Monitor *mon = MONITOR(hmp);
743 hwaddr addr = qdict_get_int(qdict, "addr");
744 Error *local_err = NULL;
745 MemoryRegion *mr = NULL;
@@ -734,8 +758,9 @@ void hmp_gpa2hva(Monitor *mon, const QDict *qdict)
758 memory_region_unref(mr);
759 }
760
737 -void hmp_gva2gpa(Monitor *mon, const QDict *qdict)
761 +void hmp_gva2gpa(MonitorHMP *hmp, const QDict *qdict)
762 {
763 + Monitor *mon = MONITOR(hmp);
764 vaddr addr = qdict_get_int(qdict, "addr");
765 CPUState *cs = mon_get_cpu(mon);
766 TranslateForDebugResult tres;
@@ -787,8 +812,9 @@ out:
812 return ret;
813 }
814
790 -void hmp_gpa2hpa(Monitor *mon, const QDict *qdict)
815 +void hmp_gpa2hpa(MonitorHMP *hmp, const QDict *qdict)
816 {
817 + Monitor *mon = MONITOR(hmp);
818 hwaddr addr = qdict_get_int(qdict, "addr");
819 Error *local_err = NULL;
820 MemoryRegion *mr = NULL;
monitor/hmp.c
+8 -9
@@ -1228,12 +1228,12 @@ static void hmp_info_human_readable_text(Monitor *mon,
1228 monitor_puts(mon, info->human_readable_text);
1229 }
1230
1231 -static void handle_hmp_command_exec(Monitor *mon,
1231 +static void handle_hmp_command_exec(MonitorHMP *mon,
1232 const HMPCommand *cmd,
1233 QDict *qdict)
1234 {
1235 if (cmd->cmd_info_hrt) {
1236 - hmp_info_human_readable_text(mon,
1236 + hmp_info_human_readable_text(MONITOR(mon),
1237 cmd->cmd_info_hrt);
1238 } else {
1239 cmd->cmd(mon, qdict);
@@ -1241,7 +1241,7 @@ static void handle_hmp_command_exec(Monitor *mon,
1241 }
1242
1243 typedef struct HandleHmpCommandCo {
1244 - Monitor *mon;
1244 + MonitorHMP *mon;
1245 const HMPCommand *cmd;
1246 QDict *qdict;
1247 bool done;
@@ -1289,19 +1289,18 @@ void handle_hmp_command(MonitorHMP *hmp, const char *cmdline)
1289
1290 if (!cmd->coroutine) {
1291 /* old_mon is non-NULL when called from qmp_human_monitor_command() */
1292 - Monitor *old_mon = monitor_set_cur(qemu_coroutine_self(),
1293 - &hmp->parent_obj);
1294 - handle_hmp_command_exec(&hmp->parent_obj, cmd, qdict);
1292 + Monitor *old_mon = monitor_set_cur(qemu_coroutine_self(), MONITOR(hmp));
1293 + handle_hmp_command_exec(hmp, cmd, qdict);
1294 monitor_set_cur(qemu_coroutine_self(), old_mon);
1295 } else {
1296 HandleHmpCommandCo data = {
1298 - .mon = &hmp->parent_obj,
1297 + .mon = hmp,
1298 .cmd = cmd,
1299 .qdict = qdict,
1300 .done = false,
1301 };
1302 Coroutine *co = qemu_coroutine_create(handle_hmp_command_co, &data);
1304 - monitor_set_cur(co, &hmp->parent_obj);
1303 + monitor_set_cur(co, MONITOR(hmp));
1304 aio_co_enter(qemu_get_aio_context(), co);
1305 AIO_WAIT_WHILE_UNLOCKED(NULL, !data.done);
1306 }
@@ -1689,7 +1688,7 @@ int hmp_compare_cmd(const char *name, const char *list)
1688 }
1689
1690 void monitor_register_hmp(const char *name, bool info,
1692 - void (*cmd)(Monitor *mon, const QDict *qdict))
1691 + void (*cmd)(MonitorHMP *mon, const QDict *qdict))
1692 {
1693 HMPCommand *table = hmp_cmds_for_target(info);
1694
monitor/monitor-internal.h
+1 -1
@@ -77,7 +77,7 @@ typedef struct HMPCommand {
77 const char *params;
78 const char *help;
79 const char *flags; /* p=preconfig */
80 - void (*cmd)(Monitor *mon, const QDict *qdict);
80 + void (*cmd)(MonitorHMP *mon, const QDict *qdict);
81 /*
82 * If implementing a command that takes no arguments and simply
83 * prints formatted data, then leave @cmd NULL, and then set
net/net-hmp-cmds.c
+9 -5
@@ -45,8 +45,9 @@ static void hmp_print_client_info(Monitor *mon, NetworkClientInfo *ci)
45 }
46 }
47
48 -void hmp_info_network(Monitor *mon, const QDict *qdict)
48 +void hmp_info_network(MonitorHMP *hmp, const QDict *qdict)
49 {
50 + Monitor *mon = MONITOR(hmp);
51 Error *err = NULL;
52 g_autoptr(NetworkInfo) info = qmp_x_query_network(&err);
53 NetHubInfoList *h;
@@ -83,8 +84,9 @@ void hmp_info_network(Monitor *mon, const QDict *qdict)
84 }
85 }
86
86 -void hmp_set_link(Monitor *mon, const QDict *qdict)
87 +void hmp_set_link(MonitorHMP *hmp, const QDict *qdict)
88 {
89 + Monitor *mon = MONITOR(hmp);
90 const char *name = qdict_get_str(qdict, "name");
91 bool up = qdict_get_bool(qdict, "up");
92 Error *err = NULL;
@@ -94,7 +96,7 @@ void hmp_set_link(Monitor *mon, const QDict *qdict)
96 }
97
98
97 -void hmp_announce_self(Monitor *mon, const QDict *qdict)
99 +void hmp_announce_self(MonitorHMP *hmp, const QDict *qdict)
100 {
101 const char *interfaces_str = qdict_get_try_str(qdict, "interfaces");
102 const char *id = qdict_get_try_str(qdict, "id");
@@ -109,8 +111,9 @@ void hmp_announce_self(Monitor *mon, const QDict *qdict)
111 qapi_free_AnnounceParameters(params);
112 }
113
112 -void hmp_netdev_add(Monitor *mon, const QDict *qdict)
114 +void hmp_netdev_add(MonitorHMP *hmp, const QDict *qdict)
115 {
116 + Monitor *mon = MONITOR(hmp);
117 Error *err = NULL;
118 QemuOpts *opts;
119 const char *type = qdict_get_try_str(qdict, "type");
@@ -133,8 +136,9 @@ out:
136 hmp_handle_error(mon, err);
137 }
138
136 -void hmp_netdev_del(Monitor *mon, const QDict *qdict)
139 +void hmp_netdev_del(MonitorHMP *hmp, const QDict *qdict)
140 {
141 + Monitor *mon = MONITOR(hmp);
142 const char *id = qdict_get_str(qdict, "id");
143 Error *err = NULL;
144
net/slirp.c
+6 -3
@@ -733,8 +733,9 @@ static SlirpState *slirp_lookup(Monitor *mon, const char *id)
733 }
734 }
735
736 -void hmp_hostfwd_remove(Monitor *mon, const QDict *qdict)
736 +void hmp_hostfwd_remove(MonitorHMP *hmp, const QDict *qdict)
737 {
738 + Monitor *mon = MONITOR(hmp);
739 /* TODO: support removing unix fwd */
740 struct sockaddr_in host_addr = {
741 .sin_family = AF_INET,
@@ -957,8 +958,9 @@ static int slirp_hostfwd(SlirpState *s, const char *redir_str, Error **errp)
958 return -1;
959 }
960
960 -void hmp_hostfwd_add(Monitor *mon, const QDict *qdict)
961 +void hmp_hostfwd_add(MonitorHMP *hmp, const QDict *qdict)
962 {
963 + Monitor *mon = MONITOR(hmp);
964 const char *redir_str;
965 SlirpState *s;
966 const char *arg1 = qdict_get_str(qdict, "arg1");
@@ -1224,8 +1226,9 @@ UsernetInfoList *qmp_x_query_usernet(Error **errp)
1226 return head;
1227 }
1228
1227 -void hmp_info_usernet(Monitor *mon, const QDict *qdict)
1229 +void hmp_info_usernet(MonitorHMP *hmp, const QDict *qdict)
1230 {
1231 + Monitor *mon = MONITOR(hmp);
1232 g_autoptr(UsernetInfoList) list = NULL;
1233 UsernetInfoList *entry;
1234
qom/qom-hmp-cmds.c
+12 -6
@@ -18,8 +18,9 @@
18 #include "qom/object.h"
19 #include "qom/object_interfaces.h"
20
21 -void hmp_qom_list(Monitor *mon, const QDict *qdict)
21 +void hmp_qom_list(MonitorHMP *hmp, const QDict *qdict)
22 {
23 + Monitor *mon = MONITOR(hmp);
24 const char *path = qdict_get_try_str(qdict, "path");
25 ObjectPropertyInfoList *list;
26 Error *err = NULL;
@@ -44,8 +45,9 @@ void hmp_qom_list(Monitor *mon, const QDict *qdict)
45 hmp_handle_error(mon, err);
46 }
47
47 -void hmp_qom_set(Monitor *mon, const QDict *qdict)
48 +void hmp_qom_set(MonitorHMP *hmp, const QDict *qdict)
49 {
50 + Monitor *mon = MONITOR(hmp);
51 const bool json = qdict_get_try_bool(qdict, "json", false);
52 const char *path = qdict_get_str(qdict, "path");
53 const char *property = qdict_get_str(qdict, "property");
@@ -72,8 +74,9 @@ void hmp_qom_set(Monitor *mon, const QDict *qdict)
74 hmp_handle_error(mon, err);
75 }
76
75 -void hmp_qom_get(Monitor *mon, const QDict *qdict)
77 +void hmp_qom_get(MonitorHMP *hmp, const QDict *qdict)
78 {
79 + Monitor *mon = MONITOR(hmp);
80 const char *path = qdict_get_str(qdict, "path");
81 const char *property = qdict_get_str(qdict, "property");
82 Error *err = NULL;
@@ -132,8 +135,9 @@ static void print_qom_composition(Monitor *mon, Object *obj, int indent)
135 g_array_free(children, TRUE);
136 }
137
135 -void hmp_info_qom_tree(Monitor *mon, const QDict *dict)
138 +void hmp_info_qom_tree(MonitorHMP *hmp, const QDict *dict)
139 {
140 + Monitor *mon = MONITOR(hmp);
141 const char *path = qdict_get_try_str(dict, "path");
142 Object *obj;
143 bool ambiguous = false;
@@ -154,8 +158,9 @@ void hmp_info_qom_tree(Monitor *mon, const QDict *dict)
158 print_qom_composition(mon, obj, 0);
159 }
160
157 -void hmp_object_add(Monitor *mon, const QDict *qdict)
161 +void hmp_object_add(MonitorHMP *hmp, const QDict *qdict)
162 {
163 + Monitor *mon = MONITOR(hmp);
164 const char *options = qdict_get_str(qdict, "object");
165 Error *err = NULL;
166
@@ -163,8 +168,9 @@ void hmp_object_add(Monitor *mon, const QDict *qdict)
168 hmp_handle_error(mon, err);
169 }
170
166 -void hmp_object_del(Monitor *mon, const QDict *qdict)
171 +void hmp_object_del(MonitorHMP *hmp, const QDict *qdict)
172 {
173 + Monitor *mon = MONITOR(hmp);
174 const char *id = qdict_get_str(qdict, "id");
175 Error *err = NULL;
176
replay/replay-debugging.c
+5 -4
@@ -31,8 +31,9 @@ bool replay_running_debug(void)
31 return replay_is_debugging;
32 }
33
34 -void hmp_info_replay(Monitor *mon, const QDict *qdict)
34 +void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict)
35 {
36 + Monitor *mon = MONITOR(hmp);
37 if (replay_mode == REPLAY_MODE_NONE) {
38 monitor_printf(mon, "Record/replay is not active\n");
39 } else {
@@ -103,7 +104,7 @@ void qmp_replay_break(int64_t icount, Error **errp)
104 }
105 }
106
106 -void hmp_replay_break(Monitor *mon, const QDict *qdict)
107 +void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict)
108 {
109 int64_t icount = qdict_get_try_int(qdict, "icount", -1LL);
110 Error *err = NULL;
@@ -124,7 +125,7 @@ void qmp_replay_delete_break(Error **errp)
125 }
126 }
127
127 -void hmp_replay_delete_break(Monitor *mon, const QDict *qdict)
128 +void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict)
129 {
130 Error *err = NULL;
131
@@ -209,7 +210,7 @@ void qmp_replay_seek(int64_t icount, Error **errp)
210 replay_seek(icount, replay_stop_vm, errp);
211 }
212
212 -void hmp_replay_seek(Monitor *mon, const QDict *qdict)
213 +void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict)
214 {
215 int64_t icount = qdict_get_try_int(qdict, "icount", -1LL);
216 Error *err = NULL;
replay/stubs-system.c
+4 -4
@@ -63,19 +63,19 @@ void replay_vmstate_init(void)
63 #include "qapi/error.h"
64 #include "qemu/error-report.h"
65
66 -void hmp_info_replay(Monitor *mon, const QDict *qdict)
66 +void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict)
67 {
68 error_report("replay support not available");
69 }
70 -void hmp_replay_break(Monitor *mon, const QDict *qdict)
70 +void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict)
71 {
72 error_report("replay support not available");
73 }
74 -void hmp_replay_delete_break(Monitor *mon, const QDict *qdict)
74 +void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict)
75 {
76 error_report("replay support not available");
77 }
78 -void hmp_replay_seek(Monitor *mon, const QDict *qdict)
78 +void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict)
79 {
80 error_report("replay support not available");
81 }
stats/stats-hmp-cmds.c
+2 -1
@@ -187,8 +187,9 @@ static StatsFilter *stats_filter(StatsTarget target, const char *names,
187 return filter;
188 }
189
190 -void hmp_info_stats(Monitor *mon, const QDict *qdict)
190 +void hmp_info_stats(MonitorHMP *hmp, const QDict *qdict)
191 {
192 + Monitor *mon = MONITOR(hmp);
193 const char *target_str = qdict_get_str(qdict, "target");
194 const char *provider_str = qdict_get_try_str(qdict, "provider");
195 const char *names = qdict_get_try_str(qdict, "names");
stubs/hmp-cmd-info_sev.c
+2 -1
@@ -10,7 +10,8 @@
10 #include "monitor/hmp.h"
11 #include "monitor/monitor.h"
12
13 -void hmp_info_sev(Monitor *mon, const QDict *qdict)
13 +void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict)
14 {
15 + Monitor *mon = MONITOR(hmp);
16 monitor_printf(mon, "SEV is not available in this QEMU\n");
17 }
system/dirtylimit-hmp-cmds.c
+6 -3
@@ -15,8 +15,9 @@
15 #include "monitor/monitor.h"
16 #include "system/dirtylimit.h"
17
18 -void hmp_cancel_vcpu_dirty_limit(Monitor *mon, const QDict *qdict)
18 +void hmp_cancel_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict)
19 {
20 + Monitor *mon = MONITOR(hmp);
21 int64_t cpu_index = qdict_get_try_int(qdict, "cpu_index", -1);
22 Error *err = NULL;
23
@@ -30,8 +31,9 @@ void hmp_cancel_vcpu_dirty_limit(Monitor *mon, const QDict *qdict)
31 "dirty limit for virtual CPU]\n");
32 }
33
33 -void hmp_set_vcpu_dirty_limit(Monitor *mon, const QDict *qdict)
34 +void hmp_set_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict)
35 {
36 + Monitor *mon = MONITOR(hmp);
37 int64_t dirty_rate = qdict_get_int(qdict, "dirty_rate");
38 int64_t cpu_index = qdict_get_try_int(qdict, "cpu_index", -1);
39 Error *err = NULL;
@@ -47,8 +49,9 @@ out:
49 hmp_handle_error(mon, err);
50 }
51
50 -void hmp_info_vcpu_dirty_limit(Monitor *mon, const QDict *qdict)
52 +void hmp_info_vcpu_dirty_limit(MonitorHMP *hmp, const QDict *qdict)
53 {
54 + Monitor *mon = MONITOR(hmp);
55 DirtyLimitInfoList *info;
56 g_autoptr(DirtyLimitInfoList) head = NULL;
57 Error *err = NULL;
system/qdev-monitor.c
+7 -4
@@ -851,8 +851,9 @@ static void qbus_print(Monitor *mon, BusState *bus, int indent, bool details)
851 }
852 #undef qdev_printf
853
854 -void hmp_info_qtree(Monitor *mon, const QDict *qdict)
854 +void hmp_info_qtree(MonitorHMP *hmp, const QDict *qdict)
855 {
856 + Monitor *mon = MONITOR(hmp);
857 bool details = !qdict_get_try_bool(qdict, "brief", false);
858
859 if (sysbus_get_default()) {
@@ -860,7 +861,7 @@ void hmp_info_qtree(Monitor *mon, const QDict *qdict)
861 }
862 }
863
863 -void hmp_info_qdm(Monitor *mon, const QDict *qdict)
864 +void hmp_info_qdm(MonitorHMP *hmp, const QDict *qdict)
865 {
866 qdev_print_devinfos(true);
867 }
@@ -1001,8 +1002,9 @@ void qmp_device_sync_config(const char *id, Error **errp)
1002 qdev_sync_config(dev, errp);
1003 }
1004
1004 -void hmp_device_add(Monitor *mon, const QDict *qdict)
1005 +void hmp_device_add(MonitorHMP *hmp, const QDict *qdict)
1006 {
1007 + Monitor *mon = MONITOR(hmp);
1008 Error *err = NULL;
1009 QemuOpts *opts;
1010 DeviceState *dev;
@@ -1035,8 +1037,9 @@ out:
1037 hmp_handle_error(mon, err);
1038 }
1039
1038 -void hmp_device_del(Monitor *mon, const QDict *qdict)
1040 +void hmp_device_del(MonitorHMP *hmp, const QDict *qdict)
1041 {
1042 + Monitor *mon = MONITOR(hmp);
1043 const char *id = qdict_get_str(qdict, "id");
1044 Error *err = NULL;
1045
system/runstate-hmp-cmds.c
+6 -3
@@ -23,8 +23,9 @@
23 #include "qobject/qdict.h"
24 #include "qemu/accel.h"
25
26 -void hmp_info_status(Monitor *mon, const QDict *qdict)
26 +void hmp_info_status(MonitorHMP *hmp, const QDict *qdict)
27 {
28 + Monitor *mon = MONITOR(hmp);
29 StatusInfo *info;
30
31 info = qmp_query_status(NULL);
@@ -41,8 +42,9 @@ void hmp_info_status(Monitor *mon, const QDict *qdict)
42 qapi_free_StatusInfo(info);
43 }
44
44 -void hmp_one_insn_per_tb(Monitor *mon, const QDict *qdict)
45 +void hmp_one_insn_per_tb(MonitorHMP *hmp, const QDict *qdict)
46 {
47 + Monitor *mon = MONITOR(hmp);
48 const char *option = qdict_get_try_str(qdict, "option");
49 AccelState *accel = current_accel();
50 bool newval;
@@ -66,8 +68,9 @@ void hmp_one_insn_per_tb(Monitor *mon, const QDict *qdict)
68 newval, &error_abort);
69 }
70
69 -void hmp_watchdog_action(Monitor *mon, const QDict *qdict)
71 +void hmp_watchdog_action(MonitorHMP *hmp, const QDict *qdict)
72 {
73 + Monitor *mon = MONITOR(hmp);
74 Error *err = NULL;
75 WatchdogAction action;
76 char *qapi_value;
system/tpm-hmp-cmds.c
+2 -1
@@ -11,8 +11,9 @@
11 #include "monitor/hmp.h"
12 #include "qapi/error.h"
13
14 -void hmp_info_tpm(Monitor *mon, const QDict *qdict)
14 +void hmp_info_tpm(MonitorHMP *hmp, const QDict *qdict)
15 {
16 + Monitor *mon = MONITOR(hmp);
17 #ifdef CONFIG_TPM
18 TPMInfoList *info_list, *info;
19 Error *err = NULL;
target/i386/cpu-apic.c
+2 -1
@@ -83,8 +83,9 @@ void x86_cpu_apic_realize(X86CPU *cpu, Error **errp)
83 }
84 }
85
86 -void hmp_info_local_apic(Monitor *mon, const QDict *qdict)
86 +void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict)
87 {
88 + Monitor *mon = MONITOR(hmp);
89 CPUState *cs;
90
91 if (qdict_haskey(qdict, "apic-id")) {
target/i386/monitor.c
+6 -3
@@ -209,8 +209,9 @@ static void tlb_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as)
209 }
210 #endif /* TARGET_X86_64 */
211
212 -void hmp_info_tlb(Monitor *mon, const QDict *qdict)
212 +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
213 {
214 + Monitor *mon = MONITOR(hmp);
215 CPUArchState *env;
216 AddressSpace *as;
217
@@ -535,8 +536,9 @@ static void mem_info_la57(Monitor *mon, CPUArchState *env, AddressSpace *as)
536 }
537 #endif /* TARGET_X86_64 */
538
538 -void hmp_info_mem(Monitor *mon, const QDict *qdict)
539 +void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict)
540 {
541 + Monitor *mon = MONITOR(hmp);
542 CPUArchState *env;
543 AddressSpace *as;
544
@@ -569,8 +571,9 @@ void hmp_info_mem(Monitor *mon, const QDict *qdict)
571 }
572 }
573
572 -void hmp_mce(Monitor *mon, const QDict *qdict)
574 +void hmp_mce(MonitorHMP *hmp, const QDict *qdict)
575 {
576 + Monitor *mon = MONITOR(hmp);
577 X86CPU *cpu;
578 CPUState *cs;
579 int cpu_index = qdict_get_int(qdict, "cpu_index");
target/i386/sev.c
+2 -1
@@ -784,8 +784,9 @@ SevInfo *qmp_query_sev(Error **errp)
784 return info;
785 }
786
787 -void hmp_info_sev(Monitor *mon, const QDict *qdict)
787 +void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict)
788 {
789 + Monitor *mon = MONITOR(hmp);
790 SevInfo *info = sev_get_info();
791
792 if (!info || !info->enabled) {
target/m68k/monitor.c
+2 -1
@@ -10,8 +10,9 @@
10 #include "monitor/hmp.h"
11 #include "monitor/monitor.h"
12
13 -void hmp_info_tlb(Monitor *mon, const QDict *qdict)
13 +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
14 {
15 + Monitor *mon = MONITOR(hmp);
16 CPUArchState *env1 = mon_get_cpu_env(mon);
17
18 if (!env1) {
target/ppc/monitor.c
+2 -1
@@ -11,8 +11,9 @@
11 #include "monitor/hmp.h"
12 #include "cpu.h"
13
14 -void hmp_info_tlb(Monitor *mon, const QDict *qdict)
14 +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
15 {
16 + Monitor *mon = MONITOR(hmp);
17 CPUArchState *env1 = mon_get_cpu_env(mon);
18
19 if (!env1) {
target/riscv/monitor.c
+2 -1
@@ -215,8 +215,9 @@ static void mem_info_svxx(Monitor *mon, CPUArchState *env)
215 last_paddr + last_size - pbase, last_attr);
216 }
217
218 -void hmp_info_mem(Monitor *mon, const QDict *qdict)
218 +void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict)
219 {
220 + Monitor *mon = MONITOR(hmp);
221 CPUArchState *env;
222
223 env = mon_get_cpu_env(mon);
target/sh4/monitor.c
+2 -1
@@ -38,8 +38,9 @@ static void print_tlb(Monitor *mon, int idx, tlb_t *tlb)
38 tlb->d, tlb->wt);
39 }
40
41 -void hmp_info_tlb(Monitor *mon, const QDict *qdict)
41 +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
42 {
43 + Monitor *mon = MONITOR(hmp);
44 CPUArchState *env = mon_get_cpu_env(mon);
45 int i;
46
target/sparc/monitor.c
+2 -1
@@ -27,8 +27,9 @@
27 #include "monitor/hmp.h"
28
29
30 -void hmp_info_tlb(Monitor *mon, const QDict *qdict)
30 +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
31 {
32 + Monitor *mon = MONITOR(hmp);
33 CPUArchState *env1 = mon_get_cpu_env(mon);
34
35 if (!env1) {
target/xtensa/monitor.c
+2 -1
@@ -26,8 +26,9 @@
26 #include "monitor/monitor.h"
27 #include "monitor/hmp.h"
28
29 -void hmp_info_tlb(Monitor *mon, const QDict *qdict)
29 +void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
30 {
31 + Monitor *mon = MONITOR(hmp);
32 CPUArchState *env1 = mon_get_cpu_env(mon);
33
34 if (!env1) {
trace/trace-hmp-cmds.c
+5 -3
@@ -33,7 +33,7 @@
33 #include "trace/simple.h"
34 #endif
35
36 -void hmp_trace_event(Monitor *mon, const QDict *qdict)
36 +void hmp_trace_event(MonitorHMP *hmp, const QDict *qdict)
37 {
38 const char *tp_name = qdict_get_str(qdict, "name");
39 bool new_state = qdict_get_bool(qdict, "option");
@@ -47,8 +47,9 @@ void hmp_trace_event(Monitor *mon, const QDict *qdict)
47 }
48
49 #ifdef CONFIG_TRACE_SIMPLE
50 -void hmp_trace_file(Monitor *mon, const QDict *qdict)
50 +void hmp_trace_file(MonitorHMP *hmp, const QDict *qdict)
51 {
52 + Monitor *mon = MONITOR(hmp);
53 const char *op = qdict_get_try_str(qdict, "op");
54 const char *arg = qdict_get_try_str(qdict, "arg");
55
@@ -71,8 +72,9 @@ void hmp_trace_file(Monitor *mon, const QDict *qdict)
72 }
73 #endif
74
74 -void hmp_info_trace_events(Monitor *mon, const QDict *qdict)
75 +void hmp_info_trace_events(MonitorHMP *hmp, const QDict *qdict)
76 {
77 + Monitor *mon = MONITOR(hmp);
78 const char *name = qdict_get_try_str(qdict, "name");
79 TraceEventInfoList *events;
80 TraceEventInfoList *elem;
ui/ui-hmp-cmds.c
+20 -11
@@ -29,7 +29,7 @@
29
30 static int mouse_button_state;
31
32 -void hmp_mouse_move(Monitor *mon, const QDict *qdict)
32 +void hmp_mouse_move(MonitorHMP *hmp, const QDict *qdict)
33 {
34 int dx, dy, dz, button;
35 const char *dx_str = qdict_get_str(qdict, "dx_str");
@@ -53,7 +53,7 @@ void hmp_mouse_move(Monitor *mon, const QDict *qdict)
53 qemu_input_event_sync();
54 }
55
56 -void hmp_mouse_button(Monitor *mon, const QDict *qdict)
56 +void hmp_mouse_button(MonitorHMP *hmp, const QDict *qdict)
57 {
58 /* HMP mouse_button bitmask: 1=L, 2=R, 4=M */
59 static uint32_t bmap[INPUT_BUTTON__MAX] = {
@@ -71,16 +71,18 @@ void hmp_mouse_button(Monitor *mon, const QDict *qdict)
71 mouse_button_state = button_state;
72 }
73
74 -void hmp_mouse_set(Monitor *mon, const QDict *qdict)
74 +void hmp_mouse_set(MonitorHMP *hmp, const QDict *qdict)
75 {
76 + Monitor *mon = MONITOR(hmp);
77 Error *err = NULL;
78
79 qemu_mouse_set(qdict_get_int(qdict, "index"), &err);
80 hmp_handle_error(mon, err);
81 }
82
82 -void hmp_info_mice(Monitor *mon, const QDict *qdict)
83 +void hmp_info_mice(MonitorHMP *hmp, const QDict *qdict)
84 {
85 + Monitor *mon = MONITOR(hmp);
86 MouseInfoList *mice_list, *mouse;
87
88 mice_list = qmp_query_mice(NULL);
@@ -148,8 +150,9 @@ static void hmp_info_vnc_servers(Monitor *mon, VncServerInfo2List *server)
150 }
151 }
152
151 -void hmp_info_vnc(Monitor *mon, const QDict *qdict)
153 +void hmp_info_vnc(MonitorHMP *hmp, const QDict *qdict)
154 {
155 + Monitor *mon = MONITOR(hmp);
156 VncInfo2List *info2l, *info2l_head;
157 Error *err = NULL;
158
@@ -189,8 +192,9 @@ void hmp_info_vnc(Monitor *mon, const QDict *qdict)
192 #endif
193
194 #ifdef CONFIG_SPICE
192 -void hmp_info_spice(Monitor *mon, const QDict *qdict)
195 +void hmp_info_spice(MonitorHMP *hmp, const QDict *qdict)
196 {
197 + Monitor *mon = MONITOR(hmp);
198 SpiceChannelList *chan;
199 SpiceInfo *info;
200 const char *channel_name;
@@ -260,8 +264,9 @@ out:
264 }
265 #endif
266
263 -void hmp_set_password(Monitor *mon, const QDict *qdict)
267 +void hmp_set_password(MonitorHMP *hmp, const QDict *qdict)
268 {
269 + Monitor *mon = MONITOR(hmp);
270 const char *protocol = qdict_get_str(qdict, "protocol");
271 const char *password = qdict_get_str(qdict, "password");
272 const char *display = qdict_get_try_str(qdict, "display");
@@ -295,8 +300,9 @@ out:
300 hmp_handle_error(mon, err);
301 }
302
298 -void hmp_expire_password(Monitor *mon, const QDict *qdict)
303 +void hmp_expire_password(MonitorHMP *hmp, const QDict *qdict)
304 {
305 + Monitor *mon = MONITOR(hmp);
306 const char *protocol = qdict_get_str(qdict, "protocol");
307 const char *whenstr = qdict_get_str(qdict, "time");
308 const char *display = qdict_get_try_str(qdict, "display");
@@ -366,8 +372,9 @@ static int index_from_key(const char *key, size_t key_length)
372 return i;
373 }
374
369 -void hmp_sendkey(Monitor *mon, const QDict *qdict)
375 +void hmp_sendkey(MonitorHMP *hmp, const QDict *qdict)
376 {
377 + Monitor *mon = MONITOR(hmp);
378 const char *keys = qdict_get_str(qdict, "keys");
379 KeyValue *v = NULL;
380 KeyValueList *head = NULL, **tail = &head;
@@ -456,8 +463,9 @@ void sendkey_completion(ReadLineState *rs, int nb_args, const char *str)
463
464 #ifdef CONFIG_PIXMAN
465 void coroutine_fn
459 -hmp_screendump(Monitor *mon, const QDict *qdict)
466 +hmp_screendump(MonitorHMP *hmp, const QDict *qdict)
467 {
468 + Monitor *mon = MONITOR(hmp);
469 const char *filename = qdict_get_str(qdict, "filename");
470 const char *id = qdict_get_try_str(qdict, "device");
471 int64_t head = qdict_get_try_int(qdict, "head", 0);
@@ -478,8 +486,9 @@ end:
486 }
487 #endif
488
481 -void hmp_client_migrate_info(Monitor *mon, const QDict *qdict)
489 +void hmp_client_migrate_info(MonitorHMP *hmp, const QDict *qdict)
490 {
491 + Monitor *mon = MONITOR(hmp);
492 Error *err = NULL;
493 const char *protocol = qdict_get_str(qdict, "protocol");
494 const char *hostname = qdict_get_str(qdict, "hostname");