vmm.h (241497) | vmm.h (241982) |
---|---|
1/*- 2 * Copyright (c) 2011 NetApp, Inc. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 49 unchanged lines hidden (view full) --- 58 uint64_t val); 59typedef int (*vmi_get_desc_t)(void *vmi, int vcpu, int num, 60 struct seg_desc *desc); 61typedef int (*vmi_set_desc_t)(void *vmi, int vcpu, int num, 62 struct seg_desc *desc); 63typedef int (*vmi_inject_event_t)(void *vmi, int vcpu, 64 int type, int vector, 65 uint32_t code, int code_valid); | 1/*- 2 * Copyright (c) 2011 NetApp, Inc. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 49 unchanged lines hidden (view full) --- 58 uint64_t val); 59typedef int (*vmi_get_desc_t)(void *vmi, int vcpu, int num, 60 struct seg_desc *desc); 61typedef int (*vmi_set_desc_t)(void *vmi, int vcpu, int num, 62 struct seg_desc *desc); 63typedef int (*vmi_inject_event_t)(void *vmi, int vcpu, 64 int type, int vector, 65 uint32_t code, int code_valid); |
66typedef int (*vmi_inject_nmi_t)(void *vmi, int vcpu); | |
67typedef int (*vmi_get_cap_t)(void *vmi, int vcpu, int num, int *retval); 68typedef int (*vmi_set_cap_t)(void *vmi, int vcpu, int num, int val); 69 70struct vmm_ops { 71 vmm_init_func_t init; /* module wide initialization */ 72 vmm_cleanup_func_t cleanup; 73 74 vmi_init_func_t vminit; /* vm-specific initialization */ 75 vmi_run_func_t vmrun; 76 vmi_cleanup_func_t vmcleanup; 77 vmi_mmap_set_func_t vmmmap_set; 78 vmi_mmap_get_func_t vmmmap_get; 79 vmi_get_register_t vmgetreg; 80 vmi_set_register_t vmsetreg; 81 vmi_get_desc_t vmgetdesc; 82 vmi_set_desc_t vmsetdesc; 83 vmi_inject_event_t vminject; | 66typedef int (*vmi_get_cap_t)(void *vmi, int vcpu, int num, int *retval); 67typedef int (*vmi_set_cap_t)(void *vmi, int vcpu, int num, int val); 68 69struct vmm_ops { 70 vmm_init_func_t init; /* module wide initialization */ 71 vmm_cleanup_func_t cleanup; 72 73 vmi_init_func_t vminit; /* vm-specific initialization */ 74 vmi_run_func_t vmrun; 75 vmi_cleanup_func_t vmcleanup; 76 vmi_mmap_set_func_t vmmmap_set; 77 vmi_mmap_get_func_t vmmmap_get; 78 vmi_get_register_t vmgetreg; 79 vmi_set_register_t vmsetreg; 80 vmi_get_desc_t vmgetdesc; 81 vmi_set_desc_t vmsetdesc; 82 vmi_inject_event_t vminject; |
84 vmi_inject_nmi_t vmnmi; | |
85 vmi_get_cap_t vmgetcap; 86 vmi_set_cap_t vmsetcap; 87}; 88 89extern struct vmm_ops vmm_ops_intel; 90extern struct vmm_ops vmm_ops_amd; 91 92struct vm *vm_create(const char *name); --- 12 unchanged lines hidden (view full) --- 105int vm_set_seg_desc(struct vm *vm, int vcpu, int reg, 106 struct seg_desc *desc); 107int vm_get_pinning(struct vm *vm, int vcpu, int *cpuid); 108int vm_set_pinning(struct vm *vm, int vcpu, int cpuid); 109int vm_run(struct vm *vm, struct vm_run *vmrun); 110int vm_inject_event(struct vm *vm, int vcpu, int type, 111 int vector, uint32_t error_code, int error_code_valid); 112int vm_inject_nmi(struct vm *vm, int vcpu); | 83 vmi_get_cap_t vmgetcap; 84 vmi_set_cap_t vmsetcap; 85}; 86 87extern struct vmm_ops vmm_ops_intel; 88extern struct vmm_ops vmm_ops_amd; 89 90struct vm *vm_create(const char *name); --- 12 unchanged lines hidden (view full) --- 103int vm_set_seg_desc(struct vm *vm, int vcpu, int reg, 104 struct seg_desc *desc); 105int vm_get_pinning(struct vm *vm, int vcpu, int *cpuid); 106int vm_set_pinning(struct vm *vm, int vcpu, int cpuid); 107int vm_run(struct vm *vm, struct vm_run *vmrun); 108int vm_inject_event(struct vm *vm, int vcpu, int type, 109 int vector, uint32_t error_code, int error_code_valid); 110int vm_inject_nmi(struct vm *vm, int vcpu); |
111int vm_nmi_pending(struct vm *vm, int vcpuid); 112void vm_nmi_clear(struct vm *vm, int vcpuid); |
|
113uint64_t *vm_guest_msrs(struct vm *vm, int cpu); 114struct vlapic *vm_lapic(struct vm *vm, int cpu); 115int vm_get_capability(struct vm *vm, int vcpu, int type, int *val); 116int vm_set_capability(struct vm *vm, int vcpu, int type, int val); 117int vm_get_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state *state); 118int vm_set_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state state); 119void vm_activate_cpu(struct vm *vm, int vcpu); 120cpuset_t vm_active_cpus(struct vm *vm); --- 172 unchanged lines hidden --- | 113uint64_t *vm_guest_msrs(struct vm *vm, int cpu); 114struct vlapic *vm_lapic(struct vm *vm, int cpu); 115int vm_get_capability(struct vm *vm, int vcpu, int type, int *val); 116int vm_set_capability(struct vm *vm, int vcpu, int type, int val); 117int vm_get_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state *state); 118int vm_set_x2apic_state(struct vm *vm, int vcpu, enum x2apic_state state); 119void vm_activate_cpu(struct vm *vm, int vcpu); 120cpuset_t vm_active_cpus(struct vm *vm); --- 172 unchanged lines hidden --- |