Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/include/vmm.h
Show First 20 Lines • Show All 183 Lines • ▼ Show 20 Lines | |||||
typedef struct vlapic * (*vmi_vlapic_init)(void *vmi, int vcpu); | typedef struct vlapic * (*vmi_vlapic_init)(void *vmi, int vcpu); | ||||
typedef void (*vmi_vlapic_cleanup)(void *vmi, struct vlapic *vlapic); | typedef void (*vmi_vlapic_cleanup)(void *vmi, struct vlapic *vlapic); | ||||
typedef int (*vmi_snapshot_t)(void *vmi, struct vm_snapshot_meta *meta); | typedef int (*vmi_snapshot_t)(void *vmi, struct vm_snapshot_meta *meta); | ||||
typedef int (*vmi_snapshot_vmcx_t)(void *vmi, struct vm_snapshot_meta *meta, | typedef int (*vmi_snapshot_vmcx_t)(void *vmi, struct vm_snapshot_meta *meta, | ||||
int vcpu); | int vcpu); | ||||
typedef int (*vmi_restore_tsc_t)(void *vmi, int vcpuid, uint64_t now); | typedef int (*vmi_restore_tsc_t)(void *vmi, int vcpuid, uint64_t now); | ||||
struct vmm_ops { | struct vmm_ops { | ||||
vmm_init_func_t init; /* module wide initialization */ | vmm_init_func_t modinit; /* module wide initialization */ | ||||
vmm_cleanup_func_t cleanup; | vmm_cleanup_func_t modcleanup; | ||||
vmm_resume_func_t resume; | vmm_resume_func_t modresume; | ||||
vmi_init_func_t vminit; /* vm-specific initialization */ | vmi_init_func_t init; /* vm-specific initialization */ | ||||
vmi_run_func_t vmrun; | vmi_run_func_t run; | ||||
vmi_cleanup_func_t vmcleanup; | vmi_cleanup_func_t cleanup; | ||||
vmi_get_register_t vmgetreg; | vmi_get_register_t getreg; | ||||
vmi_set_register_t vmsetreg; | vmi_set_register_t setreg; | ||||
vmi_get_desc_t vmgetdesc; | vmi_get_desc_t getdesc; | ||||
vmi_set_desc_t vmsetdesc; | vmi_set_desc_t setdesc; | ||||
vmi_get_cap_t vmgetcap; | vmi_get_cap_t getcap; | ||||
vmi_set_cap_t vmsetcap; | vmi_set_cap_t setcap; | ||||
vmi_vmspace_alloc vmspace_alloc; | vmi_vmspace_alloc vmspace_alloc; | ||||
vmi_vmspace_free vmspace_free; | vmi_vmspace_free vmspace_free; | ||||
vmi_vlapic_init vlapic_init; | vmi_vlapic_init vlapic_init; | ||||
vmi_vlapic_cleanup vlapic_cleanup; | vmi_vlapic_cleanup vlapic_cleanup; | ||||
/* checkpoint operations */ | /* checkpoint operations */ | ||||
vmi_snapshot_t vmsnapshot; | vmi_snapshot_t snapshot; | ||||
vmi_snapshot_vmcx_t vmcx_snapshot; | vmi_snapshot_vmcx_t vmcx_snapshot; | ||||
vmi_restore_tsc_t vm_restore_tsc; | vmi_restore_tsc_t restore_tsc; | ||||
}; | }; | ||||
extern struct vmm_ops vmm_ops_intel; | extern const struct vmm_ops vmm_ops_intel; | ||||
extern struct vmm_ops vmm_ops_amd; | extern const struct vmm_ops vmm_ops_amd; | ||||
int vm_create(const char *name, struct vm **retvm); | int vm_create(const char *name, struct vm **retvm); | ||||
void vm_destroy(struct vm *vm); | void vm_destroy(struct vm *vm); | ||||
int vm_reinit(struct vm *vm); | int vm_reinit(struct vm *vm); | ||||
const char *vm_name(struct vm *vm); | const char *vm_name(struct vm *vm); | ||||
uint16_t vm_get_maxcpus(struct vm *vm); | uint16_t vm_get_maxcpus(struct vm *vm); | ||||
void vm_get_topology(struct vm *vm, uint16_t *sockets, uint16_t *cores, | void vm_get_topology(struct vm *vm, uint16_t *sockets, uint16_t *cores, | ||||
uint16_t *threads, uint16_t *maxcpus); | uint16_t *threads, uint16_t *maxcpus); | ||||
▲ Show 20 Lines • Show All 550 Lines • Show Last 20 Lines |