mirror of
https://gitlab.com/qemu-project/qemu.git
synced 2026-10-28 11:54:41 +08:00
Guard HMP command implementations with CONFIG_HMP
Add #ifdef CONFIG_HMP around all hmp_* function implementations and their HMP-only helpers across subsystems. This covers monitor_register_hmp* callers, hmp_info_* handlers, and HMP-only helper functions like slirp_lookup. To link succesfully, use empty cmds tables in hmp-cmds.c (to be removed once meson build-sys is updated with !hmp support later in the series) Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <20260828-qemu-no-hmp-v5-41-9227de146347@redhat.com>
This commit is contained in:
1 parent
2d6d5508bb
commit
0bd6562fc3
27 files changed
+82
-1
No files matched your search
@@ -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)
|
||||
{
|
||||
|
||||
+6
-1
@@ -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
|
||||
Reference in new issue
Block a user