/illumos-gate/usr/src/uts/intel/io/vmm/io/ |
H A D | vlapic.c | 84 #define VLAPIC_TIMER_LOCK(vlapic) mutex_enter(&((vlapic)->timer_lock)) argument 85 #define VLAPIC_TIMER_UNLOCK(vlapic) mutex_exit(&((vlapic)->timer_lock)) argument 86 #define VLAPIC_TIMER_LOCKED(vlapic) MUTEX_HELD(&((vlapic)->timer_lock)) argument 102 static void vlapic_set_error(struct vlapic *, uint32_t, bool); 106 vlapic_x2mode(const struct vlapic *vlapic) in vlapic_x2mode() argument 108 return ((vlapic->msr_apicbase & APICBASE_X2APIC) != 0); in vlapic_x2mode() 112 vlapic_hw_disabled(const struct vlapic *vlapic) in vlapic_hw_disabled() argument 114 return ((vlapic->msr_apicbase & APICBASE_ENABLED) == 0); in vlapic_hw_disabled() 118 vlapic_sw_disabled(const struct vlapic *vlapic) in vlapic_sw_disabled() argument 120 const struct LAPIC *lapic = vlapic->apic_page; in vlapic_sw_disabled() [all …]
|
H A D | vlapic.h | 37 void vlapic_reset(struct vlapic *vlapic); 39 int vlapic_mmio_write(struct vlapic *, uint64_t, uint64_t, uint_t); 40 int vlapic_mmio_read(struct vlapic *, uint64_t, uint64_t *, uint_t); 43 vm_msr_result_t vlapic_rdmsr(struct vlapic *, uint32_t, uint64_t *); 44 vm_msr_result_t vlapic_wrmsr(struct vlapic *, uint32_t, uint64_t); 56 int vlapic_pending_intr(struct vlapic *vlapic, int *vecptr); 64 void vlapic_intr_accepted(struct vlapic *vlapic, int vector); 66 vcpu_notify_t vlapic_set_intr_ready(struct vlapic *vlapic, int vector, 74 void vlapic_post_intr(struct vlapic *vlapic, int hostcpu); 76 void vlapic_fire_cmci(struct vlapic *vlapic); [all …]
|
H A D | vlapic_priv.h | 107 struct vlapic; 110 vcpu_notify_t (*set_intr_ready)(struct vlapic *vlapic, int vector, 112 void (*sync_state)(struct vlapic *vlapic); 113 void (*intr_accepted)(struct vlapic *vlapic, int vector); 114 void (*post_intr)(struct vlapic *vlapic, int hostcpu); 115 void (*enable_x2apic_mode)(struct vlapic *vlapic); 125 struct vlapic { struct 155 void vlapic_init(struct vlapic *vlapic); argument 156 void vlapic_cleanup(struct vlapic *vlapic);
|
/illumos-gate/usr/src/uts/intel/io/vmm/ |
H A D | vmm_lapic.c | 66 struct vlapic *vlapic; in lapic_set_intr() local 79 vlapic = vm_lapic(vm, cpu); in lapic_set_intr() 80 notify = vlapic_set_intr_ready(vlapic, vector, level); in lapic_set_intr() 88 struct vlapic *vlapic; in lapic_set_local_intr() local 103 vlapic = vm_lapic(vm, cpu); in lapic_set_local_intr() 104 error = vlapic_trigger_lvt(vlapic, vector); in lapic_set_local_intr()
|
H A D | vmm.c | 92 struct vlapic; 141 struct vlapic *vlapic; /* (i) APIC device model */ member 286 #define VLAPIC_CLEANUP(vmi, vlapic) ((*ops->vlapic_cleanup)(vmi, vlapic)) argument 358 VLAPIC_CLEANUP(vm->cookie, vcpu->vlapic); in vcpu_cleanup() 413 vcpu->vlapic = VLAPIC_INIT(vm->cookie, vcpu_id); in vcpu_init() 765 vlapic_pause(vcpu->vlapic); in vm_pause_instance() 798 vlapic_resume(vcpu->vlapic); in vm_resume_instance() 1589 vlapic_pending_intr(vcpu->vlapic, NULL)) { in vm_handle_hlt() 1669 struct vlapic *vlapic = vm_lapic(vm, cpuid); in vm_service_mmio_read() local 1671 err = vlapic_mmio_read(vlapic, gpa, rval, rsize); in vm_service_mmio_read() [all …]
|
H A D | Makefile.vmm | 63 vlapic.o \
|
/illumos-gate/usr/src/uts/intel/io/vmm/intel/ |
H A D | vmx.c | 307 static void vmx_apicv_sync_tmr(struct vlapic *vlapic); 308 static void vmx_tpr_shadow_enter(struct vlapic *vlapic); 309 static void vmx_tpr_shadow_exit(struct vlapic *vlapic); 1344 vmx_inject_vlapic(struct vmx *vmx, int vcpu, struct vlapic *vlapic) in vmx_inject_vlapic() argument 1348 if (!vlapic_pending_intr(vlapic, &vector)) { in vmx_inject_vlapic() 1378 vmx_apicv_sync_tmr(vlapic); in vmx_inject_vlapic() 1401 vlapic_intr_accepted(vlapic, vector); in vmx_inject_vlapic() 1750 struct vlapic *vlapic; in vmx_emulate_cr8_access() local 1759 vlapic = vm_lapic(vmx->vm, vcpu); in vmx_emulate_cr8_access() 1762 cr8 = vlapic_get_cr8(vlapic); in vmx_emulate_cr8_access() [all …]
|
/illumos-gate/usr/src/uts/intel/io/vmm/amd/ |
H A D | svm.c | 891 struct vlapic *vlapic; in svm_update_virqinfo() local 895 vlapic = vm_lapic(vm, vcpu); in svm_update_virqinfo() 899 vlapic_set_cr8(vlapic, ctrl->v_tpr); in svm_update_virqinfo() 1206 struct vlapic *vlapic = vm_lapic(svm_sc->vm, vcpu); in svm_handle_msr() local 1208 res = vlapic_wrmsr(vlapic, ecx, val); in svm_handle_msr() 1220 struct vlapic *vlapic = vm_lapic(svm_sc->vm, vcpu); in svm_handle_msr() local 1222 res = vlapic_rdmsr(vlapic, ecx, &val); in svm_handle_msr() 1668 svm_inject_vlapic(struct svm_softc *sc, int vcpu, struct vlapic *vlapic, in svm_inject_vlapic() argument 1688 v_tpr = vlapic_get_cr8(vlapic); in svm_inject_vlapic() 1700 if (!vlapic_pending_intr(vlapic, &vector)) { in svm_inject_vlapic() [all …]
|
/illumos-gate/usr/src/uts/intel/io/vmm/sys/ |
H A D | vmm_kernel.h | 63 struct vlapic; 94 typedef struct vlapic *(*vmi_vlapic_init)(void *vmi, int vcpu); 95 typedef void (*vmi_vlapic_cleanup)(void *vmi, struct vlapic *vlapic); 206 struct vlapic *vm_lapic(struct vm *vm, int cpu);
|