tcg: remove CPU* types from typedefs.h

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>
This commit is contained in:
Paolo Bonzini 2024-05-02 17:14:42 +02:00
parent da4b248178
commit 15d62536a9
4 changed files with 12 additions and 9 deletions

View File

@ -22,12 +22,12 @@
* non-NULL value of 'tb'. Strictly speaking pc is only needed for * non-NULL value of 'tb'. Strictly speaking pc is only needed for
* CF_PCREL, but it's used always for simplicity. * CF_PCREL, but it's used always for simplicity.
*/ */
struct CPUJumpCache { typedef struct CPUJumpCache {
struct rcu_head rcu; struct rcu_head rcu;
struct { struct {
TranslationBlock *tb; TranslationBlock *tb;
vaddr pc; vaddr pc;
} array[TB_JMP_CACHE_SIZE]; } array[TB_JMP_CACHE_SIZE];
}; } CPUJumpCache;
#endif /* ACCEL_TCG_TB_JMP_CACHE_H */ #endif /* ACCEL_TCG_TB_JMP_CACHE_H */

View File

@ -85,6 +85,12 @@ DECLARE_CLASS_CHECKERS(CPUClass, CPU,
typedef struct CPUWatchpoint CPUWatchpoint; typedef struct CPUWatchpoint CPUWatchpoint;
/* see physmem.c */
struct CPUAddressSpace;
/* see accel/tcg/tb-jmp-cache.h */
struct CPUJumpCache;
/* see accel-cpu.h */ /* see accel-cpu.h */
struct AccelCPUClass; struct AccelCPUClass;
@ -473,12 +479,12 @@ struct CPUState {
QemuMutex work_mutex; QemuMutex work_mutex;
QSIMPLEQ_HEAD(, qemu_work_item) work_list; QSIMPLEQ_HEAD(, qemu_work_item) work_list;
CPUAddressSpace *cpu_ases; struct CPUAddressSpace *cpu_ases;
int num_ases; int num_ases;
AddressSpace *as; AddressSpace *as;
MemoryRegion *memory; MemoryRegion *memory;
CPUJumpCache *tb_jmp_cache; struct CPUJumpCache *tb_jmp_cache;
GArray *gdb_regs; GArray *gdb_regs;
int gdb_num_regs; int gdb_num_regs;

View File

@ -38,12 +38,9 @@ typedef struct BusState BusState;
typedef struct Chardev Chardev; typedef struct Chardev Chardev;
typedef struct Clock Clock; typedef struct Clock Clock;
typedef struct ConfidentialGuestSupport ConfidentialGuestSupport; typedef struct ConfidentialGuestSupport ConfidentialGuestSupport;
typedef struct CPUAddressSpace CPUAddressSpace;
typedef struct CPUArchState CPUArchState; typedef struct CPUArchState CPUArchState;
typedef struct CPUPluginState CPUPluginState; typedef struct CPUPluginState CPUPluginState;
typedef struct CPUJumpCache CPUJumpCache;
typedef struct CPUState CPUState; typedef struct CPUState CPUState;
typedef struct CPUTLBEntryFull CPUTLBEntryFull;
typedef struct DeviceState DeviceState; typedef struct DeviceState DeviceState;
typedef struct DirtyBitmapSnapshot DirtyBitmapSnapshot; typedef struct DirtyBitmapSnapshot DirtyBitmapSnapshot;
typedef struct DisplayChangeListener DisplayChangeListener; typedef struct DisplayChangeListener DisplayChangeListener;

View File

@ -158,12 +158,12 @@ static void tcg_commit(MemoryListener *listener);
* @memory_dispatch: its dispatch pointer (cached, RCU protected) * @memory_dispatch: its dispatch pointer (cached, RCU protected)
* @tcg_as_listener: listener for tracking changes to the AddressSpace * @tcg_as_listener: listener for tracking changes to the AddressSpace
*/ */
struct CPUAddressSpace { typedef struct CPUAddressSpace {
CPUState *cpu; CPUState *cpu;
AddressSpace *as; AddressSpace *as;
struct AddressSpaceDispatch *memory_dispatch; struct AddressSpaceDispatch *memory_dispatch;
MemoryListener tcg_as_listener; MemoryListener tcg_as_listener;
}; } CPUAddressSpace;
struct DirtyBitmapSnapshot { struct DirtyBitmapSnapshot {
ram_addr_t start; ram_addr_t start;