mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
ppc/spapr: Add a nested state struct
Rather than use a copy of CPUPPCState to store the host state while the environment has been switched to the L2, use a new struct for this purpose. Have helper functions to save and load this host state. Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
cb2f6c3d69
commit
c709e8eacd
2 changed files with 115 additions and 40 deletions
|
@ -41,6 +41,8 @@ void spapr_cpu_set_entry_state(PowerPCCPU *cpu, target_ulong nip,
|
|||
target_ulong r1, target_ulong r3,
|
||||
target_ulong r4);
|
||||
|
||||
struct nested_ppc_state;
|
||||
|
||||
typedef struct SpaprCpuState {
|
||||
uint64_t vpa_addr;
|
||||
uint64_t slb_shadow_addr, slb_shadow_size;
|
||||
|
@ -51,8 +53,7 @@ typedef struct SpaprCpuState {
|
|||
|
||||
/* Fields for nested-HV support */
|
||||
bool in_nested; /* true while the L2 is executing */
|
||||
CPUPPCState *nested_host_state; /* holds the L1 state while L2 executes */
|
||||
int64_t nested_tb_offset; /* L1->L2 TB offset */
|
||||
struct nested_ppc_state *nested_host_state; /* holds the L1 state while L2 executes */
|
||||
} SpaprCpuState;
|
||||
|
||||
static inline SpaprCpuState *spapr_cpu_state(PowerPCCPU *cpu)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue