From 080d62f93d7c8004e0f06800adb9eb671a15c656 Mon Sep 17 00:00:00 2001 From: jhb Date: Wed, 29 Jan 2014 21:23:37 +0000 Subject: MFC 259782: Add a resume hook for bhyve that runs a function on all CPUs during resume. For Intel CPUs, invoke vmxon for CPUs that were in VMX mode at the time of suspend. --- sys/amd64/include/cpu.h | 3 +++ sys/amd64/include/vmm.h | 2 ++ 2 files changed, 5 insertions(+) (limited to 'sys/amd64/include') diff --git a/sys/amd64/include/cpu.h b/sys/amd64/include/cpu.h index 3d9ff531..3c5d5df 100644 --- a/sys/amd64/include/cpu.h +++ b/sys/amd64/include/cpu.h @@ -70,6 +70,9 @@ extern struct cpu_ops cpu_ops; extern char btext[]; extern char etext[]; +/* Resume hook for VMM. */ +extern void (*vmm_resume_p)(void); + void cpu_halt(void); void cpu_reset(void); void fork_trampoline(void); diff --git a/sys/amd64/include/vmm.h b/sys/amd64/include/vmm.h index b6bb309..f7acb62 100644 --- a/sys/amd64/include/vmm.h +++ b/sys/amd64/include/vmm.h @@ -49,6 +49,7 @@ enum x2apic_state; typedef int (*vmm_init_func_t)(void); typedef int (*vmm_cleanup_func_t)(void); +typedef void (*vmm_resume_func_t)(void); typedef void * (*vmi_init_func_t)(struct vm *vm, struct pmap *pmap); typedef int (*vmi_run_func_t)(void *vmi, int vcpu, register_t rip, struct pmap *pmap); @@ -72,6 +73,7 @@ typedef void (*vmi_vmspace_free)(struct vmspace *vmspace); struct vmm_ops { vmm_init_func_t init; /* module wide initialization */ vmm_cleanup_func_t cleanup; + vmm_resume_func_t resume; vmi_init_func_t vminit; /* vm-specific initialization */ vmi_run_func_t vmrun; -- cgit v1.1