/illumos-gate/usr/src/uts/intel/io/vmm/ |
H A D | vmm.c | 311 static bool vcpu_sleep_bailout_checks(struct vm *vm, int vcpuid); 312 static int vcpu_vector_sipi(struct vm *vm, int vcpuid, uint8_t vector); 429 vcpu_trace_exceptions(struct vm *vm, int vcpuid) in vcpu_trace_exceptions() argument 435 vcpu_trap_wbinvd(struct vm *vm, int vcpuid) in vcpu_trap_wbinvd() argument 828 vm_mem_allocated(struct vm *vm, int vcpuid, vm_paddr_t gpa) in vm_mem_allocated() argument 835 state = vcpu_get_state(vm, vcpuid, &hostcpu); in vm_mem_allocated() 1182 vm_get_register(struct vm *vm, int vcpuid, int reg, uint64_t *retval) in vm_get_register() argument 1184 if (vcpuid < 0 || vcpuid >= vm->maxcpus) in vm_get_register() 1190 struct vcpu *vcpu = &vm->vcpu[vcpuid]; in vm_get_register() 1196 return (VMGETREG(vm->cookie, vcpuid, reg, retval)); in vm_get_register() [all …]
|
H A D | vmm_instruction_emul.c | 536 vie_read_bytereg(struct vie *vie, struct vm *vm, int vcpuid, uint8_t *rval) in vie_read_bytereg() argument 543 error = vm_get_register(vm, vcpuid, reg, &val); in vie_read_bytereg() 557 vie_write_bytereg(struct vie *vie, struct vm *vm, int vcpuid, uint8_t byte) in vie_write_bytereg() argument 564 error = vm_get_register(vm, vcpuid, reg, &origval); in vie_write_bytereg() 577 error = vm_set_register(vm, vcpuid, reg, val); in vie_write_bytereg() 583 vie_update_register(struct vm *vm, int vcpuid, enum vm_reg_name reg, in vie_update_register() argument 592 error = vm_get_register(vm, vcpuid, reg, &origval); in vie_update_register() 607 error = vm_set_register(vm, vcpuid, reg, val); in vie_update_register() 782 vie_emulate_mov_cr(struct vie *vie, struct vm *vm, int vcpuid) in vie_emulate_mov_cr() argument 803 vm_inject_gp(vm, vcpuid); in vie_emulate_mov_cr() [all …]
|
H A D | vmm_cpuid.c | 228 cpuid_apply_runtime_reg_state(struct vm *vm, int vcpuid, uint32_t func, in cpuid_apply_runtime_reg_state() argument 243 error = vm_get_register(vm, vcpuid, in cpuid_apply_runtime_reg_state() 258 if (vlapic_hw_disabled(vm_lapic(vm, vcpuid))) { in cpuid_apply_runtime_reg_state() 356 vcpu_emulate_cpuid(struct vm *vm, int vcpuid, uint64_t *rax, uint64_t *rbx, in vcpu_emulate_cpuid() argument 359 const vcpu_cpuid_config_t *cfg = vm_cpuid_config(vm, vcpuid); in vcpu_emulate_cpuid() 373 legacy_emulate_cpuid(vm, vcpuid, ®s[0], ®s[1], ®s[2], in vcpu_emulate_cpuid() 401 cpuid_apply_runtime_reg_state(vm, vcpuid, func, index, ®s[0], in vcpu_emulate_cpuid() 423 vm_get_cpuid(struct vm *vm, int vcpuid, vcpu_cpuid_config_t *res) in vm_get_cpuid() argument 425 if (vcpuid < 0 || vcpuid > VM_MAXCPU) { in vm_get_cpuid() 429 const vcpu_cpuid_config_t *src = vm_cpuid_config(vm, vcpuid); in vm_get_cpuid() [all …]
|
/illumos-gate/usr/src/uts/intel/io/vmm/sys/ |
H A D | vmm_kernel.h | 182 bool vm_mem_allocated(struct vm *vm, int vcpuid, vm_paddr_t gpa); 190 int vm_get_run_state(struct vm *vm, int vcpuid, uint32_t *state, 192 int vm_set_run_state(struct vm *vm, int vcpuid, uint32_t state, 194 int vm_get_fpu(struct vm *vm, int vcpuid, void *buf, size_t len); 195 int vm_set_fpu(struct vm *vm, int vcpuid, void *buf, size_t len); 196 int vm_run(struct vm *vm, int vcpuid, const struct vm_entry *); 199 bool vm_nmi_pending(struct vm *vm, int vcpuid); 200 void vm_nmi_clear(struct vm *vm, int vcpuid); 202 bool vm_extint_pending(struct vm *vm, int vcpuid); 203 void vm_extint_clear(struct vm *vm, int vcpuid); [all …]
|
H A D | vmm_instruction_emul.h | 68 void vie_cs_info(const struct vie *vie, struct vm *vm, int vcpuid, 74 int vie_emulate_mmio(struct vie *vie, struct vm *vm, int vcpuid); 75 int vie_emulate_inout(struct vie *vie, struct vm *vm, int vcpuid); 76 int vie_emulate_other(struct vie *vie, struct vm *vm, int vcpuid); 94 int vm_gla2gpa(struct vm *vm, int vcpuid, struct vm_guest_paging *paging, 101 int vm_gla2gpa_nofault(struct vm *vm, int vcpuid,
|
/illumos-gate/usr/src/uts/intel/io/vmm/intel/ |
H A D | vmx_msr.c | 163 vmx_msr_bitmap_change_access(struct vmx *vmx, int vcpuid, uint_t msr, int acc) in vmx_msr_bitmap_change_access() argument 165 uint8_t *bitmap = vmx->msr_bitmap[vcpuid]; in vmx_msr_bitmap_change_access() 324 vmx_msr_guest_init(struct vmx *vmx, int vcpuid) in vmx_msr_guest_init() argument 326 uint64_t *guest_msrs = vmx->guest_msrs[vcpuid]; in vmx_msr_guest_init() 349 guest_msr_rw(vmx, vcpuid, MSR_GSBASE); in vmx_msr_guest_init() 350 guest_msr_rw(vmx, vcpuid, MSR_FSBASE); in vmx_msr_guest_init() 351 guest_msr_rw(vmx, vcpuid, MSR_SYSENTER_CS_MSR); in vmx_msr_guest_init() 352 guest_msr_rw(vmx, vcpuid, MSR_SYSENTER_ESP_MSR); in vmx_msr_guest_init() 353 guest_msr_rw(vmx, vcpuid, MSR_SYSENTER_EIP_MSR); in vmx_msr_guest_init() 354 guest_msr_rw(vmx, vcpuid, MSR_EFER); in vmx_msr_guest_init() [all …]
|
H A D | vmx_msr.h | 36 void vmx_msr_guest_init(struct vmx *vmx, int vcpuid); 37 void vmx_msr_guest_enter(struct vmx *vmx, int vcpuid); 38 void vmx_msr_guest_exit(struct vmx *vmx, int vcpuid); 64 #define guest_msr_rw(vmx, vcpuid, msr) \ argument 65 vmx_msr_bitmap_change_access((vmx), (vcpuid), (msr), MSR_BITMAP_ACCESS_RW) 67 #define guest_msr_ro(vmx, vcpuid, msr) \ argument 68 vmx_msr_bitmap_change_access((vmx), (vcpuid), (msr), MSR_BITMAP_ACCESS_READ)
|
H A D | vmx.c | 312 vmx_allow_x2apic_msrs(struct vmx *vmx, int vcpuid) in vmx_allow_x2apic_msrs() argument 317 guest_msr_ro(vmx, vcpuid, MSR_APIC_ID); in vmx_allow_x2apic_msrs() 318 guest_msr_ro(vmx, vcpuid, MSR_APIC_VERSION); in vmx_allow_x2apic_msrs() 319 guest_msr_ro(vmx, vcpuid, MSR_APIC_LDR); in vmx_allow_x2apic_msrs() 320 guest_msr_ro(vmx, vcpuid, MSR_APIC_SVR); in vmx_allow_x2apic_msrs() 323 guest_msr_ro(vmx, vcpuid, MSR_APIC_ISR0 + i); in vmx_allow_x2apic_msrs() 324 guest_msr_ro(vmx, vcpuid, MSR_APIC_TMR0 + i); in vmx_allow_x2apic_msrs() 325 guest_msr_ro(vmx, vcpuid, MSR_APIC_IRR0 + i); in vmx_allow_x2apic_msrs() 328 guest_msr_ro(vmx, vcpuid, MSR_APIC_ESR); in vmx_allow_x2apic_msrs() 329 guest_msr_ro(vmx, vcpuid, MSR_APIC_LVT_TIMER); in vmx_allow_x2apic_msrs() [all …]
|
/illumos-gate/usr/src/cmd/bhyvectl/ |
H A D | bhyvectl.c | 371 int vcpuid = vcpu_id(vcpu); in get_all_registers() local 377 printf("efer[%d]\t\t0x%016lx\n", vcpuid, efer); in get_all_registers() 383 printf("cr0[%d]\t\t0x%016lx\n", vcpuid, cr0); in get_all_registers() 389 printf("cr2[%d]\t\t0x%016lx\n", vcpuid, cr2); in get_all_registers() 395 printf("cr3[%d]\t\t0x%016lx\n", vcpuid, cr3); in get_all_registers() 401 printf("cr4[%d]\t\t0x%016lx\n", vcpuid, cr4); in get_all_registers() 407 printf("dr0[%d]\t\t0x%016lx\n", vcpuid, dr0); in get_all_registers() 413 printf("dr1[%d]\t\t0x%016lx\n", vcpuid, dr1); in get_all_registers() 419 printf("dr2[%d]\t\t0x%016lx\n", vcpuid, dr2); in get_all_registers() 425 printf("dr3[%d]\t\t0x%016lx\n", vcpuid, dr3); in get_all_registers() [all …]
|
/illumos-gate/usr/src/lib/libvmm/ |
H A D | libvmm.c | 383 vmm_step(vmm_t *vmm, int vcpuid) in vmm_step() argument 388 if (vcpuid >= vmm->vmm_ncpu) { in vmm_step() 393 ret = vm_set_capability(vmm->vmm_vcpu[vcpuid], VM_CAP_MTRAP_EXIT, 1); in vmm_step() 397 assert(vm_resume_cpu(vmm->vmm_vcpu[vcpuid]) == 0); in vmm_step() 401 } while (!CPU_ISSET(vcpuid, &cpuset)); in vmm_step() 403 (void) vm_set_capability(vmm->vmm_vcpu[vcpuid], VM_CAP_MTRAP_EXIT, 0); in vmm_step() 539 vmm_getreg(vmm_t *vmm, int vcpuid, int reg, uint64_t *val) in vmm_getreg() argument 546 return (vm_get_register(vmm->vmm_vcpu[vcpuid], reg, val)); in vmm_getreg() 550 vmm_setreg(vmm_t *vmm, int vcpuid, int reg, uint64_t val) in vmm_setreg() argument 557 return (vm_set_register(vmm->vmm_vcpu[vcpuid], reg, val)); in vmm_setreg() [all …]
|
/illumos-gate/usr/src/cmd/bhyve/common/ |
H A D | bhyverun.c | 125 int vcpuid; member 372 fbsdrun_vcpu(int vcpuid) in fbsdrun_vcpu() argument 374 return (vcpu_info[vcpuid].vcpu); in fbsdrun_vcpu() 386 snprintf(tname, sizeof(tname), "vcpu %d", vi->vcpuid); in fbsdrun_start_thread() 390 if (vcpumap[vi->vcpuid] != NULL) { in fbsdrun_start_thread() 392 sizeof(cpuset_t), vcpumap[vi->vcpuid]); in fbsdrun_start_thread() 407 fbsdrun_addcpu(int vcpuid, bool suspend) in fbsdrun_addcpu() argument 413 vi = &vcpu_info[vcpuid]; in fbsdrun_addcpu() 417 err(EX_OSERR, "could not activate CPU %d", vi->vcpuid); in fbsdrun_addcpu() 419 CPU_SET_ATOMIC(vcpuid, &cpumask); in fbsdrun_addcpu() [all …]
|
H A D | gdb.c | 749 int vcpuid = vcpu_id(vcpu); in _gdb_cpu_suspend() local 751 debug("$vCPU %d suspending\n", vcpuid); in _gdb_cpu_suspend() 752 CPU_SET(vcpuid, &vcpus_waiting); in _gdb_cpu_suspend() 755 while (CPU_ISSET(vcpuid, &vcpus_suspended)) in _gdb_cpu_suspend() 757 CPU_CLR(vcpuid, &vcpus_waiting); in _gdb_cpu_suspend() 758 debug("$vCPU %d resuming\n", vcpuid); in _gdb_cpu_suspend() 768 int vcpuid; in gdb_cpu_add() local 772 vcpuid = vcpu_id(vcpu); in gdb_cpu_add() 773 debug("$vCPU %d starting\n", vcpuid); in gdb_cpu_add() 775 assert(vcpuid < guest_ncpus); in gdb_cpu_add() [all …]
|
H A D | bhyverun.h | 58 struct vcpu *fbsdrun_vcpu(int vcpuid); 59 void fbsdrun_addcpu(int vcpuid, bool); 60 void fbsdrun_deletecpu(int vcpuid);
|
H A D | mem.c | 182 int err, perror, immutable, vcpuid; in access_memory() local 184 vcpuid = vcpu_id(vcpu); in access_memory() 189 if (mmio_hint[vcpuid] && in access_memory() 190 paddr >= mmio_hint[vcpuid]->mr_base && in access_memory() 191 paddr <= mmio_hint[vcpuid]->mr_end) { in access_memory() 192 entry = mmio_hint[vcpuid]; in access_memory() 199 mmio_hint[vcpuid] = entry; in access_memory()
|
/illumos-gate/usr/src/uts/intel/io/vmm/io/ |
H A D | vlapic.c | 136 return (vlapic->vcpuid); in vlapic_get_id() 138 return (vlapic->vcpuid << 24); in vlapic_get_id() 500 vcpu_notify_event_type(vlapic->vm, vlapic->vcpuid, notify); in vlapic_fire_lvt() 503 (void) vm_inject_nmi(vlapic->vm, vlapic->vcpuid); in vlapic_fire_lvt() 506 (void) vm_inject_extint(vlapic->vm, vlapic->vcpuid); in vlapic_fire_lvt() 612 vioapic_process_eoi(vlapic->vm, vlapic->vcpuid, in vlapic_process_eoi() 618 vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_GRATUITOUS_EOI, 1); in vlapic_process_eoi() 654 vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_INTR_ERROR, 1); in vlapic_set_error() 666 vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_INTR_TIMER, 1); in vlapic_fire_timer() 678 vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_INTR_CMC, 1); in vlapic_fire_cmci() [all …]
|
H A D | vioapic.c | 240 vioapic_read(struct vioapic *vioapic, int vcpuid, uint32_t addr) in vioapic_read() argument 275 vioapic_write(struct vioapic *vioapic, int vcpuid, uint32_t addr, uint32_t data) in vioapic_write() argument 330 vioapic_mmio_rw(struct vioapic *vioapic, int vcpuid, uint64_t gpa, in vioapic_mmio_rw() argument 355 *data = vioapic_read(vioapic, vcpuid, in vioapic_mmio_rw() 358 vioapic_write(vioapic, vcpuid, vioapic->ioregsel, in vioapic_mmio_rw() 368 vioapic_mmio_read(struct vm *vm, int vcpuid, uint64_t gpa, uint64_t *rval, in vioapic_mmio_read() argument 375 error = vioapic_mmio_rw(vioapic, vcpuid, gpa, rval, size, true); in vioapic_mmio_read() 380 vioapic_mmio_write(struct vm *vm, int vcpuid, uint64_t gpa, uint64_t wval, in vioapic_mmio_write() argument 387 error = vioapic_mmio_rw(vioapic, vcpuid, gpa, &wval, size, false); in vioapic_mmio_write() 392 vioapic_process_eoi(struct vm *vm, int vcpuid, int vector) in vioapic_process_eoi() argument
|
H A D | vioapic.h | 55 int vioapic_mmio_write(struct vm *vm, int vcpuid, uint64_t gpa, uint64_t wval, 57 int vioapic_mmio_read(struct vm *vm, int vcpuid, uint64_t gpa, uint64_t *rval, 61 void vioapic_process_eoi(struct vm *vm, int vcpuid, int vector);
|
H A D | vhpet.h | 43 int vhpet_mmio_write(struct vm *vm, int vcpuid, uint64_t gpa, uint64_t val, 45 int vhpet_mmio_read(struct vm *vm, int vcpuid, uint64_t gpa, uint64_t *val,
|
/illumos-gate/usr/src/lib/libvmmapi/common/ |
H A D | vmmapi.c | 250 vm_vcpu_open(struct vmctx *ctx, int vcpuid) in vm_vcpu_open() argument 260 vcpu->vcpuid = vcpuid; in vm_vcpu_open() 273 return (vcpu->vcpuid); in vcpu_id() 786 *(int *)arg = vcpu->vcpuid; in vcpu_ioctl() 810 vmsegdesc.cpuid = vcpu->vcpuid; in vm_set_desc() 828 vmsegdesc.cpuid = vcpu->vcpuid; in vm_get_desc() 857 vmreg.cpuid = vcpu->vcpuid; in vm_set_register() 872 vmreg.cpuid = vcpu->vcpuid; in vm_get_register() 888 vmregset.cpuid = vcpu->vcpuid; in vm_set_register_set() 905 vmregset.cpuid = vcpu->vcpuid; in vm_get_register_set() [all …]
|
H A D | internal.h | 14 int vcpuid; member
|
/illumos-gate/usr/src/uts/intel/sys/ |
H A D | vmm_dev.h | 230 int vcpuid; /* inputs */ member 239 int vcpuid; member 259 int vcpuid; member 282 int vcpuid; member 301 int vcpuid; member 306 int vcpuid; member 314 int vcpuid; member
|
/illumos-gate/usr/src/test/bhyve-tests/tests/vmm/ |
H A D | maxcpu.c | 77 const int vcpuid = bad_inputs[i]; in main() local 84 struct vcpu *vcpu = vm_vcpu_open(ctx, vcpuid); in main() 93 vcpuid); in main()
|
/illumos-gate/usr/src/test/bhyve-tests/tests/inst_emul/ |
H A D | payload_suspend_info.c | 20 start(uint_t vcpuid) in start() argument 22 if (vcpuid == 0) { in start()
|
/illumos-gate/usr/src/uts/intel/io/vmm/amd/ |
H A D | svm_pmu.c | 365 svm_pmu_data_read(struct vm *vm, int vcpuid, const vmm_data_req_t *req) in svm_pmu_data_read() argument 372 struct svm_pmu_vcpu *pmu = svm_get_pmu(svm_sc, vcpuid); in svm_pmu_data_read() 388 svm_pmu_data_write(struct vm *vm, int vcpuid, const vmm_data_req_t *req) in svm_pmu_data_write() argument 395 struct svm_pmu_vcpu *pmu = svm_get_pmu(svm_sc, vcpuid); in svm_pmu_data_write()
|
H A D | svm.c | 107 static void flush_asid(struct svm_softc *sc, int vcpuid); 1774 check_asid(struct svm_softc *sc, int vcpuid, uint_t thiscpu, uint64_t nptgen) in check_asid() argument 1776 struct svm_vcpu *vcpustate = svm_get_vcpu(sc, vcpuid); in check_asid() 1777 struct vmcb_ctrl *ctrl = svm_get_vmcb_ctrl(sc, vcpuid); in check_asid() 1785 svm_set_dirty(sc, vcpuid, VMCB_CACHE_ASID); in check_asid() 1792 flush_asid(struct svm_softc *sc, int vcpuid) in flush_asid() argument 1794 struct svm_vcpu *vcpustate = svm_get_vcpu(sc, vcpuid); in flush_asid() 1795 struct vmcb_ctrl *ctrl = svm_get_vmcb_ctrl(sc, vcpuid); in flush_asid() 1807 svm_set_dirty(sc, vcpuid, VMCB_CACHE_ASID); in flush_asid() 1873 svm_apply_tsc_adjust(struct svm_softc *svm_sc, int vcpuid) in svm_apply_tsc_adjust() argument [all …]
|