File tree Expand file tree Collapse file tree 5 files changed +16
-5
lines changed Expand file tree Collapse file tree 5 files changed +16
-5
lines changed Original file line number Diff line number Diff line change @@ -278,6 +278,13 @@ void reset_vcpu(struct vcpu *vcpu)
278
278
vcpu -> ioreq_pending = 0 ;
279
279
vcpu -> arch_vcpu .nr_sipi = 0 ;
280
280
vcpu -> pending_pre_work = 0 ;
281
+
282
+ vcpu -> arch_vcpu .exception_info .exception = VECTOR_INVALID ;
283
+ vcpu -> arch_vcpu .cur_context = NORMAL_WORLD ;
284
+ vcpu -> arch_vcpu .irq_window_enabled = 0 ;
285
+ vcpu -> arch_vcpu .inject_event_pending = false;
286
+ memset (vcpu -> arch_vcpu .vmcs , 0 , CPU_PAGE_SIZE );
287
+
281
288
vlapic = vcpu -> arch_vcpu .vlapic ;
282
289
vlapic_reset (vlapic );
283
290
}
Original file line number Diff line number Diff line change @@ -274,7 +274,7 @@ void pause_vm(struct vm *vm)
274
274
pause_vcpu (vcpu , VCPU_ZOMBIE );
275
275
}
276
276
277
- int vm_resume (struct vm * vm )
277
+ void resume_vm (struct vm * vm )
278
278
{
279
279
int i ;
280
280
struct vcpu * vcpu = NULL ;
@@ -283,8 +283,6 @@ int vm_resume(struct vm *vm)
283
283
resume_vcpu (vcpu );
284
284
285
285
vm -> state = VM_STARTED ;
286
-
287
- return 0 ;
288
286
}
289
287
290
288
/* Create vm/vcpu for vm0 */
Original file line number Diff line number Diff line change @@ -174,8 +174,12 @@ extern uint8_t trampoline_pdpt_addr[];
174
174
extern uint8_t trampoline_gdt_ptr [];
175
175
extern uint8_t trampoline_start64_fixup [];
176
176
177
+ /* In trampoline range, hold the jump target which trampline will jump to */
178
+ extern uint64_t main_entry [1 ];
179
+
177
180
extern uint64_t trampoline_start16_paddr ;
178
181
extern int ibrs_type ;
182
+ extern spinlock_t trampoline_spinlock ;
179
183
180
184
/*
181
185
* To support per_cpu access, we use a special struct "per_cpu_region" to hold
@@ -260,6 +264,7 @@ bool is_vapic_virt_reg_supported(void);
260
264
bool cpu_has_cap (uint32_t bit );
261
265
void load_cpu_state_data (void );
262
266
void start_cpus ();
267
+ void stop_cpus ();
263
268
264
269
/* Read control register */
265
270
#define CPU_CR_READ (cr , result_ptr ) \
Original file line number Diff line number Diff line change @@ -171,6 +171,7 @@ struct vm_description {
171
171
172
172
int shutdown_vm (struct vm * vm );
173
173
void pause_vm (struct vm * vm );
174
+ void resume_vm (struct vm * vm );
174
175
int start_vm (struct vm * vm );
175
176
int create_vm (struct vm_description * vm_desc , struct vm * * vm );
176
177
int prepare_vm0 (void );
Original file line number Diff line number Diff line change @@ -70,7 +70,7 @@ static inline void suspend_console(void)
70
70
del_timer (& console_timer );
71
71
}
72
72
73
- static inline void resume_console_enable (void )
73
+ static inline void resume_console (void )
74
74
{
75
75
console_setup_timer ();
76
76
}
@@ -101,7 +101,7 @@ static inline void console_setup_timer(void) {}
101
101
static inline uint32_t get_serial_handle (void ) { return 0 ; }
102
102
103
103
static inline void suspend_console (void ) {}
104
- static inline void resume_console_enable (void ) {}
104
+ static inline void resume_console (void ) {}
105
105
#endif
106
106
107
107
#endif /* CONSOLE_H */
You can’t perform that action at this time.
0 commit comments