From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: [PULL 42/46] tcg: remove CPU* types from typedefs.h
Date: Mon, 6 May 2024 09:51:21 +0200 [thread overview]
Message-ID: <20240506075125.8238-43-pbonzini@redhat.com> (raw)
In-Reply-To: <20240506075125.8238-1-pbonzini@redhat.com>
hw/core/cpu.h is already using struct forward declarations in some cases
to avoid inclusions, and otherwise CPUAddressSpace and CPUJumpCache
are only used together with their definition. CPUTLBEntryFull is
always used when their definition is available. Remove all three
from typedefs.h.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
accel/tcg/tb-jmp-cache.h | 4 ++--
include/hw/core/cpu.h | 10 ++++++++--
include/qemu/typedefs.h | 3 ---
system/physmem.c | 4 ++--
4 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/accel/tcg/tb-jmp-cache.h b/accel/tcg/tb-jmp-cache.h
index 184bb3e3e2e..c3a505e394a 100644
--- a/accel/tcg/tb-jmp-cache.h
+++ b/accel/tcg/tb-jmp-cache.h
@@ -22,12 +22,12 @@
* non-NULL value of 'tb'. Strictly speaking pc is only needed for
* CF_PCREL, but it's used always for simplicity.
*/
-struct CPUJumpCache {
+typedef struct CPUJumpCache {
struct rcu_head rcu;
struct {
TranslationBlock *tb;
vaddr pc;
} array[TB_JMP_CACHE_SIZE];
-};
+} CPUJumpCache;
#endif /* ACCEL_TCG_TB_JMP_CACHE_H */
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index a23d39f6a0c..1382a986158 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -85,6 +85,12 @@ DECLARE_CLASS_CHECKERS(CPUClass, CPU,
typedef struct CPUWatchpoint CPUWatchpoint;
+/* see physmem.c */
+struct CPUAddressSpace;
+
+/* see accel/tcg/tb-jmp-cache.h */
+struct CPUJumpCache;
+
/* see accel-cpu.h */
struct AccelCPUClass;
@@ -473,12 +479,12 @@ struct CPUState {
QemuMutex work_mutex;
QSIMPLEQ_HEAD(, qemu_work_item) work_list;
- CPUAddressSpace *cpu_ases;
+ struct CPUAddressSpace *cpu_ases;
int num_ases;
AddressSpace *as;
MemoryRegion *memory;
- CPUJumpCache *tb_jmp_cache;
+ struct CPUJumpCache *tb_jmp_cache;
GArray *gdb_regs;
int gdb_num_regs;
diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h
index 7e3597e94c5..d23020ed232 100644
--- a/include/qemu/typedefs.h
+++ b/include/qemu/typedefs.h
@@ -38,12 +38,9 @@ typedef struct BusState BusState;
typedef struct Chardev Chardev;
typedef struct Clock Clock;
typedef struct ConfidentialGuestSupport ConfidentialGuestSupport;
-typedef struct CPUAddressSpace CPUAddressSpace;
typedef struct CPUArchState CPUArchState;
typedef struct CPUPluginState CPUPluginState;
-typedef struct CPUJumpCache CPUJumpCache;
typedef struct CPUState CPUState;
-typedef struct CPUTLBEntryFull CPUTLBEntryFull;
typedef struct DeviceState DeviceState;
typedef struct DirtyBitmapSnapshot DirtyBitmapSnapshot;
typedef struct DisplayChangeListener DisplayChangeListener;
diff --git a/system/physmem.c b/system/physmem.c
index 1a81c226bae..6dc58b34bbb 100644
--- a/system/physmem.c
+++ b/system/physmem.c
@@ -158,12 +158,12 @@ static void tcg_commit(MemoryListener *listener);
* @memory_dispatch: its dispatch pointer (cached, RCU protected)
* @tcg_as_listener: listener for tracking changes to the AddressSpace
*/
-struct CPUAddressSpace {
+typedef struct CPUAddressSpace {
CPUState *cpu;
AddressSpace *as;
struct AddressSpaceDispatch *memory_dispatch;
MemoryListener tcg_as_listener;
-};
+} CPUAddressSpace;
struct DirtyBitmapSnapshot {
ram_addr_t start;
--
2.44.0
next prev parent reply other threads:[~2024-05-06 8:00 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-06 7:50 [PULL 00/46] Mostly build system and other cleanups patches for 2024-05-06 Paolo Bonzini
2024-05-06 7:50 ` [PULL 01/46] target/i386: Give IRQs a chance when resetting HF_INHIBIT_IRQ_MASK Paolo Bonzini
2024-05-06 7:50 ` [PULL 02/46] Kconfig: kvm: allow building without any board Paolo Bonzini
2024-05-06 7:50 ` [PULL 03/46] tests/qtest: skip m48t59-test if the machine is absent Paolo Bonzini
2024-05-06 7:50 ` [PULL 04/46] gitlab-ci: adjust msys2-64bit to be able to run qtest Paolo Bonzini
2024-05-06 7:50 ` [PULL 05/46] kvm: ppc: disable sPAPR code if CONFIG_PSERIES is disabled Paolo Bonzini
2024-05-06 7:50 ` [PULL 06/46] configs: list "implied" device groups in the default configs Paolo Bonzini
2024-05-06 7:50 ` [PULL 07/46] alpha: switch boards to "default y" Paolo Bonzini
2024-05-06 7:50 ` [PULL 08/46] arm: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 09/46] avr: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 10/46] cris: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 11/46] hppa: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 12/46] i386: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 13/46] loongarch: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 14/46] m68k: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 15/46] microblaze: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 16/46] meson: make target endianneess available to Kconfig Paolo Bonzini
2024-05-06 7:50 ` [PULL 17/46] mips: switch boards to "default y" Paolo Bonzini
2024-05-06 7:50 ` [PULL 18/46] openrisc: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 19/46] ppc: " Paolo Bonzini
2024-05-06 7:50 ` [PULL 20/46] riscv: " Paolo Bonzini
2024-05-06 7:51 ` [PULL 21/46] rx: " Paolo Bonzini
2024-05-06 7:51 ` [PULL 22/46] s390x: " Paolo Bonzini
2024-05-06 7:51 ` [PULL 23/46] sh4: " Paolo Bonzini
2024-05-06 7:51 ` [PULL 24/46] sparc: " Paolo Bonzini
2024-05-06 7:51 ` [PULL 25/46] tricore: " Paolo Bonzini
2024-05-06 7:51 ` [PULL 26/46] xtensa: " Paolo Bonzini
2024-05-06 7:51 ` [PULL 27/46] docs: document new convention for Kconfig board symbols Paolo Bonzini
2024-05-06 7:51 ` [PULL 28/46] target/i386: Introduce SapphireRapids-v3 to add missing features Paolo Bonzini
2024-05-06 7:51 ` [PULL 29/46] bitmap: Use g_try_new0/g_new0/g_renew Paolo Bonzini
2024-05-06 7:51 ` [PULL 30/46] build: do not build virtio-vga-gl if virgl/opengl not available Paolo Bonzini
2024-05-06 7:51 ` [PULL 31/46] fw_cfg: remove useless declarations from typedefs.h Paolo Bonzini
2024-05-06 7:51 ` [PULL 32/46] qdev-core: remove DeviceListener " Paolo Bonzini
2024-05-06 7:51 ` [PULL 33/46] numa: remove types " Paolo Bonzini
2024-05-06 7:51 ` [PULL 34/46] net: remove AnnounceTimer " Paolo Bonzini
2024-05-06 7:51 ` [PULL 35/46] qemu-option: remove QemuOpt " Paolo Bonzini
2024-05-06 7:51 ` [PULL 36/46] intc: remove PICCommonState " Paolo Bonzini
2024-05-06 7:51 ` [PULL 37/46] lockable: remove QemuLockable " Paolo Bonzini
2024-05-06 7:51 ` [PULL 38/46] migration: remove PostcopyDiscardState " Paolo Bonzini
2024-05-06 7:51 ` [PULL 39/46] monitor: remove MonitorDef " Paolo Bonzini
2024-05-06 7:51 ` [PULL 40/46] qapi/machine: remove types " Paolo Bonzini
2024-05-06 7:51 ` [PULL 41/46] display: remove GraphicHwOps " Paolo Bonzini
2024-05-06 7:51 ` Paolo Bonzini [this message]
2024-05-06 7:51 ` [PULL 43/46] pci: remove some types " Paolo Bonzini
2024-05-06 7:51 ` [PULL 44/46] kvm: move target-dependent interrupt routing out of kvm-all.c Paolo Bonzini
2024-05-06 7:51 ` [PULL 45/46] migration: do not include coroutine_int.h Paolo Bonzini
2024-05-06 7:51 ` [PULL 46/46] qga/commands-posix: fix typo in qmp_guest_set_user_password Paolo Bonzini
2024-05-06 17:17 ` [PULL 00/46] Mostly build system and other cleanups patches for 2024-05-06 Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240506075125.8238-43-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).