hw/xen: add stubs for various functions

Those symbols are used by system/physmem.c, and are called only if
xen_enabled() (which happens only if CONFIG_XEN is set and xen is
available).

So we can crash the stubs in case those are called, as they are linked
only when CONFIG_XEN is not set.

Acked-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20250317183417.285700-13-pierrick.bouvier@linaro.org>
This commit is contained in:
Pierrick Bouvier 2025-03-17 11:34:11 -07:00 committed by Richard Henderson
parent dea4acbdef
commit 105d7ea0a5
2 changed files with 54 additions and 0 deletions

View file

@ -9,6 +9,9 @@ system_ss.add(when: ['CONFIG_XEN_BUS'], if_true: files(
system_ss.add(when: ['CONFIG_XEN', xen], if_true: files(
'xen-operations.c',
),
if_false: files(
'xen_stubs.c',
))
xen_specific_ss = ss.source_set()

51
hw/xen/xen_stubs.c Normal file
View file

@ -0,0 +1,51 @@
/*
* Various stubs for xen functions
*
* Those functions are used only if xen_enabled(). This file is linked only if
* CONFIG_XEN is not set, so they should never be called.
*
* Copyright (c) 2025 Linaro, Ltd.
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "qemu/osdep.h"
#include "system/xen.h"
#include "system/xen-mapcache.h"
void xen_hvm_modified_memory(ram_addr_t start, ram_addr_t length)
{
g_assert_not_reached();
}
void xen_ram_alloc(ram_addr_t ram_addr, ram_addr_t size,
struct MemoryRegion *mr, Error **errp)
{
g_assert_not_reached();
}
bool xen_mr_is_memory(MemoryRegion *mr)
{
g_assert_not_reached();
}
void xen_invalidate_map_cache_entry(uint8_t *buffer)
{
g_assert_not_reached();
}
ram_addr_t xen_ram_addr_from_mapcache(void *ptr)
{
g_assert_not_reached();
}
uint8_t *xen_map_cache(MemoryRegion *mr,
hwaddr phys_addr,
hwaddr size,
ram_addr_t ram_addr_offset,
uint8_t lock,
bool dma,
bool is_write)
{
g_assert_not_reached();
}