| /freebsd-14.2/sys/amd64/vmm/amd/ |
| H A D | svm.c | 618 vcpu->vcpu = vcpu1; in svm_vcpu_init() 978 vlapic = vm_lapic(vcpu->vcpu); in svm_update_virqinfo() 1187 vme = vm_exitinfo(vcpu->vcpu); in svm_write_efer() 1207 vm_inject_gp(vcpu->vcpu); in svm_write_efer() 1658 vm_inject_ud(vcpu->vcpu); in svm_vmexit() 1792 vm_nmi_clear(vcpu->vcpu); in svm_inj_interrupts() 1848 vm_extint_clear(vcpu->vcpu); in svm_inj_interrupts() 2118 vlapic = vm_lapic(vcpu->vcpu); in svm_run() 2450 vlapic = vm_lapic(vcpu->vcpu); in svm_setcap() 2534 vlapic = vm_lapic(vcpu->vcpu); in svm_getcap() [all …]
|
| H A D | svm_softc.h | 52 struct vcpu *vcpu; member 78 VCPU_CTR0((vcpu)->sc->vm, (vcpu)->vcpuid, format) 81 VCPU_CTR1((vcpu)->sc->vm, (vcpu)->vcpuid, format, p1) 84 VCPU_CTR2((vcpu)->sc->vm, (vcpu)->vcpuid, format, p1, p2) 87 VCPU_CTR3((vcpu)->sc->vm, (vcpu)->vcpuid, format, p1, p2, p3) 90 VCPU_CTR4((vcpu)->sc->vm, (vcpu)->vcpuid, format, p1, p2, p3, p4) 96 return (vcpu->vmcb); in svm_get_vmcb() 103 return (&vcpu->vmcb->state); in svm_get_vmcb_state() 110 return (&vcpu->vmcb->ctrl); in svm_get_vmcb_ctrl() 117 return (&vcpu->swctx); in svm_get_guest_regctx() [all …]
|
| H A D | vmcb.c | 124 vmcb = svm_get_vmcb(vcpu); in vmcb_access() 153 svm_set_dirty(vcpu, 0xffffffff); in vmcb_access() 169 vmcb = svm_get_vmcb(vcpu); in vmcb_read() 248 *retval = vlapic_get_cr8(vm_lapic(vcpu->vcpu)); in vmcb_read() 275 vmcb = svm_get_vmcb(vcpu); in vmcb_write() 286 svm_set_dirty(vcpu, VMCB_CACHE_CR); in vmcb_write() 296 svm_set_dirty(vcpu, VMCB_CACHE_CR); in vmcb_write() 301 svm_set_dirty(vcpu, VMCB_CACHE_CR); in vmcb_write() 306 svm_set_dirty(vcpu, VMCB_CACHE_DR); in vmcb_write() 387 vmcb = svm_get_vmcb(vcpu); in vmcb_setdesc() [all …]
|
| H A D | svm_msr.c | 73 svm_msr_guest_init(struct svm_softc *sc, struct svm_vcpu *vcpu) in svm_msr_guest_init() argument 87 svm_msr_guest_enter(struct svm_vcpu *vcpu) in svm_msr_guest_enter() argument 95 svm_msr_guest_exit(struct svm_vcpu *vcpu) in svm_msr_guest_exit() argument 109 svm_rdmsr(struct svm_vcpu *vcpu, u_int num, uint64_t *result, bool *retu) in svm_rdmsr() argument 124 if (vm_rdmtrr(&vcpu->mtrr, num, result) != 0) { in svm_rdmsr() 125 vm_inject_gp(vcpu->vcpu); in svm_rdmsr() 142 svm_wrmsr(struct svm_vcpu *vcpu, u_int num, uint64_t val, bool *retu) in svm_wrmsr() argument 156 if (vm_wrmtrr(&vcpu->mtrr, num, val) != 0) { in svm_wrmsr() 157 vm_inject_gp(vcpu->vcpu); in svm_wrmsr() 174 svm_set_tsc_offset(vcpu, val - rdtsc()); in svm_wrmsr()
|
| /freebsd-14.2/sys/amd64/vmm/ |
| H A D | vmm.c | 344 struct vcpu *vcpu; in vcpu_alloc() local 362 vcpu_init(struct vcpu *vcpu) in vcpu_init() argument 364 vcpu->cookie = vmmops_vcpu_init(vcpu->vm->cookie, vcpu, vcpu->vcpuid); in vcpu_init() 533 struct vcpu *vcpu; in vm_alloc_vcpu() local 543 vcpu = vm->vcpu[vcpuid]; in vm_alloc_vcpu() 2889 struct vcpu *vcpu; in vm_snapshot_vcpus() local 2895 vcpu = vm->vcpu[i]; in vm_snapshot_vcpus() 2942 struct vcpu *vcpu; in vm_snapshot_vcpu() local 2949 vcpu = vm->vcpu[i]; in vm_snapshot_vcpu() 3020 struct vcpu *vcpu; in vm_restore_time() local [all …]
|
| H A D | vmm_lapic.h | 32 struct vcpu; 36 int lapic_rdmsr(struct vcpu *vcpu, u_int msr, uint64_t *rval, bool *retu); 37 int lapic_wrmsr(struct vcpu *vcpu, u_int msr, uint64_t wval, bool *retu); 39 int lapic_mmio_read(struct vcpu *vcpu, uint64_t gpa, 41 int lapic_mmio_write(struct vcpu *vcpu, uint64_t gpa, 48 int lapic_set_intr(struct vcpu *vcpu, int vector, bool trig); 53 lapic_intr_level(struct vcpu *vcpu, int vector) in lapic_intr_level() argument 56 return (lapic_set_intr(vcpu, vector, LAPIC_TRIG_LEVEL)); in lapic_intr_level() 60 lapic_intr_edge(struct vcpu *vcpu, int vector) in lapic_intr_edge() argument 63 return (lapic_set_intr(vcpu, vector, LAPIC_TRIG_EDGE)); in lapic_intr_edge() [all …]
|
| H A D | vmm_instruction_emul.c | 372 vie_update_register(struct vcpu *vcpu, enum vm_reg_name reg, in vie_update_register() argument 508 emulate_mov(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_mov() argument 622 emulate_movx(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_movx() argument 710 get_gla(struct vcpu *vcpu, struct vie *vie __unused, in get_gla() argument 763 emulate_movs(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_movs() argument 945 emulate_stos(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_stos() argument 1007 emulate_and(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_and() argument 1095 emulate_or(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_or() argument 1183 emulate_cmp(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_cmp() argument 1401 emulate_add(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, in emulate_add() argument [all …]
|
| H A D | vmm_lapic.c | 51 lapic_set_intr(struct vcpu *vcpu, int vector, bool level) in lapic_set_intr() argument 62 vlapic = vm_lapic(vcpu); in lapic_set_intr() 69 lapic_set_local_intr(struct vm *vm, struct vcpu *vcpu, int vector) in lapic_set_local_intr() argument 75 if (vcpu == NULL) { in lapic_set_local_intr() 85 vlapic = vm_lapic(vcpu); in lapic_set_local_intr() 151 lapic_rdmsr(struct vcpu *vcpu, u_int msr, uint64_t *rval, bool *retu) in lapic_rdmsr() argument 157 vlapic = vm_lapic(vcpu); in lapic_rdmsr() 171 lapic_wrmsr(struct vcpu *vcpu, u_int msr, uint64_t val, bool *retu) in lapic_wrmsr() argument 177 vlapic = vm_lapic(vcpu); in lapic_wrmsr() 190 lapic_mmio_write(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size, in lapic_mmio_write() argument [all …]
|
| H A D | vmm_stat.h | 46 typedef void (*vmm_stat_func_t)(struct vcpu *vcpu, 88 int vmm_stat_copy(struct vcpu *vcpu, int index, int count, 93 vmm_stat_array_incr(struct vcpu *vcpu, struct vmm_stat_type *vst, int statidx, in vmm_stat_array_incr() argument 99 stats = vcpu_stats(vcpu); in vmm_stat_array_incr() 107 vmm_stat_array_set(struct vcpu *vcpu, struct vmm_stat_type *vst, int statidx, in vmm_stat_array_set() argument 113 stats = vcpu_stats(vcpu); in vmm_stat_array_set() 121 vmm_stat_incr(struct vcpu *vcpu, struct vmm_stat_type *vst, uint64_t x) in vmm_stat_incr() argument 125 vmm_stat_array_incr(vcpu, vst, 0, x); in vmm_stat_incr() 130 vmm_stat_set(struct vcpu *vcpu, struct vmm_stat_type *vst, uint64_t val) in vmm_stat_set() argument 134 vmm_stat_array_set(vcpu, vst, 0, val); in vmm_stat_set()
|
| /freebsd-14.2/sys/amd64/include/ |
| H A D | vmm.h | 278 int vm_run(struct vcpu *vcpu); 280 int vm_inject_nmi(struct vcpu *vcpu); 281 int vm_nmi_pending(struct vcpu *vcpu); 282 void vm_nmi_clear(struct vcpu *vcpu); 286 int vcpu_vcpuid(struct vcpu *vcpu); 287 struct vm *vcpu_vm(struct vcpu *vcpu); 361 int vcpu_debugged(struct vcpu *vcpu); 391 vcpu_should_yield(struct vcpu *vcpu) in vcpu_should_yield() argument 400 void *vcpu_stats(struct vcpu *vcpu); 785 vm_inject_ud(struct vcpu *vcpu) in vm_inject_ud() argument [all …]
|
| H A D | vmm_instruction_emul.h | 37 typedef int (*mem_region_read_t)(struct vcpu *vcpu, uint64_t gpa, 40 typedef int (*mem_region_write_t)(struct vcpu *vcpu, uint64_t gpa, 54 int vmm_emulate_instruction(struct vcpu *vcpu, uint64_t gpa, struct vie *vie, 58 int vie_update_register(struct vcpu *vcpu, enum vm_reg_name reg, 82 int vmm_fetch_instruction(struct vcpu *vcpu, 95 int vm_gla2gpa(struct vcpu *vcpu, struct vm_guest_paging *paging, 102 int vm_gla2gpa_nofault(struct vcpu *vcpu, struct vm_guest_paging *paging, 122 int vmm_decode_instruction(struct vcpu *vcpu, uint64_t gla,
|
| /freebsd-14.2/lib/libvmmapi/ |
| H A D | vmmapi.h | 125 void vm_vcpu_close(struct vcpu *vcpu); 126 int vcpu_id(struct vcpu *vcpu); 135 int vm_gla2gpa_nofault(struct vcpu *vcpu, 145 int vm_set_desc(struct vcpu *vcpu, int reg, 147 int vm_get_desc(struct vcpu *vcpu, int reg, 176 int vm_inject_nmi(struct vcpu *vcpu); 234 int vcpu_reset(struct vcpu *vcpu); 239 int vm_activate_cpu(struct vcpu *vcpu); 241 int vm_suspend_cpu(struct vcpu *vcpu); 243 int vm_resume_cpu(struct vcpu *vcpu); [all …]
|
| H A D | vmmapi_freebsd.c | 71 vm_setup_freebsd_registers_i386(struct vcpu *vcpu, uint32_t eip, in vm_setup_freebsd_registers_i386() argument 125 error = vm_set_desc(vcpu, VM_REG_GUEST_CS, in vm_setup_freebsd_registers_i386() 129 error = vm_set_desc(vcpu, VM_REG_GUEST_DS, in vm_setup_freebsd_registers_i386() 134 error = vm_set_desc(vcpu, VM_REG_GUEST_ES, in vm_setup_freebsd_registers_i386() 139 error = vm_set_desc(vcpu, VM_REG_GUEST_FS, in vm_setup_freebsd_registers_i386() 144 error = vm_set_desc(vcpu, VM_REG_GUEST_GS, in vm_setup_freebsd_registers_i386() 149 error = vm_set_desc(vcpu, VM_REG_GUEST_SS, in vm_setup_freebsd_registers_i386() 157 error = vm_set_desc(vcpu, VM_REG_GUEST_TR, in vm_setup_freebsd_registers_i386() 221 vm_setup_freebsd_registers(struct vcpu *vcpu, in vm_setup_freebsd_registers() argument 250 error = vm_set_desc(vcpu, VM_REG_GUEST_CS, in vm_setup_freebsd_registers() [all …]
|
| H A D | vmmapi.c | 163 struct vcpu *vcpu; in vm_vcpu_open() local 165 vcpu = malloc(sizeof(*vcpu)); in vm_vcpu_open() 172 vm_vcpu_close(struct vcpu *vcpu) in vm_vcpu_close() argument 178 vcpu_id(struct vcpu *vcpu) in vcpu_id() argument 611 vm_set_desc(struct vcpu *vcpu, int reg, in vm_set_desc() argument 905 vm_inject_nmi(struct vcpu *vcpu) in vm_inject_nmi() argument 1172 vcpu_reset(struct vcpu *vcpu) in vcpu_reset() argument 1562 vm_activate_cpu(struct vcpu *vcpu) in vm_activate_cpu() argument 1585 vm_suspend_cpu(struct vcpu *vcpu) in vm_suspend_cpu() argument 1596 vm_resume_cpu(struct vcpu *vcpu) in vm_resume_cpu() argument [all …]
|
| /freebsd-14.2/usr.sbin/bhyve/amd64/ |
| H A D | task_switch.c | 101 GETREG(struct vcpu *vcpu, int reg) in GETREG() argument 112 SETREG(struct vcpu *vcpu, int reg, uint64_t val) in SETREG() argument 152 sel_exception(struct vcpu *vcpu, int vector, uint16_t sel, int ext) in sel_exception() argument 174 desc_table_limit_check(struct vcpu *vcpu, uint16_t sel) in desc_table_limit_check() argument 204 desc_table_rw(struct vcpu *vcpu, struct vm_guest_paging *paging, in desc_table_rw() argument 232 desc_table_read(struct vcpu *vcpu, struct vm_guest_paging *paging, in desc_table_read() argument 253 read_tss_descriptor(struct vcpu *vcpu, struct vm_task_switch *ts, in read_tss_descriptor() argument 309 validate_seg_desc(struct vcpu *vcpu, struct vm_task_switch *ts, in validate_seg_desc() argument 435 tss32_save(struct vcpu *vcpu, struct vm_task_switch *task_switch, in tss32_save() argument 468 update_seg_desc(struct vcpu *vcpu, int reg, struct seg_desc *sd) in update_seg_desc() argument [all …]
|
| H A D | vmexit.c | 60 vm_inject_fault(struct vcpu *vcpu, int vector, int errcode_valid, in vm_inject_fault() argument 73 vmexit_inout(struct vmctx *ctx, struct vcpu *vcpu, struct vm_run *vmrun) in vmexit_inout() argument 97 vmexit_rdmsr(struct vmctx *ctx __unused, struct vcpu *vcpu, in vmexit_rdmsr() argument 130 vmexit_wrmsr(struct vmctx *ctx __unused, struct vcpu *vcpu, in vmexit_wrmsr() argument 289 vmexit_bogus(struct vmctx *ctx __unused, struct vcpu *vcpu __unused, in vmexit_bogus() 307 vmexit_hlt(struct vmctx *ctx __unused, struct vcpu *vcpu __unused, in vmexit_hlt() 326 vmexit_mtrap(struct vmctx *ctx __unused, struct vcpu *vcpu, in vmexit_mtrap() argument 343 vmexit_inst_emul(struct vmctx *ctx __unused, struct vcpu *vcpu, in vmexit_inst_emul() argument 423 vmexit_debug(struct vmctx *ctx __unused, struct vcpu *vcpu, in vmexit_debug() argument 457 vmexit_breakpoint(struct vmctx *ctx __unused, struct vcpu *vcpu, in vmexit_breakpoint() argument [all …]
|
| H A D | bhyverun_machdep.c | 67 bhyve_init_vcpu(struct vcpu *vcpu) in bhyve_init_vcpu() argument 77 vm_set_capability(vcpu, VM_CAP_HALT_EXIT, 1); in bhyve_init_vcpu() 89 vm_set_capability(vcpu, VM_CAP_PAUSE_EXIT, 1); in bhyve_init_vcpu() 93 err = vm_set_x2apic_state(vcpu, X2APIC_ENABLED); in bhyve_init_vcpu() 95 err = vm_set_x2apic_state(vcpu, X2APIC_DISABLED); in bhyve_init_vcpu() 102 vm_set_capability(vcpu, VM_CAP_ENABLE_INVPCID, 1); in bhyve_init_vcpu() 109 bhyve_start_vcpu(struct vcpu *vcpu, bool bsp) in bhyve_start_vcpu() argument 115 error = vm_set_capability(vcpu, in bhyve_start_vcpu() 121 error = vcpu_reset(vcpu); in bhyve_start_vcpu() 125 bhyve_init_vcpu(vcpu); in bhyve_start_vcpu() [all …]
|
| /freebsd-14.2/sys/amd64/vmm/intel/ |
| H A D | vmx.c | 1134 vcpu->vcpu = vcpu1; in vmx_vcpu_init() 1449 vm_nmi_clear(vcpu->vcpu); in vmx_inject_nmi() 1704 vm_inject_gp(vcpu->vcpu); in vmx_emulate_xsetbv() 1710 vm_inject_ud(vcpu->vcpu); in vmx_emulate_xsetbv() 1716 vm_inject_gp(vcpu->vcpu); in vmx_emulate_xsetbv() 1721 vm_inject_gp(vcpu->vcpu); in vmx_emulate_xsetbv() 1728 vm_inject_gp(vcpu->vcpu); in vmx_emulate_xsetbv() 3918 vcpu = vlapic_vtx->vcpu; in vmx_enable_x2apic_mode_ts() 3943 vcpu = vlapic_vtx->vcpu; in vmx_enable_x2apic_mode_vid() 4092 vlapic->vcpu = vcpu->vcpu; in vmx_vlapic_init() [all …]
|
| H A D | vmx_msr.c | 319 if (vcpu->vcpuid == 0) { in vmx_msr_guest_init() 343 vmx_msr_guest_enter(struct vmx_vcpu *vcpu) in vmx_msr_guest_enter() argument 366 vmx_msr_guest_exit(struct vmx_vcpu *vcpu) in vmx_msr_guest_exit() argument 420 if (vm_rdmtrr(&vcpu->mtrr, num, val) != 0) { in vmx_rdmsr() 421 vm_inject_gp(vcpu->vcpu); in vmx_rdmsr() 435 *val = vcpu->guest_msrs[IDX_MSR_PAT]; in vmx_rdmsr() 463 vm_inject_gp(vcpu->vcpu); in vmx_wrmsr() 488 vcpu->guest_msrs[IDX_MSR_PAT] = val; in vmx_wrmsr() 490 vm_inject_gp(vcpu->vcpu); in vmx_wrmsr() 502 vcpu->guest_msrs[IDX_MSR_TSC_AUX] = val; in vmx_wrmsr() [all …]
|
| H A D | vmx.h | 129 struct vcpu *vcpu; member 152 #define VMX_CTR0(vcpu, format) \ argument 153 VCPU_CTR0((vcpu)->vmx->vm, (vcpu)->vcpuid, format) 155 #define VMX_CTR1(vcpu, format, p1) \ argument 156 VCPU_CTR1((vcpu)->vmx->vm, (vcpu)->vcpuid, format, p1) 158 #define VMX_CTR2(vcpu, format, p1, p2) \ argument 159 VCPU_CTR2((vcpu)->vmx->vm, (vcpu)->vcpuid, format, p1, p2) 161 #define VMX_CTR3(vcpu, format, p1, p2, p3) \ argument 162 VCPU_CTR3((vcpu)->vmx->vm, (vcpu)->vcpuid, format, p1, p2, p3) 164 #define VMX_CTR4(vcpu, format, p1, p2, p3, p4) \ argument [all …]
|
| /freebsd-14.2/usr.sbin/bhyvectl/ |
| H A D | bhyvectl.c | 161 printf("vm exit[%d]\n", vcpu); in dump_vm_run_exitcode() 342 dump_amd_msr_pm(bitmap, vcpu); in dump_msr_bitmap() 355 vm_get_vmcs_field(struct vcpu *vcpu, int field, uint64_t *ret_val) in vm_get_vmcs_field() argument 362 vm_get_vmcb_field(struct vcpu *vcpu, int off, int bytes, in vm_get_vmcb_field() argument 484 get_all_registers(struct vcpu *vcpu, int vcpuid) in get_all_registers() argument 671 get_all_segments(struct vcpu *vcpu, int vcpuid) in get_all_segments() argument 818 get_misc_vmcs(struct vcpu *vcpu, int vcpuid) in get_misc_vmcs() argument 1052 get_misc_vmcb(struct vcpu *vcpu, int vcpuid) in get_misc_vmcb() argument 1638 struct vcpu *vcpu; in main() local 1972 error = vm_inject_nmi(vcpu); in main() [all …]
|
| /freebsd-14.2/usr.sbin/bhyve/ |
| H A D | gdb.h | 31 void gdb_cpu_add(struct vcpu *vcpu); 32 void gdb_cpu_breakpoint(struct vcpu *vcpu, struct vm_exit *vmexit); 33 void gdb_cpu_mtrap(struct vcpu *vcpu); 34 void gdb_cpu_suspend(struct vcpu *vcpu); 35 void gdb_cpu_debug(struct vcpu *vcpu, struct vm_exit *vmexit);
|
| H A D | bhyverun.c | 109 static void vm_loop(struct vmctx *ctx, struct vcpu *vcpu); 113 struct vcpu *vcpu; member 285 int vcpu, pcpu; in pincpu_parse() local 292 if (vcpu < 0) { in pincpu_parse() 368 int vcpu; in build_vcpumaps() local 371 for (vcpu = 0; vcpu < guest_ncpus; vcpu++) { in build_vcpumaps() 379 parse_cpuset(vcpu, value, vcpumap[vcpu]); in build_vcpumaps() 405 struct vcpu * 496 vm_loop(struct vmctx *ctx, struct vcpu *vcpu) in vm_loop() argument 538 num_vcpus_allowed(struct vmctx *ctx, struct vcpu *vcpu) in num_vcpus_allowed() argument [all …]
|
| H A D | mem.c | 142 typedef int (mem_cb_t)(struct vcpu *vcpu, uint64_t gpa, struct mem_range *mr, 146 mem_read(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size, void *arg) in mem_read() argument 157 mem_write(struct vcpu *vcpu, uint64_t gpa, uint64_t wval, int size, void *arg) in mem_write() argument 168 access_memory(struct vcpu *vcpu, uint64_t paddr, mem_cb_t *cb, void *arg) in access_memory() argument 173 vcpuid = vcpu_id(vcpu); in access_memory() 215 err = cb(vcpu, paddr, &entry->mr_param, arg); in access_memory() 231 emulate_mem_cb(struct vcpu *vcpu, uint64_t paddr, struct mem_range *mr, in emulate_mem_cb() argument 242 emulate_mem(struct vcpu *vcpu, uint64_t paddr, struct vie *vie, in emulate_mem() argument 259 rw_mem_cb(struct vcpu *vcpu, uint64_t paddr, struct mem_range *mr, void *arg) in rw_mem_cb() argument 269 read_mem(struct vcpu *vcpu, uint64_t gpa, uint64_t *rval, int size) in read_mem() argument [all …]
|
| H A D | bhyverun.h | 40 struct vcpu; 49 struct vcpu; 50 struct vcpu *fbsdrun_vcpu(int vcpuid); 57 typedef int (*vmexit_handler_t)(struct vmctx *, struct vcpu *, struct vm_run *); 61 void bhyve_init_vcpu(struct vcpu *vcpu); 62 void bhyve_start_vcpu(struct vcpu *vcpu, bool bsp); 63 int bhyve_init_platform(struct vmctx *ctx, struct vcpu *bsp); 64 int bhyve_init_platform_late(struct vmctx *ctx, struct vcpu *bsp);
|