blob: 13f9a2dedb89e6b853d5856f0efd9d14c4bb1fba [file] [log] [blame]
Anthony Liguori48a32be2011-09-02 12:34:48 -05001/*
2 * Human Monitor Interface
3 *
4 * Copyright IBM, Corp. 2011
5 *
6 * Authors:
7 * Anthony Liguori <aliguori@us.ibm.com>
8 *
9 * This work is licensed under the terms of the GNU GPL, version 2. See
10 * the COPYING file in the top-level directory.
11 *
12 */
13
14#ifndef HMP_H
15#define HMP_H
16
Hani Benhabilesbfa40f72014-04-13 16:25:06 +010017#include "qemu/readline.h"
Daniel P. Berrangéf9429c62021-10-08 15:09:00 +010018#include "qapi/qapi-types-common.h"
Anthony Liguori48a32be2011-09-02 12:34:48 -050019
Daniel P. Berrangé0ca117a2021-10-28 16:18:25 +010020bool hmp_handle_error(Monitor *mon, Error *err);
Markus Armbruster5ec92f22023-01-24 13:19:21 +010021void hmp_help_cmd(Monitor *mon, const char *name);
Markus Armbruster0d792712023-01-24 13:19:28 +010022strList *hmp_split_at_comma(const char *str);
Markus Armbruster3950a372019-06-19 22:10:39 +020023
Wenchao Xia84f2d0e2013-01-14 14:06:25 +080024void hmp_info_name(Monitor *mon, const QDict *qdict);
25void hmp_info_version(Monitor *mon, const QDict *qdict);
26void hmp_info_kvm(Monitor *mon, const QDict *qdict);
27void hmp_info_status(Monitor *mon, const QDict *qdict);
28void hmp_info_uuid(Monitor *mon, const QDict *qdict);
29void hmp_info_chardev(Monitor *mon, const QDict *qdict);
30void hmp_info_mice(Monitor *mon, const QDict *qdict);
31void hmp_info_migrate(Monitor *mon, const QDict *qdict);
32void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict);
Liang Li50e9a622015-03-23 16:32:29 +080033void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict);
Wenchao Xia84f2d0e2013-01-14 14:06:25 +080034void hmp_info_cpus(Monitor *mon, const QDict *qdict);
Wenchao Xia84f2d0e2013-01-14 14:06:25 +080035void hmp_info_vnc(Monitor *mon, const QDict *qdict);
36void hmp_info_spice(Monitor *mon, const QDict *qdict);
37void hmp_info_balloon(Monitor *mon, const QDict *qdict);
Hervé Poussineau61b97832016-09-26 22:23:27 +020038void hmp_info_irq(Monitor *mon, const QDict *qdict);
39void hmp_info_pic(Monitor *mon, const QDict *qdict);
Yuval Shaiaf4b2c022019-03-11 03:29:09 -070040void hmp_info_rdma(Monitor *mon, const QDict *qdict);
Wenchao Xia84f2d0e2013-01-14 14:06:25 +080041void hmp_info_pci(Monitor *mon, const QDict *qdict);
Stefan Bergerd1a0cf72013-02-27 12:47:49 -050042void hmp_info_tpm(Monitor *mon, const QDict *qdict);
Ting Wang62313162015-06-26 16:07:13 +080043void hmp_info_iothreads(Monitor *mon, const QDict *qdict);
Luiz Capitulino7a7f3252011-09-15 14:20:28 -030044void hmp_quit(Monitor *mon, const QDict *qdict);
Luiz Capitulino5f158f22011-09-15 14:34:39 -030045void hmp_stop(Monitor *mon, const QDict *qdict);
Emilio G. Cotadd12e1b2018-08-15 16:00:03 -040046void hmp_sync_profile(Monitor *mon, const QDict *qdict);
Luiz Capitulino38d22652011-09-15 14:41:46 -030047void hmp_system_reset(Monitor *mon, const QDict *qdict);
Luiz Capitulino5bc465e2011-09-28 11:06:15 -030048void hmp_system_powerdown(Monitor *mon, const QDict *qdict);
Dr. David Alan Gilbert8e8581e2018-06-20 16:39:46 +010049void hmp_exit_preconfig(Monitor *mon, const QDict *qdict);
Dr. David Alan Gilbert544f6ea2019-02-27 13:24:12 +000050void hmp_announce_self(Monitor *mon, const QDict *qdict);
Luiz Capitulino755f1962011-10-06 14:31:39 -030051void hmp_cpu(Monitor *mon, const QDict *qdict);
Luiz Capitulino0cfd6a92011-11-22 16:32:37 -020052void hmp_memsave(Monitor *mon, const QDict *qdict);
Luiz Capitulino6d3962b2011-11-22 17:26:46 -020053void hmp_pmemsave(Monitor *mon, const QDict *qdict);
Markus Armbruster3949e592013-02-06 21:27:24 +010054void hmp_ringbuf_write(Monitor *mon, const QDict *qdict);
55void hmp_ringbuf_read(Monitor *mon, const QDict *qdict);
Luiz Capitulinoe42e8182011-11-22 17:58:31 -020056void hmp_cont(Monitor *mon, const QDict *qdict);
Gerd Hoffmann9b9df252012-02-23 13:45:21 +010057void hmp_system_wakeup(Monitor *mon, const QDict *qdict);
Markus Armbruster3e5a50d2015-02-06 13:55:43 +010058void hmp_nmi(Monitor *mon, const QDict *qdict);
Markus Armbrusterae71d132023-01-24 13:19:30 +010059void hmp_info_network(Monitor *mon, const QDict *qdict);
Luiz Capitulino4b371562011-11-23 13:11:55 -020060void hmp_set_link(Monitor *mon, const QDict *qdict);
Luiz Capitulinod72f3262011-11-25 14:38:09 -020061void hmp_balloon(Monitor *mon, const QDict *qdict);
Juan Quintela52b26202017-04-18 11:40:56 +020062void hmp_loadvm(Monitor *mon, const QDict *qdict);
Juan Quintelad9c7d132017-04-18 11:44:16 +020063void hmp_savevm(Monitor *mon, const QDict *qdict);
Juan Quintelad905bb72017-04-18 11:46:23 +020064void hmp_delvm(Monitor *mon, const QDict *qdict);
Luiz Capitulino6cdedb02011-11-27 22:54:09 -020065void hmp_migrate_cancel(Monitor *mon, const QDict *qdict);
Dr. David Alan Gilbert94ae12c2017-10-20 10:05:54 +010066void hmp_migrate_continue(Monitor *mon, const QDict *qdict);
Dr. David Alan Gilbertbf1ae1f2015-02-19 11:40:28 +000067void hmp_migrate_incoming(Monitor *mon, const QDict *qdict);
Peter Xu3b563c42018-05-02 18:47:37 +080068void hmp_migrate_recover(Monitor *mon, const QDict *qdict);
Peter Xud37297d2018-05-02 18:47:40 +080069void hmp_migrate_pause(Monitor *mon, const QDict *qdict);
Orit Wasserman00458432012-08-06 21:42:48 +030070void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict);
Liang Li50e9a622015-03-23 16:32:29 +080071void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict);
Markus Armbrusterb8a185b2015-03-05 17:29:02 +010072void hmp_client_migrate_info(Monitor *mon, const QDict *qdict);
Dr. David Alan Gilbert4886a1b2015-11-05 18:10:56 +000073void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict);
zhanghailiangd89e6662016-10-27 14:43:03 +080074void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict);
Luiz Capitulinofbf796f2011-12-07 11:17:51 -020075void hmp_set_password(Monitor *mon, const QDict *qdict);
Luiz Capitulino9ad53722011-12-07 11:47:57 -020076void hmp_expire_password(Monitor *mon, const QDict *qdict);
Luiz Capitulino333a96e2011-12-08 11:13:50 -020077void hmp_change(Monitor *mon, const QDict *qdict);
Markus Armbrusterf916a172023-01-09 20:03:17 +010078#ifdef CONFIG_VNC
79void hmp_change_vnc(Monitor *mon, const char *device, const char *target,
80 const char *arg, const char *read_only, bool force,
81 Error **errp);
82#endif
Markus Armbrusterfa1d2f82023-01-24 13:19:26 +010083void hmp_change_medium(Monitor *mon, const char *device, const char *target,
84 const char *arg, const char *read_only, bool force,
85 Error **errp);
Luiz Capitulinoe1c37d02011-12-05 14:48:01 -020086void hmp_migrate(Monitor *mon, const QDict *qdict);
Markus Armbruster318660f2015-03-05 17:24:48 +010087void hmp_device_add(Monitor *mon, const QDict *qdict);
Luiz Capitulinoa15fef22012-03-29 12:38:50 -030088void hmp_device_del(Monitor *mon, const QDict *qdict);
Wen Congyang783e9b42012-05-07 12:10:47 +080089void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict);
Luiz Capitulino928059a2012-04-18 17:34:15 -030090void hmp_netdev_add(Monitor *mon, const QDict *qdict);
Luiz Capitulino5f964152012-04-16 14:36:32 -030091void hmp_netdev_del(Monitor *mon, const QDict *qdict);
Corey Bryant208c9d12012-06-22 14:36:09 -040092void hmp_getfd(Monitor *mon, const QDict *qdict);
93void hmp_closefd(Monitor *mon, const QDict *qdict);
Markus Armbruster5011d262023-01-09 20:03:15 +010094void hmp_mouse_move(Monitor *mon, const QDict *qdict);
95void hmp_mouse_button(Monitor *mon, const QDict *qdict);
Markus Armbrusterec843b92023-01-09 20:03:20 +010096void hmp_mouse_set(Monitor *mon, const QDict *qdict);
Markus Armbruster3e5a50d2015-02-06 13:55:43 +010097void hmp_sendkey(Monitor *mon, const QDict *qdict);
Alberto Faria6894ee22022-10-13 14:36:50 +020098void coroutine_fn hmp_screendump(Monitor *mon, const QDict *qdict);
Gerd Hoffmannf1088902012-12-19 10:33:40 +010099void hmp_chardev_add(Monitor *mon, const QDict *qdict);
Anton Nefedov75b60162017-07-06 15:08:57 +0300100void hmp_chardev_change(Monitor *mon, const QDict *qdict);
Gerd Hoffmannf1088902012-12-19 10:33:40 +0100101void hmp_chardev_remove(Monitor *mon, const QDict *qdict);
Stefan Fritschbd1d5ad2017-06-11 09:48:17 +0200102void hmp_chardev_send_break(Monitor *mon, const QDict *qdict);
Paolo Bonzinicff8b2c2013-12-20 23:21:10 +0100103void hmp_object_add(Monitor *mon, const QDict *qdict);
Paolo Bonziniab2d0532013-12-20 23:21:09 +0100104void hmp_object_del(Monitor *mon, const QDict *qdict);
Hu Taoeb1539b2014-05-14 17:43:35 +0800105void hmp_info_memdev(Monitor *mon, const QDict *qdict);
Markus Armbruster55225c82019-06-19 22:10:44 +0200106void hmp_info_numa(Monitor *mon, const QDict *qdict);
Zhu Guihuaa6318922014-09-23 13:35:19 +0800107void hmp_info_memory_devices(Monitor *mon, const QDict *qdict);
Andreas Färber89d7fa92014-05-07 18:08:29 +0200108void hmp_qom_list(Monitor *mon, const QDict *qdict);
Dr. David Alan Gilbert89cf4fe2020-05-20 16:11:07 +0100109void hmp_qom_get(Monitor *mon, const QDict *qdict);
Andreas Färberc0e6ee92014-05-07 19:48:15 +0200110void hmp_qom_set(Monitor *mon, const QDict *qdict);
Markus Armbruster3950a372019-06-19 22:10:39 +0200111void hmp_info_qom_tree(Monitor *mon, const QDict *dict);
Laurent Vivier8a828792022-08-11 08:24:44 -0400112void hmp_virtio_query(Monitor *mon, const QDict *qdict);
113void hmp_virtio_status(Monitor *mon, const QDict *qdict);
114void hmp_virtio_queue_status(Monitor *mon, const QDict *qdict);
115void hmp_vhost_queue_status(Monitor *mon, const QDict *qdict);
116void hmp_virtio_queue_element(Monitor *mon, const QDict *qdict);
Joao Martins507cb642018-08-21 12:16:19 -0400117void hmp_xen_event_inject(Monitor *mon, const QDict *qdict);
118void hmp_xen_event_list(Monitor *mon, const QDict *qdict);
Hani Benhabilesbfa40f72014-04-13 16:25:06 +0100119void object_add_completion(ReadLineState *rs, int nb_args, const char *str);
120void object_del_completion(ReadLineState *rs, int nb_args, const char *str);
Hani Benhabiles2da1b3a2014-04-13 16:25:07 +0100121void device_add_completion(ReadLineState *rs, int nb_args, const char *str);
122void device_del_completion(ReadLineState *rs, int nb_args, const char *str);
Hani Benhabiles29136cd2014-05-07 23:41:27 +0100123void sendkey_completion(ReadLineState *rs, int nb_args, const char *str);
Hani Benhabiles6297d9a2014-05-07 23:41:28 +0100124void chardev_remove_completion(ReadLineState *rs, int nb_args, const char *str);
Hani Benhabiles13e315d2014-05-07 23:41:29 +0100125void chardev_add_completion(ReadLineState *rs, int nb_args, const char *str);
Hani Benhabiles40d19392014-05-07 23:41:30 +0100126void set_link_completion(ReadLineState *rs, int nb_args, const char *str);
Hani Benhabilesb162b492014-05-07 23:41:31 +0100127void netdev_add_completion(ReadLineState *rs, int nb_args, const char *str);
Hani Benhabiles11b389f2014-05-07 23:41:32 +0100128void netdev_del_completion(ReadLineState *rs, int nb_args, const char *str);
Hani Benhabiles8e597772014-05-27 23:39:30 +0100129void ringbuf_write_completion(ReadLineState *rs, int nb_args, const char *str);
Lluís Vilanovabd712112016-07-11 12:53:51 +0200130void info_trace_events_completion(ReadLineState *rs, int nb_args, const char *str);
Dr. David Alan Gilbert987bd272015-08-14 11:27:43 +0100131void trace_event_completion(ReadLineState *rs, int nb_args, const char *str);
Hani Benhabilesd0ece342014-05-27 23:39:31 +0100132void watchdog_action_completion(ReadLineState *rs, int nb_args,
133 const char *str);
Hani Benhabilesc68a0402014-05-27 23:39:32 +0100134void migrate_set_capability_completion(ReadLineState *rs, int nb_args,
135 const char *str);
Liang Li50e9a622015-03-23 16:32:29 +0800136void migrate_set_parameter_completion(ReadLineState *rs, int nb_args,
137 const char *str);
Hani Benhabilesb21631f2014-05-27 23:39:37 +0100138void delvm_completion(ReadLineState *rs, int nb_args, const char *str);
139void loadvm_completion(ReadLineState *rs, int nb_args, const char *str);
Scott Feldmanfafa4d52015-06-10 18:21:21 -0700140void hmp_rocker(Monitor *mon, const QDict *qdict);
141void hmp_rocker_ports(Monitor *mon, const QDict *qdict);
142void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict);
143void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict);
Peter Xu4a6b52d2016-02-18 13:16:55 +0800144void hmp_info_dump(Monitor *mon, const QDict *qdict);
Peter Xube9b23c2017-05-12 12:17:41 +0800145void hmp_info_ramblock(Monitor *mon, const QDict *qdict);
Bharata B Raod2d8d462016-06-10 06:29:07 +0530146void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict);
Igor Mammedov39164c12017-02-16 15:15:37 -0800147void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict);
Vadim Galitsynd0f63c12017-08-29 17:30:22 +0200148void hmp_info_memory_size_summary(Monitor *mon, const QDict *qdict);
Pavel Dovgalyuke3b09ad2020-10-03 20:13:20 +0300149void hmp_info_replay(Monitor *mon, const QDict *qdict);
Pavel Dovgalyuke7510672020-10-03 20:13:26 +0300150void hmp_replay_break(Monitor *mon, const QDict *qdict);
151void hmp_replay_delete_break(Monitor *mon, const QDict *qdict);
Pavel Dovgalyukf6baed32020-10-03 20:13:31 +0300152void hmp_replay_seek(Monitor *mon, const QDict *qdict);
Peter Xua4a571d2021-06-07 09:11:57 +0800153void hmp_info_dirty_rate(Monitor *mon, const QDict *qdict);
154void hmp_calc_dirty_rate(Monitor *mon, const QDict *qdict);
Hyman Huang(黄勇)f3b2e382022-06-26 01:38:36 +0800155void hmp_set_vcpu_dirty_limit(Monitor *mon, const QDict *qdict);
156void hmp_cancel_vcpu_dirty_limit(Monitor *mon, const QDict *qdict);
157void hmp_info_vcpu_dirty_limit(Monitor *mon, const QDict *qdict);
Daniel P. Berrangéf9429c62021-10-08 15:09:00 +0100158void hmp_human_readable_text_helper(Monitor *mon,
159 HumanReadableText *(*qmp_handler)(Error **));
Mark Kanda433815f2022-04-26 12:17:35 +0200160void hmp_info_stats(Monitor *mon, const QDict *qdict);
Peter Maydelle9ccfdd2023-04-17 17:40:39 +0100161void hmp_one_insn_per_tb(Monitor *mon, const QDict *qdict);
Markus Armbrusterbab46b82023-01-24 13:19:35 +0100162void hmp_watchdog_action(Monitor *mon, const QDict *qdict);
Markus Armbrusterd0e67292022-12-01 13:11:29 +0100163void hmp_pcie_aer_inject_error(Monitor *mon, const QDict *qdict);
Markus Armbruster98b53622023-01-24 13:19:16 +0100164void hmp_info_capture(Monitor *mon, const QDict *qdict);
165void hmp_stopcapture(Monitor *mon, const QDict *qdict);
166void hmp_wavcapture(Monitor *mon, const QDict *qdict);
Markus Armbruster29b62a12023-01-24 13:19:22 +0100167void hmp_trace_event(Monitor *mon, const QDict *qdict);
168void hmp_trace_file(Monitor *mon, const QDict *qdict);
169void hmp_info_trace_events(Monitor *mon, const QDict *qdict);
Markus Armbrustercbf81992023-01-24 13:19:43 +0100170void hmp_help(Monitor *mon, const QDict *qdict);
171void hmp_info_help(Monitor *mon, const QDict *qdict);
172void hmp_info_sync_profile(Monitor *mon, const QDict *qdict);
173void hmp_info_history(Monitor *mon, const QDict *qdict);
174void hmp_logfile(Monitor *mon, const QDict *qdict);
175void hmp_log(Monitor *mon, const QDict *qdict);
176void hmp_gdbserver(Monitor *mon, const QDict *qdict);
177void hmp_print(Monitor *mon, const QDict *qdict);
178void hmp_sum(Monitor *mon, const QDict *qdict);
179void hmp_ioport_read(Monitor *mon, const QDict *qdict);
180void hmp_ioport_write(Monitor *mon, const QDict *qdict);
181void hmp_boot_set(Monitor *mon, const QDict *qdict);
182void hmp_info_mtree(Monitor *mon, const QDict *qdict);
zhenwei pief520912023-03-01 18:58:42 +0800183void hmp_info_cryptodev(Monitor *mon, const QDict *qdict);
Anthony Liguori48a32be2011-09-02 12:34:48 -0500184
185#endif