exec: Restrict inclusion of 'user/guest-base.h'

Declare 'have_guest_base' in "user/guest-base.h".

Very few files require this header, so explicitly include
it there instead of "exec/cpu-all.h" which is used in many
source files.

Assert this user-specific header is only included from user
emulation.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20231211212003.21686-23-philmd@linaro.org>
Reviewed-by: Anton Johansson <anjo@rev.ng>
This commit is contained in:
Philippe Mathieu-Daudé 2023-12-11 21:51:26 +01:00
parent d3cbde7402
commit 16aa8eaaac
6 changed files with 11 additions and 3 deletions

View File

@ -36,6 +36,7 @@
#include "qemu/help_option.h"
#include "qemu/module.h"
#include "exec/exec-all.h"
#include "user/guest-base.h"
#include "tcg/startup.h"
#include "qemu/timer.h"
#include "qemu/envlist.h"

View File

@ -65,9 +65,6 @@
#if defined(CONFIG_USER_ONLY)
#include "exec/user/abitypes.h"
#include "user/guest-base.h"
extern bool have_guest_base;
/*
* If non-zero, the guest virtual address space is a contiguous subset

View File

@ -74,6 +74,8 @@
#if defined(CONFIG_USER_ONLY)
#include "user/guest-base.h"
#ifndef TARGET_TAGGED_ADDRESSES
static inline abi_ptr cpu_untagged_addr(CPUState *cs, abi_ptr x)
{

View File

@ -7,6 +7,12 @@
#ifndef USER_GUEST_BASE_H
#define USER_GUEST_BASE_H
#ifndef CONFIG_USER_ONLY
#error Cannot include this header from system emulation
#endif
extern uintptr_t guest_base;
extern bool have_guest_base;
#endif

View File

@ -8,6 +8,7 @@
#include "qemu.h"
#include "user/tswap-target.h"
#include "user/guest-base.h"
#include "user-internals.h"
#include "signal-common.h"
#include "loader.h"

View File

@ -38,6 +38,7 @@
#include "qemu/help_option.h"
#include "qemu/module.h"
#include "qemu/plugin.h"
#include "user/guest-base.h"
#include "exec/exec-all.h"
#include "exec/gdbstub.h"
#include "gdbstub/user.h"