exec: Move TranslationBlock typedef to qemu/typedefs.h
This also means we don't need an extra declaration of the structure in hw/core/cpu.h. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20210208233906.479571-2-richard.henderson@linaro.org> Message-Id: <20210213130325.14781-11-alex.bennee@linaro.org>
This commit is contained in:
parent
0d6e6cb779
commit
8349d2aeb3
@ -26,7 +26,6 @@
|
|||||||
#define CODE_GEN_HTABLE_BITS 15
|
#define CODE_GEN_HTABLE_BITS 15
|
||||||
#define CODE_GEN_HTABLE_SIZE (1 << CODE_GEN_HTABLE_BITS)
|
#define CODE_GEN_HTABLE_SIZE (1 << CODE_GEN_HTABLE_BITS)
|
||||||
|
|
||||||
typedef struct TranslationBlock TranslationBlock;
|
|
||||||
typedef struct TBContext TBContext;
|
typedef struct TBContext TBContext;
|
||||||
|
|
||||||
struct TBContext {
|
struct TBContext {
|
||||||
|
@ -74,8 +74,6 @@ typedef enum MMUAccessType {
|
|||||||
|
|
||||||
typedef struct CPUWatchpoint CPUWatchpoint;
|
typedef struct CPUWatchpoint CPUWatchpoint;
|
||||||
|
|
||||||
struct TranslationBlock;
|
|
||||||
|
|
||||||
/* see tcg-cpu-ops.h */
|
/* see tcg-cpu-ops.h */
|
||||||
struct TCGCPUOps;
|
struct TCGCPUOps;
|
||||||
|
|
||||||
@ -375,7 +373,7 @@ struct CPUState {
|
|||||||
IcountDecr *icount_decr_ptr;
|
IcountDecr *icount_decr_ptr;
|
||||||
|
|
||||||
/* Accessed in parallel; all accesses must be atomic */
|
/* Accessed in parallel; all accesses must be atomic */
|
||||||
struct TranslationBlock *tb_jmp_cache[TB_JMP_CACHE_SIZE];
|
TranslationBlock *tb_jmp_cache[TB_JMP_CACHE_SIZE];
|
||||||
|
|
||||||
struct GDBRegisterState *gdb_regs;
|
struct GDBRegisterState *gdb_regs;
|
||||||
int gdb_num_regs;
|
int gdb_num_regs;
|
||||||
|
@ -30,8 +30,7 @@ struct TCGCPUOps {
|
|||||||
* If more state needs to be restored, the target must implement a
|
* If more state needs to be restored, the target must implement a
|
||||||
* function to restore all the state, and register it here.
|
* function to restore all the state, and register it here.
|
||||||
*/
|
*/
|
||||||
void (*synchronize_from_tb)(CPUState *cpu,
|
void (*synchronize_from_tb)(CPUState *cpu, const TranslationBlock *tb);
|
||||||
const struct TranslationBlock *tb);
|
|
||||||
/** @cpu_exec_enter: Callback for cpu_exec preparation */
|
/** @cpu_exec_enter: Callback for cpu_exec preparation */
|
||||||
void (*cpu_exec_enter)(CPUState *cpu);
|
void (*cpu_exec_enter)(CPUState *cpu);
|
||||||
/** @cpu_exec_exit: Callback for cpu_exec cleanup */
|
/** @cpu_exec_exit: Callback for cpu_exec cleanup */
|
||||||
|
@ -120,6 +120,7 @@ typedef struct ReservedRegion ReservedRegion;
|
|||||||
typedef struct SavedIOTLB SavedIOTLB;
|
typedef struct SavedIOTLB SavedIOTLB;
|
||||||
typedef struct SHPCDevice SHPCDevice;
|
typedef struct SHPCDevice SHPCDevice;
|
||||||
typedef struct SSIBus SSIBus;
|
typedef struct SSIBus SSIBus;
|
||||||
|
typedef struct TranslationBlock TranslationBlock;
|
||||||
typedef struct VirtIODevice VirtIODevice;
|
typedef struct VirtIODevice VirtIODevice;
|
||||||
typedef struct Visitor Visitor;
|
typedef struct Visitor Visitor;
|
||||||
typedef struct VMChangeStateEntry VMChangeStateEntry;
|
typedef struct VMChangeStateEntry VMChangeStateEntry;
|
||||||
|
@ -173,8 +173,7 @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *cpu);
|
|||||||
void arm_translate_init(void);
|
void arm_translate_init(void);
|
||||||
|
|
||||||
#ifdef CONFIG_TCG
|
#ifdef CONFIG_TCG
|
||||||
void arm_cpu_synchronize_from_tb(CPUState *cs,
|
void arm_cpu_synchronize_from_tb(CPUState *cs, const TranslationBlock *tb);
|
||||||
const struct TranslationBlock *tb);
|
|
||||||
#endif /* CONFIG_TCG */
|
#endif /* CONFIG_TCG */
|
||||||
|
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ typedef struct DisasContext {
|
|||||||
|
|
||||||
int delayed_branch;
|
int delayed_branch;
|
||||||
|
|
||||||
struct TranslationBlock *tb;
|
TranslationBlock *tb;
|
||||||
int singlestep_enabled;
|
int singlestep_enabled;
|
||||||
} DisasContext;
|
} DisasContext;
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ typedef struct DisasContext {
|
|||||||
unsigned int tb_flags, synced_flags; /* tb dependent flags. */
|
unsigned int tb_flags, synced_flags; /* tb dependent flags. */
|
||||||
int is_jmp;
|
int is_jmp;
|
||||||
|
|
||||||
struct TranslationBlock *tb;
|
TranslationBlock *tb;
|
||||||
int singlestep_enabled;
|
int singlestep_enabled;
|
||||||
|
|
||||||
uint32_t features;
|
uint32_t features;
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
/* This is the state at translation time. */
|
/* This is the state at translation time. */
|
||||||
typedef struct DisasContext {
|
typedef struct DisasContext {
|
||||||
struct TranslationBlock *tb;
|
TranslationBlock *tb;
|
||||||
target_ulong pc, saved_pc;
|
target_ulong pc, saved_pc;
|
||||||
uint32_t opcode;
|
uint32_t opcode;
|
||||||
uint32_t fp_status;
|
uint32_t fp_status;
|
||||||
|
@ -34,7 +34,7 @@ typedef struct DisasContext {
|
|||||||
int condjmp;
|
int condjmp;
|
||||||
/* The label that will be jumped to when the instruction is skipped. */
|
/* The label that will be jumped to when the instruction is skipped. */
|
||||||
TCGLabel *condlabel;
|
TCGLabel *condlabel;
|
||||||
struct TranslationBlock *tb;
|
TranslationBlock *tb;
|
||||||
int singlestep_enabled;
|
int singlestep_enabled;
|
||||||
#ifndef CONFIG_USER_ONLY
|
#ifndef CONFIG_USER_ONLY
|
||||||
int user;
|
int user;
|
||||||
|
Loading…
Reference in New Issue
Block a user