mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
cpu: Introduce TCGCpuOperations struct
The TCG-specific CPU methods will be moved to a separate struct, to make it easier to move accel-specific code outside generic CPU code in the future. Start by moving tcg_initialize(). The new CPUClass.tcg_opts field may eventually become a pointer, but keep it an embedded struct for now, to make code conversion easier. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> [claudio: move TCGCpuOperations inside include/hw/core/cpu.h] Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20210204163931.7358-2-cfontana@suse.de> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
2f74f45e32
commit
e9e51b7154
25 changed files with 48 additions and 30 deletions
|
@ -76,6 +76,19 @@ typedef struct CPUWatchpoint CPUWatchpoint;
|
|||
|
||||
struct TranslationBlock;
|
||||
|
||||
/**
|
||||
* struct TcgCpuOperations: TCG operations specific to a CPU class
|
||||
*/
|
||||
typedef struct TcgCpuOperations {
|
||||
/**
|
||||
* @initialize: Initalize TCG state
|
||||
*
|
||||
* Called when the first CPU is realized.
|
||||
*/
|
||||
void (*initialize)(void);
|
||||
|
||||
} TcgCpuOperations;
|
||||
|
||||
/**
|
||||
* CPUClass:
|
||||
* @class_by_name: Callback to map -cpu command line model name to an
|
||||
|
@ -222,12 +235,13 @@ struct CPUClass {
|
|||
|
||||
void (*disas_set_info)(CPUState *cpu, disassemble_info *info);
|
||||
vaddr (*adjust_watchpoint_address)(CPUState *cpu, vaddr addr, int len);
|
||||
void (*tcg_initialize)(void);
|
||||
|
||||
const char *deprecation_note;
|
||||
/* Keep non-pointer data at the end to minimize holes. */
|
||||
int gdb_num_core_regs;
|
||||
bool gdb_stop_before_watchpoint;
|
||||
|
||||
TcgCpuOperations tcg_ops;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue