QEMU-Devel Archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: [PATCH 12/13] tcg: remove CPU* types from typedefs.h
Date: Thu,  2 May 2024 17:53:30 +0200	[thread overview]
Message-ID: <20240502155331.109297-13-pbonzini@redhat.com> (raw)
In-Reply-To: <20240502155331.109297-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



  parent reply	other threads:[~2024-05-02 15:55 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-02 15:53 [PATCH 00/13] remove some types from typedefs.h Paolo Bonzini
2024-05-02 15:53 ` [PATCH 01/13] fw_cfg: remove useless declarations " Paolo Bonzini
2024-05-03  7:27   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 02/13] qdev-core: remove DeviceListener " Paolo Bonzini
2024-05-03  7:28   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 03/13] numa: remove types " Paolo Bonzini
2024-05-03  7:29   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 04/13] net: remove AnnounceTimer " Paolo Bonzini
2024-05-03  8:44   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 05/13] qemu-option: remove QemuOpt " Paolo Bonzini
2024-05-03  8:45   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 06/13] intc: remove PICCommonState " Paolo Bonzini
2024-05-03  8:43   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 07/13] lockable: remove QemuLockable " Paolo Bonzini
2024-05-03  8:41   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 08/13] migration: remove PostcopyDiscardState " Paolo Bonzini
2024-05-03  8:45   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 09/13] monitor: remove MonitorDef " Paolo Bonzini
2024-05-03  8:38   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` [PATCH 10/13] qapi/machine: remove types " Paolo Bonzini
2024-05-02 15:53 ` [PATCH 11/13] display: remove GraphicHwOps " Paolo Bonzini
2024-05-03  7:30   ` Philippe Mathieu-Daudé
2024-05-02 15:53 ` Paolo Bonzini [this message]
2024-05-02 15:53 ` [PATCH 13/13] pci: remove some types " Paolo Bonzini

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=20240502155331.109297-13-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 read-only IMAP folder(s) and NNTP newsgroup(s).