@@ -109,7 +109,9 @@ void accel_init_ops_interfaces(AccelClass *ac)
static void accel_ops_class_init(ObjectClass *oc, const void *data)
{
+#ifdef CONFIG_HMP
monitor_register_hmp_info_hrt("accel", qmp_x_accel_stats);
+#endif
}
static const TypeInfo accel_ops_type_info = {
@@ -30,9 +30,11 @@ HumanReadableText *qmp_x_query_jit(Error **errp)
return human_readable_text_from_str(buf);
}
+#ifdef CONFIG_HMP
static void hmp_tcg_register(void)
{
monitor_register_hmp_info_hrt("jit", qmp_x_query_jit);
}
type_init(hmp_tcg_register);
+#endif
@@ -40,6 +40,7 @@ void xen_primary_console_set_be_port(uint16_t port)
{
}
+#ifdef CONFIG_HMP
void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict)
{
monitor_hmp_printf(hmp, "XEN emulation is not available in this QEMU\n");
@@ -49,3 +50,4 @@ void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict)
{
monitor_hmp_printf(hmp, "XEN emulation is not available in this QEMU\n");
}
+#endif
@@ -2344,6 +2344,7 @@ void qmp_xen_event_inject(uint32_t port, Error **errp)
}
}
+#ifdef CONFIG_HMP
void hmp_xen_event_list(MonitorHMP *hmp, const QDict *qdict)
{
EvtchnInfoList *iter, *info_list;
@@ -2391,3 +2392,5 @@ void hmp_xen_event_inject(MonitorHMP *hmp, const QDict *qdict)
monitor_hmp_printf(hmp, "Delivered port %d\n", port);
}
}
+
+#endif
@@ -234,6 +234,7 @@ SgxInfo *qmp_query_sgx(Error **errp)
return info;
}
+#ifdef CONFIG_HMP
void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict)
{
Error *err = NULL;
@@ -265,6 +266,7 @@ void hmp_info_sgx(MonitorHMP *hmp, const QDict *qdict)
monitor_hmp_printf(hmp, "total size=%" PRIu64 "\n",
size);
}
+#endif
bool check_sgx_support(void)
{
@@ -10,7 +10,9 @@
#include "monitor/monitor.h"
#include "monitor/hmp.h"
+#ifdef CONFIG_HMP
void hmp_info_via(MonitorHMP *hmp, const QDict *qdict)
{
monitor_hmp_printf(hmp, "MOS6522 VIA is not available in this QEMU\n");
}
+#endif
@@ -497,6 +497,7 @@ void mos6522_write(void *opaque, hwaddr addr, uint64_t val, unsigned size)
}
}
+#ifdef CONFIG_HMP
static int qmp_x_query_via_foreach(Object *obj, void *opaque)
{
GString *buf = opaque;
@@ -597,6 +598,7 @@ void hmp_info_via(MonitorHMP *hmp, const QDict *qdict)
}
monitor_puts(mon, info->human_readable_text);
}
+#endif /* CONFIG_HMP */
static const MemoryRegionOps mos6522_ops = {
.read = mos6522_read,
@@ -34,6 +34,7 @@ PciInfoList *qmp_query_pci(Error **errp)
return NULL;
}
+#ifdef CONFIG_HMP
void hmp_info_pci(MonitorHMP *hmp, const QDict *qdict)
{
}
@@ -42,6 +43,7 @@ void hmp_pcie_aer_inject_error(MonitorHMP *hmp, const QDict *qdict)
{
monitor_hmp_printf(hmp, "PCI devices not supported\n");
}
+#endif
/* kvm-all wants this */
MSIMessage pci_get_msi_message(PCIDevice *dev, int vector)
@@ -104,6 +104,7 @@ static void write_keys(FILE *f, uint8_t *keys, uint64_t startgfn,
}
}
+#ifdef CONFIG_HMP
void hmp_info_skeys(MonitorHMP *hmp, const QDict *qdict)
{
S390SKeysState *ss = s390_get_skeys_device();
@@ -144,6 +145,7 @@ void hmp_dump_skeys(MonitorHMP *hmp, const QDict *qdict)
error_report_err(err);
}
}
+#endif
void s390_qmp_dump_skeys(const char *filename, Error **errp)
{
@@ -32,6 +32,7 @@
#define STATTR_FLAG_ERROR 0x04ULL
#define STATTR_FLAG_DONE 0x08ULL
+#ifdef CONFIG_HMP
static S390StAttribState *s390_get_stattrib_device(void)
{
S390StAttribState *sas;
@@ -40,6 +41,7 @@ static S390StAttribState *s390_get_stattrib_device(void)
assert(sas);
return sas;
}
+#endif
void s390_stattrib_init(void)
{
@@ -59,6 +61,7 @@ void s390_stattrib_init(void)
/* Console commands: */
+#ifdef CONFIG_HMP
void hmp_migrationmode(MonitorHMP *hmp, const QDict *qdict)
{
S390StAttribState *sas = s390_get_stattrib_device();
@@ -110,6 +113,7 @@ void hmp_info_cmma(MonitorHMP *hmp, const QDict *qdict)
out:
g_free(vals);
}
+#endif
/* Migration support: */
@@ -256,6 +256,7 @@ FirmwareLog *qmp_query_firmware_log(bool have_max_size, uint64_t max_size,
return ret;
}
+#ifdef CONFIG_HMP
void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict)
{
g_autofree gchar *log_esc = NULL;
@@ -284,3 +285,4 @@ void hmp_info_firmware_log(MonitorHMP *hmp, const QDict *qdict)
log_esc = g_strescape((gchar *)log_out, "\r\n");
monitor_hmp_printf(hmp, "%s\n", log_esc);
}
+#endif
@@ -184,6 +184,7 @@ static void usb_host_attach_kernel(USBHostDevice *s);
# define HAVE_SUPER_PLUS 1
#endif
+#ifdef CONFIG_HMP
static const char *speed_name[] = {
[LIBUSB_SPEED_UNKNOWN] = "?",
[LIBUSB_SPEED_LOW] = "1.5",
@@ -194,6 +195,7 @@ static const char *speed_name[] = {
[LIBUSB_SPEED_SUPER_PLUS] = "5000+",
#endif
};
+#endif
static const unsigned int speed_map[] = {
[LIBUSB_SPEED_LOW] = USB_SPEED_LOW,
@@ -1815,7 +1817,9 @@ module_kconfig(USB);
static void usb_host_register_types(void)
{
type_register_static(&usb_host_dev_info);
+#ifdef CONFIG_HMP
monitor_register_hmp("usbhost", true, hmp_info_usbhost);
+#endif
}
type_init(usb_host_register_types)
@@ -1920,6 +1924,7 @@ static void usb_host_auto_check(void *unused)
timer_mod(usb_auto_timer, qemu_clock_get_ms(QEMU_CLOCK_REALTIME) + 2000);
}
+#ifdef CONFIG_HMP
void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict)
{
libusb_device **devs = NULL;
@@ -1963,3 +1968,4 @@ void hmp_info_usbhost(MonitorHMP *hmp, const QDict *qdict)
}
libusb_free_device_list(devs, 1);
}
+#endif
@@ -856,6 +856,7 @@ struct DirtyRateInfo *qmp_query_dirty_rate(bool has_calc_time_unit,
has_calc_time_unit ? calc_time_unit : TIME_UNIT_SECOND);
}
+#ifdef CONFIG_HMP
void hmp_info_dirty_rate(MonitorHMP *hmp, const QDict *qdict)
{
DirtyRateInfo *info = query_dirty_rate_info(TIME_UNIT_SECOND);
@@ -932,3 +933,4 @@ void hmp_calc_dirty_rate(MonitorHMP *hmp, const QDict *qdict)
" seconds\n", sec);
monitor_hmp_printf(hmp, "[Please use 'info dirty_rate' to check results]\n");
}
+#endif
@@ -42,6 +42,7 @@
#include "disas/disas.h"
/* Please update hmp-commands.hx when adding or changing commands */
+#ifdef CONFIG_HMP
static HMPCommand hmp_info_cmds[] = {
#include "hmp-commands-info.h"
{ NULL, NULL, },
@@ -52,6 +53,10 @@ static HMPCommand hmp_cmds[] = {
#include "hmp-commands.h"
{ NULL, NULL, },
};
+#else
+static HMPCommand hmp_info_cmds[] = { { NULL, NULL, }, };
+static HMPCommand hmp_cmds[] = { { NULL, NULL, }, };
+#endif
HMPCommand *hmp_cmds_for_target(bool info_command)
{
@@ -711,6 +711,7 @@ error:
return -1;
}
+#ifdef CONFIG_HMP
static SlirpState *slirp_lookup(MonitorHMP *hmp, const char *id)
{
if (id) {
@@ -801,6 +802,7 @@ void hmp_hostfwd_remove(MonitorHMP *hmp, const QDict *qdict)
fail_syntax:
monitor_hmp_printf(hmp, "invalid format\n");
}
+#endif
static int slirp_hostfwd(SlirpState *s, const char *redir_str, Error **errp)
{
@@ -957,6 +959,7 @@ static int slirp_hostfwd(SlirpState *s, const char *redir_str, Error **errp)
return -1;
}
+#ifdef CONFIG_HMP
void hmp_hostfwd_add(MonitorHMP *hmp, const QDict *qdict)
{
const char *redir_str;
@@ -977,8 +980,8 @@ void hmp_hostfwd_add(MonitorHMP *hmp, const QDict *qdict)
error_report_err(err);
}
}
-
}
+#endif
#if defined(CONFIG_SMBD_COMMAND)
@@ -1224,6 +1227,7 @@ UsernetInfoList *qmp_x_query_usernet(Error **errp)
return head;
}
+#ifdef CONFIG_HMP
void hmp_info_usernet(MonitorHMP *hmp, const QDict *qdict)
{
g_autoptr(UsernetInfoList) list = NULL;
@@ -1237,6 +1241,7 @@ void hmp_info_usernet(MonitorHMP *hmp, const QDict *qdict)
ui->hub_name, ui->info);
}
}
+#endif
static void
net_init_slirp_configs_host(const NetdevUserHostForwardList *fwd)
@@ -31,6 +31,7 @@ bool replay_running_debug(void)
return replay_is_debugging;
}
+#ifdef CONFIG_HMP
void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict)
{
if (replay_mode == REPLAY_MODE_NONE) {
@@ -42,6 +43,7 @@ void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict)
replay_get_filename(), replay_get_current_icount());
}
}
+#endif
ReplayInfo *qmp_query_replay(Error **errp)
{
@@ -103,6 +105,7 @@ void qmp_replay_break(int64_t icount, Error **errp)
}
}
+#ifdef CONFIG_HMP
void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict)
{
int64_t icount = qdict_get_try_int(qdict, "icount", -1LL);
@@ -114,6 +117,7 @@ void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict)
return;
}
}
+#endif
void qmp_replay_delete_break(Error **errp)
{
@@ -124,6 +128,7 @@ void qmp_replay_delete_break(Error **errp)
}
}
+#ifdef CONFIG_HMP
void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict)
{
Error *err = NULL;
@@ -134,6 +139,7 @@ void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict)
return;
}
}
+#endif
static char *replay_find_nearest_snapshot(int64_t icount,
int64_t *snapshot_icount)
@@ -209,6 +215,7 @@ void qmp_replay_seek(int64_t icount, Error **errp)
replay_seek(icount, replay_stop_vm, errp);
}
+#ifdef CONFIG_HMP
void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict)
{
int64_t icount = qdict_get_try_int(qdict, "icount", -1LL);
@@ -220,6 +227,7 @@ void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict)
return;
}
}
+#endif
static void replay_stop_vm_debug(void *opaque)
{
@@ -63,22 +63,28 @@ void replay_vmstate_init(void)
#include "qapi/error.h"
#include "qemu/error-report.h"
+#ifdef CONFIG_HMP
void hmp_info_replay(MonitorHMP *hmp, const QDict *qdict)
{
error_report("replay support not available");
}
+
void hmp_replay_break(MonitorHMP *hmp, const QDict *qdict)
{
error_report("replay support not available");
}
+
void hmp_replay_delete_break(MonitorHMP *hmp, const QDict *qdict)
{
error_report("replay support not available");
}
+
void hmp_replay_seek(MonitorHMP *hmp, const QDict *qdict)
{
error_report("replay support not available");
}
+#endif
+
ReplayInfo *qmp_query_replay(Error **errp)
{
error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND,
@@ -763,6 +763,7 @@ DeviceState *qdev_device_add(QemuOpts *opts, Error **errp)
return ret;
}
+#ifdef CONFIG_HMP
#define qdev_printf(fmt, ...) \
monitor_hmp_printf(hmp, "%*s" fmt, indent, "", ## __VA_ARGS__)
@@ -865,6 +866,7 @@ void hmp_info_qdm(MonitorHMP *hmp, const QDict *qdict)
{
qdev_print_devinfos(true);
}
+#endif /* CONFIG_HMP */
void qmp_device_add(QDict *qdict, QObject **ret_data, Error **errp)
{
@@ -1002,6 +1004,7 @@ void qmp_device_sync_config(const char *id, Error **errp)
qdev_sync_config(dev, errp);
}
+#ifdef CONFIG_HMP
void hmp_device_add(MonitorHMP *hmp, const QDict *qdict)
{
Error *err = NULL;
@@ -1044,6 +1047,7 @@ void hmp_device_del(MonitorHMP *hmp, const QDict *qdict)
qmp_device_del(id, &err);
hmp_handle_error(hmp, err);
}
+#endif
void device_add_completion(ReadLineState *rs, int nb_args, const char *str)
{
@@ -83,6 +83,7 @@ void x86_cpu_apic_realize(X86CPU *cpu, Error **errp)
}
}
+#ifdef CONFIG_HMP
void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict)
{
CPUState *cs;
@@ -105,3 +106,4 @@ void hmp_info_local_apic(MonitorHMP *hmp, const QDict *qdict)
}
x86_cpu_dump_local_apic_state(cs, CPU_DUMP_FPU);
}
+#endif
@@ -31,6 +31,8 @@
#include "qapi/qapi-commands-misc.h"
#include "system/memory.h"
+#ifdef CONFIG_HMP
+
/* Perform linear address sign extension */
static hwaddr addr_canonical(CPUArchState *env, hwaddr addr)
{
@@ -595,3 +597,4 @@ void hmp_mce(MonitorHMP *hmp, const QDict *qdict)
}
hmp_handle_error(hmp, err);
}
+#endif
@@ -784,6 +784,7 @@ SevInfo *qmp_query_sev(Error **errp)
return info;
}
+#ifdef CONFIG_HMP
void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict)
{
SevInfo *info = sev_get_info();
@@ -817,6 +818,7 @@ void hmp_info_sev(MonitorHMP *hmp, const QDict *qdict)
out:
qapi_free_SevInfo(info);
}
+#endif
static int
sev_get_pdh_info(int fd, guchar **pdh, size_t *pdh_len, guchar **cert_chain,
@@ -10,6 +10,7 @@
#include "monitor/hmp.h"
#include "monitor/monitor.h"
+#ifdef CONFIG_HMP
void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
{
CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp);
@@ -21,3 +22,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
dump_mmu(env1);
}
+#endif
@@ -11,6 +11,7 @@
#include "monitor/hmp.h"
#include "cpu.h"
+#ifdef CONFIG_HMP
void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
{
CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp);
@@ -21,3 +22,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
}
dump_mmu(env1);
}
+#endif
@@ -39,6 +39,8 @@
#define PTE_HEADER_DELIMITER "-------- ---------------- -------- -------\n"
#endif
+#ifdef CONFIG_HMP
+
/* Perform linear address sign extension */
static target_ulong addr_canonical(int va_bits, target_ulong addr)
{
@@ -244,6 +246,7 @@ void hmp_info_mem(MonitorHMP *hmp, const QDict *qdict)
mem_info_svxx(hmp, env);
}
+#endif /* CONFIG_HMP */
#ifdef CONFIG_TCG
static bool reg_is_ulong_integer(CPURISCVState *env, const char *name,
@@ -26,6 +26,7 @@
#include "monitor/monitor.h"
#include "monitor/hmp.h"
+#ifdef CONFIG_HMP
static void print_tlb(MonitorHMP *hmp, int idx, tlb_t *tlb)
{
monitor_hmp_printf(hmp, " tlb%i:\t"
@@ -55,3 +56,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
for (i = 0 ; i < UTLB_SIZE ; i++)
print_tlb(hmp, i, &env->utlb[i]);
}
+#endif
@@ -27,6 +27,7 @@
#include "monitor/hmp.h"
+#ifdef CONFIG_HMP
void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
{
CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp);
@@ -37,3 +38,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
}
dump_mmu(env1);
}
+#endif
@@ -26,6 +26,7 @@
#include "monitor/monitor.h"
#include "monitor/hmp.h"
+#ifdef CONFIG_HMP
void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
{
CPUArchState *env1 = monitor_hmp_get_cpu_env(hmp);
@@ -36,3 +37,4 @@ void hmp_info_tlb(MonitorHMP *hmp, const QDict *qdict)
}
dump_mmu(env1);
}
+#endif