usr/src/uts/intel/io/vmm/amd/svm.c
1202
struct vlapic *vlapic = vm_lapic(svm_sc->vm, vcpu);
usr/src/uts/intel/io/vmm/amd/svm.c
1204
res = vlapic_wrmsr(vlapic, ecx, val);
usr/src/uts/intel/io/vmm/amd/svm.c
1216
struct vlapic *vlapic = vm_lapic(svm_sc->vm, vcpu);
usr/src/uts/intel/io/vmm/amd/svm.c
1218
res = vlapic_rdmsr(vlapic, ecx, &val);
usr/src/uts/intel/io/vmm/amd/svm.c
1664
svm_inject_vlapic(struct svm_softc *sc, int vcpu, struct vlapic *vlapic,
usr/src/uts/intel/io/vmm/amd/svm.c
1684
v_tpr = vlapic_get_cr8(vlapic);
usr/src/uts/intel/io/vmm/amd/svm.c
1696
if (!vlapic_pending_intr(vlapic, &vector)) {
usr/src/uts/intel/io/vmm/amd/svm.c
1711
vlapic_intr_accepted(vlapic, vector);
usr/src/uts/intel/io/vmm/amd/svm.c
1891
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/amd/svm.c
1904
vlapic = vm_lapic(vm, vcpu);
usr/src/uts/intel/io/vmm/amd/svm.c
1967
inject_state = svm_inject_vlapic(svm_sc, vcpu, vlapic,
usr/src/uts/intel/io/vmm/amd/svm.c
2521
static struct vlapic *
usr/src/uts/intel/io/vmm/amd/svm.c
2525
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/amd/svm.c
2528
vlapic = kmem_zalloc(sizeof (struct vlapic), KM_SLEEP);
usr/src/uts/intel/io/vmm/amd/svm.c
2529
vlapic->vm = svm_sc->vm;
usr/src/uts/intel/io/vmm/amd/svm.c
2530
vlapic->vcpuid = vcpuid;
usr/src/uts/intel/io/vmm/amd/svm.c
2531
vlapic->apic_page = (struct LAPIC *)&svm_sc->apic_page[vcpuid];
usr/src/uts/intel/io/vmm/amd/svm.c
2533
vlapic_init(vlapic);
usr/src/uts/intel/io/vmm/amd/svm.c
2535
return (vlapic);
usr/src/uts/intel/io/vmm/amd/svm.c
2539
svm_vlapic_cleanup(void *arg, struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/amd/svm.c
2541
vlapic_cleanup(vlapic);
usr/src/uts/intel/io/vmm/amd/svm.c
2542
kmem_free(vlapic, sizeof (struct vlapic));
usr/src/uts/intel/io/vmm/amd/svm.c
887
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/amd/svm.c
891
vlapic = vm_lapic(vm, vcpu);
usr/src/uts/intel/io/vmm/amd/svm.c
895
vlapic_set_cr8(vlapic, ctrl->v_tpr);
usr/src/uts/intel/io/vmm/intel/vmx.c
1337
vmx_inject_vlapic(struct vmx *vmx, int vcpu, struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/intel/vmx.c
1341
if (!vlapic_pending_intr(vlapic, &vector)) {
usr/src/uts/intel/io/vmm/intel/vmx.c
1371
vmx_apicv_sync_tmr(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
1394
vlapic_intr_accepted(vlapic, vector);
usr/src/uts/intel/io/vmm/intel/vmx.c
1743
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/intel/vmx.c
1752
vlapic = vm_lapic(vmx->vm, vcpu);
usr/src/uts/intel/io/vmm/intel/vmx.c
1755
cr8 = vlapic_get_cr8(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
1759
vlapic_set_cr8(vlapic, cr8);
usr/src/uts/intel/io/vmm/intel/vmx.c
1967
vmx_handle_apic_write(struct vmx *vmx, int vcpuid, struct vlapic *vlapic,
usr/src/uts/intel/io/vmm/intel/vmx.c
1983
(uint32_t *)(vlapic->apic_page);
usr/src/uts/intel/io/vmm/intel/vmx.c
1987
vlapic_self_ipi_handler(vlapic, vector);
usr/src/uts/intel/io/vmm/intel/vmx.c
1995
vlapic_id_write_handler(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
1998
vlapic_ldr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2001
vlapic_dfr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2004
vlapic_svr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2007
vlapic_esr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2010
vlapic_icrlo_write_handler(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2014
vlapic_lvt_write_handler(vlapic, offset);
usr/src/uts/intel/io/vmm/intel/vmx.c
2017
vlapic_icrtmr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2020
vlapic_dcr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2141
struct vlapic *vlapic = vm_lapic(vmx->vm, vcpuid);
usr/src/uts/intel/io/vmm/intel/vmx.c
2143
res = vlapic_wrmsr(vlapic, ecx, val);
usr/src/uts/intel/io/vmm/intel/vmx.c
2151
struct vlapic *vlapic = vm_lapic(vmx->vm, vcpuid);
usr/src/uts/intel/io/vmm/intel/vmx.c
2153
res = vlapic_rdmsr(vlapic, ecx, &val);
usr/src/uts/intel/io/vmm/intel/vmx.c
2187
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/intel/vmx.c
2541
vlapic = vm_lapic(vmx->vm, vcpu);
usr/src/uts/intel/io/vmm/intel/vmx.c
2543
vmx, vcpu, vmexit, vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2544
handled = vmx_handle_apic_write(vmx, vcpu, vlapic, qual);
usr/src/uts/intel/io/vmm/intel/vmx.c
2559
vlapic = vm_lapic(vmx->vm, vcpu);
usr/src/uts/intel/io/vmm/intel/vmx.c
2560
vlapic_sync_tpr(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2753
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/intel/vmx.c
2762
vlapic = vm_lapic(vm, vcpu);
usr/src/uts/intel/io/vmm/intel/vmx.c
2829
inject_state = vmx_inject_vlapic(vmx, vcpu, vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2898
vmx_tpr_shadow_enter(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
2929
vmx_tpr_shadow_exit(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
308
static void vmx_apicv_sync_tmr(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
309
static void vmx_tpr_shadow_enter(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
310
static void vmx_tpr_shadow_exit(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
3477
struct vlapic vlapic;
usr/src/uts/intel/io/vmm/intel/vmx.c
3480
uint8_t _pad[64 - (sizeof (struct vlapic) % 64)];
usr/src/uts/intel/io/vmm/intel/vmx.c
3498
vmx_apicv_set_ready(struct vlapic *vlapic, int vector, bool level)
usr/src/uts/intel/io/vmm/intel/vmx.c
3506
vlapic_vtx = (struct vlapic_vtx *)vlapic;
usr/src/uts/intel/io/vmm/intel/vmx.c
3581
vmx_apicv_accepted(struct vlapic *vlapic, int vector)
usr/src/uts/intel/io/vmm/intel/vmx.c
3594
vmx_apicv_sync_tmr(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/intel/vmx.c
3599
vlapic_vtx = (struct vlapic_vtx *)vlapic;
usr/src/uts/intel/io/vmm/intel/vmx.c
3614
vmx_enable_x2apic_mode_ts(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/intel/vmx.c
3620
vcpuid = vlapic->vcpuid;
usr/src/uts/intel/io/vmm/intel/vmx.c
3621
vmx = ((struct vlapic_vtx *)vlapic)->vmx;
usr/src/uts/intel/io/vmm/intel/vmx.c
3635
vmx_enable_x2apic_mode_vid(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/intel/vmx.c
3641
vcpuid = vlapic->vcpuid;
usr/src/uts/intel/io/vmm/intel/vmx.c
3642
vmx = ((struct vlapic_vtx *)vlapic)->vmx;
usr/src/uts/intel/io/vmm/intel/vmx.c
3660
vmx_apicv_notify(struct vlapic *vlapic, int hostcpu)
usr/src/uts/intel/io/vmm/intel/vmx.c
3666
vmx_apicv_sync(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/intel/vmx.c
3673
vlapic_vtx = (struct vlapic_vtx *)vlapic;
usr/src/uts/intel/io/vmm/intel/vmx.c
3675
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/intel/vmx.c
3733
vmx_tpr_shadow_enter(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/intel/vmx.c
3741
vmcs_write(VMCS_TPR_THRESHOLD, vlapic_get_cr8(vlapic));
usr/src/uts/intel/io/vmm/intel/vmx.c
3745
vmx_tpr_shadow_exit(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/intel/vmx.c
3752
vlapic_sync_tpr(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
3755
static struct vlapic *
usr/src/uts/intel/io/vmm/intel/vmx.c
3760
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/intel/vmx.c
3766
vlapic = &vlapic_vtx->vlapic;
usr/src/uts/intel/io/vmm/intel/vmx.c
3767
vlapic->vm = vmx->vm;
usr/src/uts/intel/io/vmm/intel/vmx.c
3768
vlapic->vcpuid = vcpuid;
usr/src/uts/intel/io/vmm/intel/vmx.c
3769
vlapic->apic_page = (struct LAPIC *)&vmx->apic_page[vcpuid];
usr/src/uts/intel/io/vmm/intel/vmx.c
3772
vlapic->ops.enable_x2apic_mode = vmx_enable_x2apic_mode_ts;
usr/src/uts/intel/io/vmm/intel/vmx.c
3775
vlapic->ops.set_intr_ready = vmx_apicv_set_ready;
usr/src/uts/intel/io/vmm/intel/vmx.c
3776
vlapic->ops.sync_state = vmx_apicv_sync;
usr/src/uts/intel/io/vmm/intel/vmx.c
3777
vlapic->ops.intr_accepted = vmx_apicv_accepted;
usr/src/uts/intel/io/vmm/intel/vmx.c
3778
vlapic->ops.enable_x2apic_mode = vmx_enable_x2apic_mode_vid;
usr/src/uts/intel/io/vmm/intel/vmx.c
3781
vlapic->ops.post_intr = vmx_apicv_notify;
usr/src/uts/intel/io/vmm/intel/vmx.c
3785
vlapic_init(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
3787
return (vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
3791
vmx_vlapic_cleanup(void *arg, struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/intel/vmx.c
3793
vlapic_cleanup(vlapic);
usr/src/uts/intel/io/vmm/intel/vmx.c
3794
kmem_free(vlapic, sizeof (struct vlapic_vtx));
usr/src/uts/intel/io/vmm/io/vlapic.c
1032
vlapic_icrlo_write_handler(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1040
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
105
static void vlapic_set_error(struct vlapic *, uint32_t, bool);
usr/src/uts/intel/io/vmm/io/vlapic.c
1050
if (vlapic_x2mode(vlapic))
usr/src/uts/intel/io/vmm/io/vlapic.c
1059
vlapic_set_error(vlapic, APIC_ESR_SEND_ILLEGAL_VECTOR, false);
usr/src/uts/intel/io/vmm/io/vlapic.c
1071
vlapic_calcdest(vlapic->vm, &dmask, dest,
usr/src/uts/intel/io/vmm/io/vlapic.c
1073
vlapic_x2mode(vlapic));
usr/src/uts/intel/io/vmm/io/vlapic.c
1076
CPU_SETOF(vlapic->vcpuid, &dmask);
usr/src/uts/intel/io/vmm/io/vlapic.c
1079
dmask = vm_active_cpus(vlapic->vm);
usr/src/uts/intel/io/vmm/io/vlapic.c
1082
dmask = vm_active_cpus(vlapic->vm);
usr/src/uts/intel/io/vmm/io/vlapic.c
1083
CPU_CLR(vlapic->vcpuid, &dmask);
usr/src/uts/intel/io/vmm/io/vlapic.c
109
vlapic_x2mode(const struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1098
(void) lapic_intr_edge(vlapic->vm, i, vec);
usr/src/uts/intel/io/vmm/io/vlapic.c
1099
vmm_stat_incr(vlapic->vm, vlapic->vcpuid,
usr/src/uts/intel/io/vmm/io/vlapic.c
1101
vmm_stat_incr(vlapic->vm, i,
usr/src/uts/intel/io/vmm/io/vlapic.c
1105
(void) vm_inject_nmi(vlapic->vm, i);
usr/src/uts/intel/io/vmm/io/vlapic.c
1108
(void) vm_inject_init(vlapic->vm, i);
usr/src/uts/intel/io/vmm/io/vlapic.c
111
return ((vlapic->msr_apicbase & APICBASE_X2APIC) != 0);
usr/src/uts/intel/io/vmm/io/vlapic.c
1111
(void) vm_inject_sipi(vlapic->vm, i, vec);
usr/src/uts/intel/io/vmm/io/vlapic.c
1123
vlapic_self_ipi_handler(struct vlapic *vlapic, uint32_t val)
usr/src/uts/intel/io/vmm/io/vlapic.c
1128
ASSERT(vlapic_x2mode(vlapic));
usr/src/uts/intel/io/vmm/io/vlapic.c
1130
(void) lapic_intr_edge(vlapic->vm, vlapic->vcpuid, vec);
usr/src/uts/intel/io/vmm/io/vlapic.c
1131
vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_IPI_SEND, 1);
usr/src/uts/intel/io/vmm/io/vlapic.c
1132
vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_IPI_RECV, 1);
usr/src/uts/intel/io/vmm/io/vlapic.c
1136
vlapic_pending_intr(struct vlapic *vlapic, int *vecptr)
usr/src/uts/intel/io/vmm/io/vlapic.c
1138
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
1142
if (vlapic->ops.sync_state) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1143
(*vlapic->ops.sync_state)(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
115
vlapic_hw_disabled(const struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1166
vlapic_intr_accepted(struct vlapic *vlapic, int vector)
usr/src/uts/intel/io/vmm/io/vlapic.c
1168
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
117
return ((vlapic->msr_apicbase & APICBASE_ENABLED) == 0);
usr/src/uts/intel/io/vmm/io/vlapic.c
1174
if (vlapic->ops.intr_accepted)
usr/src/uts/intel/io/vmm/io/vlapic.c
1175
return ((*vlapic->ops.intr_accepted)(vlapic, vector));
usr/src/uts/intel/io/vmm/io/vlapic.c
1194
vlapic_raise_ppr(vlapic, vector);
usr/src/uts/intel/io/vmm/io/vlapic.c
1198
vlapic_svr_write_handler(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1203
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
1206
old = vlapic->svr_last;
usr/src/uts/intel/io/vmm/io/vlapic.c
1207
vlapic->svr_last = new;
usr/src/uts/intel/io/vmm/io/vlapic.c
121
vlapic_sw_disabled(const struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1216
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1217
callout_stop(&vlapic->callout);
usr/src/uts/intel/io/vmm/io/vlapic.c
1218
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1219
vlapic_mask_lvts(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1225
if (vlapic_periodic_timer(vlapic))
usr/src/uts/intel/io/vmm/io/vlapic.c
1226
vlapic_icrtmr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
123
const struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
1232
vlapic_read(struct vlapic *vlapic, uint16_t offset, uint32_t *outp)
usr/src/uts/intel/io/vmm/io/vlapic.c
1234
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
129
vlapic_enabled(const struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1294
data = vlapic_get_lvt(vlapic, offset);
usr/src/uts/intel/io/vmm/io/vlapic.c
1296
reg = vlapic_get_lvtptr(vlapic, offset);
usr/src/uts/intel/io/vmm/io/vlapic.c
1304
data = vlapic_get_ccr(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
131
return (!vlapic_hw_disabled(vlapic) && !vlapic_sw_disabled(vlapic));
usr/src/uts/intel/io/vmm/io/vlapic.c
1330
vlapic_write(struct vlapic *vlapic, uint16_t offset, uint32_t data)
usr/src/uts/intel/io/vmm/io/vlapic.c
1332
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
1341
vlapic_id_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1344
vlapic_set_tpr(vlapic, data & 0xff);
usr/src/uts/intel/io/vmm/io/vlapic.c
1347
vlapic_process_eoi(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
135
vlapic_get_id(const struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1351
vlapic_ldr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1355
vlapic_dfr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1359
vlapic_svr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1363
vlapic_icrlo_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1370
regptr = vlapic_get_lvtptr(vlapic, offset);
usr/src/uts/intel/io/vmm/io/vlapic.c
1372
vlapic_lvt_write_handler(vlapic, offset);
usr/src/uts/intel/io/vmm/io/vlapic.c
1376
vlapic_icrtmr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
138
if (vlapic_x2mode(vlapic))
usr/src/uts/intel/io/vmm/io/vlapic.c
1381
vlapic_dcr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1385
vlapic_esr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1389
if (vlapic_x2mode(vlapic))
usr/src/uts/intel/io/vmm/io/vlapic.c
139
return (vlapic->vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
1390
vlapic_self_ipi_handler(vlapic, data);
usr/src/uts/intel/io/vmm/io/vlapic.c
141
return (vlapic->vcpuid << 24);
usr/src/uts/intel/io/vmm/io/vlapic.c
1413
vlapic_reset(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1415
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
1419
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1420
callout_stop(&vlapic->callout);
usr/src/uts/intel/io/vmm/io/vlapic.c
1421
vlapic->timer_fire_when = 0;
usr/src/uts/intel/io/vmm/io/vlapic.c
1425
vlapic_update_divider(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1426
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1434
if (vlapic->ops.sync_state) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1435
(*vlapic->ops.sync_state)(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1438
vlapic->msr_apicbase = DEFAULT_APIC_BASE | APICBASE_ENABLED;
usr/src/uts/intel/io/vmm/io/vlapic.c
1439
if (vlapic->vcpuid == 0)
usr/src/uts/intel/io/vmm/io/vlapic.c
1440
vlapic->msr_apicbase |= APICBASE_BSP;
usr/src/uts/intel/io/vmm/io/vlapic.c
1442
lapic->id = vlapic_get_id(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
145
x2apic_ldr(const struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1454
vlapic->svr_last = lapic->svr;
usr/src/uts/intel/io/vmm/io/vlapic.c
1466
vlapic->esr_pending = 0;
usr/src/uts/intel/io/vmm/io/vlapic.c
1477
vlapic_mask_lvts(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1481
vlapic_init(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1483
KASSERT(vlapic->vm != NULL, ("vlapic_init: vm is not initialized"));
usr/src/uts/intel/io/vmm/io/vlapic.c
1484
KASSERT(vlapic->vcpuid >= 0 &&
usr/src/uts/intel/io/vmm/io/vlapic.c
1485
vlapic->vcpuid < vm_get_maxcpus(vlapic->vm),
usr/src/uts/intel/io/vmm/io/vlapic.c
1487
KASSERT(vlapic->apic_page != NULL, ("vlapic_init: apic_page is not "
usr/src/uts/intel/io/vmm/io/vlapic.c
1497
mutex_init(&vlapic->timer_lock, NULL, MUTEX_ADAPTIVE, NULL);
usr/src/uts/intel/io/vmm/io/vlapic.c
1498
callout_init(&vlapic->callout, 1);
usr/src/uts/intel/io/vmm/io/vlapic.c
150
apicid = vlapic_get_id(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1500
vlapic_reset(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1504
vlapic_cleanup(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1506
callout_drain(&vlapic->callout);
usr/src/uts/intel/io/vmm/io/vlapic.c
1507
mutex_destroy(&vlapic->timer_lock);
usr/src/uts/intel/io/vmm/io/vlapic.c
1511
vlapic_mmio_read(struct vlapic *vlapic, uint64_t gpa, uint64_t *valp,
usr/src/uts/intel/io/vmm/io/vlapic.c
1518
if (vlapic_x2mode(vlapic) || vlapic_hw_disabled(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1525
(void) vlapic_read(vlapic, off & ~0xf, &raw);
usr/src/uts/intel/io/vmm/io/vlapic.c
1539
vlapic_mmio_write(struct vlapic *vlapic, uint64_t gpa, uint64_t val,
usr/src/uts/intel/io/vmm/io/vlapic.c
1546
if (vlapic_x2mode(vlapic) || vlapic_hw_disabled(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1556
(void) vlapic_write(vlapic, off, (uint32_t)val);
usr/src/uts/intel/io/vmm/io/vlapic.c
1564
vlapic_set_apicbase(struct vlapic *vlapic, uint64_t val)
usr/src/uts/intel/io/vmm/io/vlapic.c
1566
const uint64_t diff = vlapic->msr_apicbase ^ val;
usr/src/uts/intel/io/vmm/io/vlapic.c
157
vlapic_dfr_write_handler(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1595
vlapic->msr_apicbase = val;
usr/src/uts/intel/io/vmm/io/vlapic.c
161
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
162
if (vlapic_x2mode(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1622
vlapic_rdmsr(struct vlapic *vlapic, uint32_t msr, uint64_t *valp)
usr/src/uts/intel/io/vmm/io/vlapic.c
1628
*valp = vlapic->msr_apicbase;
usr/src/uts/intel/io/vmm/io/vlapic.c
1633
if (!vlapic_x2mode(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1645
valid = vlapic_read(vlapic, APIC_OFFSET_ICR_HI, &high);
usr/src/uts/intel/io/vmm/io/vlapic.c
1647
valid = vlapic_read(vlapic, APIC_OFFSET_ICR_LOW, &low);
usr/src/uts/intel/io/vmm/io/vlapic.c
1659
if (!vlapic_read(vlapic, reg, (uint32_t *)&out)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1667
vlapic_wrmsr(struct vlapic *vlapic, uint32_t msr, uint64_t val)
usr/src/uts/intel/io/vmm/io/vlapic.c
1672
return (vlapic_set_apicbase(vlapic, val));
usr/src/uts/intel/io/vmm/io/vlapic.c
1676
if (!vlapic_x2mode(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1686
valid = vlapic_write(vlapic, APIC_OFFSET_ICR_HI, val >> 32);
usr/src/uts/intel/io/vmm/io/vlapic.c
1688
valid = vlapic_write(vlapic, APIC_OFFSET_ICR_LOW, val);
usr/src/uts/intel/io/vmm/io/vlapic.c
1704
if (!vlapic_write(vlapic, reg, val)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1713
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/io/vlapic.c
1716
vlapic = vm_lapic(vm, vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
1719
vlapic->msr_apicbase &= ~APICBASE_X2APIC;
usr/src/uts/intel/io/vmm/io/vlapic.c
1721
vlapic->msr_apicbase |= APICBASE_X2APIC;
usr/src/uts/intel/io/vmm/io/vlapic.c
1729
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
173
vlapic_ldr_write_handler(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1730
lapic->id = vlapic_get_id(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1731
if (vlapic_x2mode(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1732
lapic->ldr = x2apic_ldr(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1740
if (vlapic->ops.enable_x2apic_mode)
usr/src/uts/intel/io/vmm/io/vlapic.c
1741
(*vlapic->ops.enable_x2apic_mode)(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
177
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
1780
vlapic_post_intr(struct vlapic *vlapic, int hostcpu)
usr/src/uts/intel/io/vmm/io/vlapic.c
1791
if (vlapic->ops.post_intr)
usr/src/uts/intel/io/vmm/io/vlapic.c
1792
(*vlapic->ops.post_intr)(vlapic, hostcpu);
usr/src/uts/intel/io/vmm/io/vlapic.c
1798
vlapic_localize_resources(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
180
if (vlapic_x2mode(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1800
vmm_glue_callout_localize(&vlapic->callout);
usr/src/uts/intel/io/vmm/io/vlapic.c
1804
vlapic_pause(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1806
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1807
callout_stop(&vlapic->callout);
usr/src/uts/intel/io/vmm/io/vlapic.c
1808
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1813
vlapic_resume(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1815
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1816
if (vlapic->timer_fire_when != 0) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1817
vlapic_callout_reset(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1819
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
182
lapic->ldr = x2apic_ldr(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1829
struct vlapic *vlapic = vm_lapic(vm, vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
1832
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1834
if (vlapic->ops.sync_state) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1835
(*vlapic->ops.sync_state)(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1838
out->vl_msr_apicbase = vlapic->msr_apicbase;
usr/src/uts/intel/io/vmm/io/vlapic.c
1839
out->vl_esr_pending = vlapic->esr_pending;
usr/src/uts/intel/io/vmm/io/vlapic.c
1840
if (vlapic->timer_fire_when != 0) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1842
vm_normalize_hrtime(vlapic->vm, vlapic->timer_fire_when);
usr/src/uts/intel/io/vmm/io/vlapic.c
1847
const struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
1886
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
189
vlapic_id_write_handler(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
1919
vlapic_data_validate(const struct vlapic *vlapic, const vmm_data_req_t *req)
usr/src/uts/intel/io/vmm/io/vlapic.c
1933
const uint64_t diff = src->vl_msr_apicbase ^ vlapic->msr_apicbase;
usr/src/uts/intel/io/vmm/io/vlapic.c
1943
if (page->vlp_id != vlapic_get_id(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1947
if (page->vlp_version != vlapic->apic_page->version) {
usr/src/uts/intel/io/vmm/io/vlapic.c
197
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
198
lapic->id = vlapic_get_id(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
1987
struct vlapic *vlapic = vm_lapic(vm, vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
1988
if (vlapic_data_validate(vlapic, req) != VVE_OK) {
usr/src/uts/intel/io/vmm/io/vlapic.c
1993
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
1995
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
2000
vlapic->msr_apicbase = src->vl_msr_apicbase;
usr/src/uts/intel/io/vmm/io/vlapic.c
2001
vlapic->esr_pending = src->vl_esr_pending;
usr/src/uts/intel/io/vmm/io/vlapic.c
2014
vlapic_update_divider(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
2017
vlapic_ldr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
2018
vlapic_dfr_write_handler(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
2028
vlapic_refresh_lvts(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
2040
vlapic->timer_fire_when =
usr/src/uts/intel/io/vmm/io/vlapic.c
2041
vm_denormalize_hrtime(vlapic->vm, src->vl_timer_target);
usr/src/uts/intel/io/vmm/io/vlapic.c
2048
if (vlapic->timer_fire_when > now) {
usr/src/uts/intel/io/vmm/io/vlapic.c
2050
vlapic->timer_fire_when - now,
usr/src/uts/intel/io/vmm/io/vlapic.c
2051
vlapic->timer_cur_freq);
usr/src/uts/intel/io/vmm/io/vlapic.c
2058
vlapic->stats.vs_import_timer_overage++;
usr/src/uts/intel/io/vmm/io/vlapic.c
2062
if (!vm_is_paused(vlapic->vm)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
2063
vlapic_callout_reset(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
2066
vlapic->timer_fire_when = 0;
usr/src/uts/intel/io/vmm/io/vlapic.c
2069
if (vlapic->ops.sync_state) {
usr/src/uts/intel/io/vmm/io/vlapic.c
2070
(*vlapic->ops.sync_state)(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
2072
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
227
vlapic_get_ccr(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
233
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
235
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
236
if (callout_active(&vlapic->callout)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
243
if (vlapic->timer_fire_when > now) {
usr/src/uts/intel/io/vmm/io/vlapic.c
244
ccr += hrt_freq_count(vlapic->timer_fire_when - now,
usr/src/uts/intel/io/vmm/io/vlapic.c
245
vlapic->timer_cur_freq);
usr/src/uts/intel/io/vmm/io/vlapic.c
257
vlapic->stats.vs_clamp_ccr++;
usr/src/uts/intel/io/vmm/io/vlapic.c
259
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
264
vlapic_update_divider(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
266
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
268
ASSERT(VLAPIC_TIMER_LOCKED(vlapic));
usr/src/uts/intel/io/vmm/io/vlapic.c
270
vlapic->timer_cur_freq =
usr/src/uts/intel/io/vmm/io/vlapic.c
272
vlapic->timer_period =
usr/src/uts/intel/io/vmm/io/vlapic.c
273
hrt_freq_interval(vlapic->timer_cur_freq, lapic->icr_timer);
usr/src/uts/intel/io/vmm/io/vlapic.c
277
vlapic_dcr_write_handler(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
285
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
286
vlapic_update_divider(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
287
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
291
vlapic_esr_write_handler(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
295
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
296
lapic->esr = vlapic->esr_pending;
usr/src/uts/intel/io/vmm/io/vlapic.c
297
vlapic->esr_pending = 0;
usr/src/uts/intel/io/vmm/io/vlapic.c
301
vlapic_set_intr_ready(struct vlapic *vlapic, int vector, bool level)
usr/src/uts/intel/io/vmm/io/vlapic.c
309
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
316
vlapic_set_error(vlapic, APIC_ESR_RECEIVE_ILLEGAL_VECTOR,
usr/src/uts/intel/io/vmm/io/vlapic.c
326
if (vlapic->ops.set_intr_ready) {
usr/src/uts/intel/io/vmm/io/vlapic.c
327
return ((*vlapic->ops.set_intr_ready)(vlapic, vector, level));
usr/src/uts/intel/io/vmm/io/vlapic.c
357
vlapic_get_lvtptr(struct vlapic *vlapic, uint32_t offset)
usr/src/uts/intel/io/vmm/io/vlapic.c
359
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
411
vlapic_get_lvt(struct vlapic *vlapic, uint32_t offset)
usr/src/uts/intel/io/vmm/io/vlapic.c
417
val = atomic_load_acq_32(&vlapic->lvt_last[idx]);
usr/src/uts/intel/io/vmm/io/vlapic.c
422
vlapic_lvt_write_handler(struct vlapic *vlapic, uint32_t offset)
usr/src/uts/intel/io/vmm/io/vlapic.c
428
lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
429
lvtptr = vlapic_get_lvtptr(vlapic, offset);
usr/src/uts/intel/io/vmm/io/vlapic.c
452
atomic_store_rel_32(&vlapic->lvt_last[idx], val);
usr/src/uts/intel/io/vmm/io/vlapic.c
456
vlapic_refresh_lvts(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
458
vlapic_lvt_write_handler(vlapic, APIC_OFFSET_CMCI_LVT);
usr/src/uts/intel/io/vmm/io/vlapic.c
459
vlapic_lvt_write_handler(vlapic, APIC_OFFSET_TIMER_LVT);
usr/src/uts/intel/io/vmm/io/vlapic.c
460
vlapic_lvt_write_handler(vlapic, APIC_OFFSET_THERM_LVT);
usr/src/uts/intel/io/vmm/io/vlapic.c
461
vlapic_lvt_write_handler(vlapic, APIC_OFFSET_PERF_LVT);
usr/src/uts/intel/io/vmm/io/vlapic.c
462
vlapic_lvt_write_handler(vlapic, APIC_OFFSET_LINT0_LVT);
usr/src/uts/intel/io/vmm/io/vlapic.c
463
vlapic_lvt_write_handler(vlapic, APIC_OFFSET_LINT1_LVT);
usr/src/uts/intel/io/vmm/io/vlapic.c
464
vlapic_lvt_write_handler(vlapic, APIC_OFFSET_ERROR_LVT);
usr/src/uts/intel/io/vmm/io/vlapic.c
468
vlapic_mask_lvts(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
470
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
479
vlapic_refresh_lvts(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
483
vlapic_fire_lvt(struct vlapic *vlapic, uint_t lvt)
usr/src/uts/intel/io/vmm/io/vlapic.c
488
reg = atomic_load_acq_32(&vlapic->lvt_last[lvt]);
usr/src/uts/intel/io/vmm/io/vlapic.c
498
vlapic_set_error(vlapic, APIC_ESR_SEND_ILLEGAL_VECTOR,
usr/src/uts/intel/io/vmm/io/vlapic.c
502
notify = vlapic_set_intr_ready(vlapic, vec, false);
usr/src/uts/intel/io/vmm/io/vlapic.c
503
vcpu_notify_event_type(vlapic->vm, vlapic->vcpuid, notify);
usr/src/uts/intel/io/vmm/io/vlapic.c
506
(void) vm_inject_nmi(vlapic->vm, vlapic->vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
509
(void) vm_inject_extint(vlapic->vm, vlapic->vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
519
vlapic_active_isr(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
524
isrp = &vlapic->apic_page->isr7;
usr/src/uts/intel/io/vmm/io/vlapic.c
551
vlapic_update_ppr(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
555
isrvec = vlapic_active_isr(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
556
tpr = vlapic->apic_page->tpr;
usr/src/uts/intel/io/vmm/io/vlapic.c
568
vlapic->apic_page->ppr = ppr;
usr/src/uts/intel/io/vmm/io/vlapic.c
577
vlapic_raise_ppr(struct vlapic *vlapic, int vec)
usr/src/uts/intel/io/vmm/io/vlapic.c
579
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
588
vlapic_sync_tpr(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
590
vlapic_update_ppr(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
596
vlapic_process_eoi(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
598
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
613
vlapic_update_ppr(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
615
vioapic_process_eoi(vlapic->vm, vlapic->vcpuid,
usr/src/uts/intel/io/vmm/io/vlapic.c
621
vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_GRATUITOUS_EOI, 1);
usr/src/uts/intel/io/vmm/io/vlapic.c
632
vlapic_periodic_timer(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
636
lvt = vlapic_get_lvt(vlapic, APIC_OFFSET_TIMER_LVT);
usr/src/uts/intel/io/vmm/io/vlapic.c
644
vlapic_set_error(struct vlapic *vlapic, uint32_t mask, bool lvt_error)
usr/src/uts/intel/io/vmm/io/vlapic.c
647
vlapic->esr_pending |= mask;
usr/src/uts/intel/io/vmm/io/vlapic.c
656
if (vlapic_fire_lvt(vlapic, APIC_LVT_ERROR)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
657
vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_INTR_ERROR, 1);
usr/src/uts/intel/io/vmm/io/vlapic.c
664
vlapic_fire_timer(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
666
ASSERT(VLAPIC_TIMER_LOCKED(vlapic));
usr/src/uts/intel/io/vmm/io/vlapic.c
668
if (vlapic_fire_lvt(vlapic, APIC_LVT_TIMER)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
669
vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_INTR_TIMER, 1);
usr/src/uts/intel/io/vmm/io/vlapic.c
677
vlapic_fire_cmci(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
680
if (vlapic_fire_lvt(vlapic, APIC_LVT_CMCI)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
681
vmm_stat_incr(vlapic->vm, vlapic->vcpuid, VLAPIC_INTR_CMC, 1);
usr/src/uts/intel/io/vmm/io/vlapic.c
689
vlapic_trigger_lvt(struct vlapic *vlapic, int vector)
usr/src/uts/intel/io/vmm/io/vlapic.c
691
if (!vlapic_enabled(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
699
(void) vm_inject_extint(vlapic->vm,
usr/src/uts/intel/io/vmm/io/vlapic.c
700
vlapic->vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
703
(void) vm_inject_nmi(vlapic->vm,
usr/src/uts/intel/io/vmm/io/vlapic.c
704
vlapic->vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
720
if (vlapic_fire_lvt(vlapic, vector)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
721
vmm_stat_array_incr(vlapic->vm, vlapic->vcpuid,
usr/src/uts/intel/io/vmm/io/vlapic.c
732
vlapic_callout_reset(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
734
callout_reset_hrtime(&vlapic->callout, vlapic->timer_fire_when,
usr/src/uts/intel/io/vmm/io/vlapic.c
735
vlapic_callout_handler, vlapic, C_ABSOLUTE);
usr/src/uts/intel/io/vmm/io/vlapic.c
741
struct vlapic *vlapic = arg;
usr/src/uts/intel/io/vmm/io/vlapic.c
743
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
744
if (callout_pending(&vlapic->callout)) /* callout was reset */
usr/src/uts/intel/io/vmm/io/vlapic.c
747
if (!callout_active(&vlapic->callout)) /* callout was stopped */
usr/src/uts/intel/io/vmm/io/vlapic.c
750
callout_deactivate(&vlapic->callout);
usr/src/uts/intel/io/vmm/io/vlapic.c
752
vlapic_fire_timer(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
758
if (vlapic_periodic_timer(vlapic) && vlapic->timer_period != 0) {
usr/src/uts/intel/io/vmm/io/vlapic.c
766
const hrtime_t delta = now - vlapic->timer_fire_when;
usr/src/uts/intel/io/vmm/io/vlapic.c
767
if (delta >= vlapic->timer_period) {
usr/src/uts/intel/io/vmm/io/vlapic.c
773
vlapic->timer_fire_when = now + vlapic->timer_period;
usr/src/uts/intel/io/vmm/io/vlapic.c
775
vlapic->timer_fire_when += vlapic->timer_period;
usr/src/uts/intel/io/vmm/io/vlapic.c
777
vlapic_callout_reset(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
785
vlapic->timer_fire_when = 0;
usr/src/uts/intel/io/vmm/io/vlapic.c
788
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
792
vlapic_icrtmr_write_handler(struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
794
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
796
VLAPIC_TIMER_LOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
797
vlapic->timer_period = hrt_freq_interval(vlapic->timer_cur_freq,
usr/src/uts/intel/io/vmm/io/vlapic.c
799
if (vlapic->timer_period != 0) {
usr/src/uts/intel/io/vmm/io/vlapic.c
800
vlapic->timer_fire_when = gethrtime() + vlapic->timer_period;
usr/src/uts/intel/io/vmm/io/vlapic.c
801
vlapic_callout_reset(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
803
vlapic->timer_fire_when = 0;
usr/src/uts/intel/io/vmm/io/vlapic.c
804
callout_stop(&vlapic->callout);
usr/src/uts/intel/io/vmm/io/vlapic.c
806
VLAPIC_TIMER_UNLOCK(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
820
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/io/vlapic.c
87
#define VLAPIC_TIMER_LOCK(vlapic) mutex_enter(&((vlapic)->timer_lock))
usr/src/uts/intel/io/vmm/io/vlapic.c
873
vlapic = vm_lapic(vm, vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
874
dfr = vlapic->apic_page->dfr;
usr/src/uts/intel/io/vmm/io/vlapic.c
875
ldr = vlapic->apic_page->ldr;
usr/src/uts/intel/io/vmm/io/vlapic.c
88
#define VLAPIC_TIMER_UNLOCK(vlapic) mutex_exit(&((vlapic)->timer_lock))
usr/src/uts/intel/io/vmm/io/vlapic.c
883
if (vlapic_x2mode(vlapic)) {
usr/src/uts/intel/io/vmm/io/vlapic.c
89
#define VLAPIC_TIMER_LOCKED(vlapic) MUTEX_HELD(&((vlapic)->timer_lock))
usr/src/uts/intel/io/vmm/io/vlapic.c
914
vlapic_set_tpr(struct vlapic *vlapic, uint8_t val)
usr/src/uts/intel/io/vmm/io/vlapic.c
916
struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.c
920
vlapic_update_ppr(vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.c
925
vlapic_set_cr8(struct vlapic *vlapic, uint64_t val)
usr/src/uts/intel/io/vmm/io/vlapic.c
930
vm_inject_gp(vlapic->vm, vlapic->vcpuid);
usr/src/uts/intel/io/vmm/io/vlapic.c
935
vlapic_set_tpr(vlapic, tpr);
usr/src/uts/intel/io/vmm/io/vlapic.c
939
vlapic_get_cr8(const struct vlapic *vlapic)
usr/src/uts/intel/io/vmm/io/vlapic.c
941
const struct LAPIC *lapic = vlapic->apic_page;
usr/src/uts/intel/io/vmm/io/vlapic.h
101
void vlapic_set_cr8(struct vlapic *vlapic, uint64_t val);
usr/src/uts/intel/io/vmm/io/vlapic.h
102
uint64_t vlapic_get_cr8(const struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
105
void vlapic_id_write_handler(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
106
void vlapic_ldr_write_handler(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
107
void vlapic_dfr_write_handler(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
108
void vlapic_svr_write_handler(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
109
void vlapic_esr_write_handler(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
110
void vlapic_icrlo_write_handler(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
111
void vlapic_icrtmr_write_handler(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
112
void vlapic_dcr_write_handler(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
113
void vlapic_lvt_write_handler(struct vlapic *vlapic, uint32_t offset);
usr/src/uts/intel/io/vmm/io/vlapic.h
114
void vlapic_self_ipi_handler(struct vlapic *vlapic, uint32_t val);
usr/src/uts/intel/io/vmm/io/vlapic.h
116
void vlapic_localize_resources(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
117
void vlapic_pause(struct vlapic *);
usr/src/uts/intel/io/vmm/io/vlapic.h
118
void vlapic_resume(struct vlapic *);
usr/src/uts/intel/io/vmm/io/vlapic.h
120
bool vlapic_hw_disabled(const struct vlapic *);
usr/src/uts/intel/io/vmm/io/vlapic.h
49
void vlapic_reset(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
51
int vlapic_mmio_write(struct vlapic *, uint64_t, uint64_t, uint_t);
usr/src/uts/intel/io/vmm/io/vlapic.h
52
int vlapic_mmio_read(struct vlapic *, uint64_t, uint64_t *, uint_t);
usr/src/uts/intel/io/vmm/io/vlapic.h
55
vm_msr_result_t vlapic_rdmsr(struct vlapic *, uint32_t, uint64_t *);
usr/src/uts/intel/io/vmm/io/vlapic.h
56
vm_msr_result_t vlapic_wrmsr(struct vlapic *, uint32_t, uint64_t);
usr/src/uts/intel/io/vmm/io/vlapic.h
68
int vlapic_pending_intr(struct vlapic *vlapic, int *vecptr);
usr/src/uts/intel/io/vmm/io/vlapic.h
76
void vlapic_intr_accepted(struct vlapic *vlapic, int vector);
usr/src/uts/intel/io/vmm/io/vlapic.h
78
vcpu_notify_t vlapic_set_intr_ready(struct vlapic *vlapic, int vector,
usr/src/uts/intel/io/vmm/io/vlapic.h
86
void vlapic_post_intr(struct vlapic *vlapic, int hostcpu);
usr/src/uts/intel/io/vmm/io/vlapic.h
88
void vlapic_fire_cmci(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic.h
89
int vlapic_trigger_lvt(struct vlapic *vlapic, int vector);
usr/src/uts/intel/io/vmm/io/vlapic.h
91
void vlapic_sync_tpr(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic_priv.h
110
struct vlapic;
usr/src/uts/intel/io/vmm/io/vlapic_priv.h
113
vcpu_notify_t (*set_intr_ready)(struct vlapic *vlapic, int vector,
usr/src/uts/intel/io/vmm/io/vlapic_priv.h
115
void (*sync_state)(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic_priv.h
116
void (*intr_accepted)(struct vlapic *vlapic, int vector);
usr/src/uts/intel/io/vmm/io/vlapic_priv.h
117
void (*post_intr)(struct vlapic *vlapic, int hostcpu);
usr/src/uts/intel/io/vmm/io/vlapic_priv.h
118
void (*enable_x2apic_mode)(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic_priv.h
158
void vlapic_init(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/io/vlapic_priv.h
159
void vlapic_cleanup(struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/sys/vmm_kernel.h
206
struct vlapic *vm_lapic(struct vm *vm, int cpu);
usr/src/uts/intel/io/vmm/sys/vmm_kernel.h
66
struct vlapic;
usr/src/uts/intel/io/vmm/sys/vmm_kernel.h
96
typedef struct vlapic *(*vmi_vlapic_init)(void *vmi, int vcpu);
usr/src/uts/intel/io/vmm/sys/vmm_kernel.h
97
typedef void (*vmi_vlapic_cleanup)(void *vmi, struct vlapic *vlapic);
usr/src/uts/intel/io/vmm/vmm.c
144
struct vlapic *vlapic; /* (i) APIC device model */
usr/src/uts/intel/io/vmm/vmm.c
1608
vlapic_pending_intr(vcpu->vlapic, NULL)) {
usr/src/uts/intel/io/vmm/vmm.c
1688
struct vlapic *vlapic = vm_lapic(vm, cpuid);
usr/src/uts/intel/io/vmm/vmm.c
1690
err = vlapic_mmio_read(vlapic, gpa, rval, rsize);
usr/src/uts/intel/io/vmm/vmm.c
1718
struct vlapic *vlapic = vm_lapic(vm, cpuid);
usr/src/uts/intel/io/vmm/vmm.c
1720
err = vlapic_mmio_write(vlapic, gpa, wval, wsize);
usr/src/uts/intel/io/vmm/vmm.c
2339
vlapic_localize_resources(vcpu->vlapic);
usr/src/uts/intel/io/vmm/vmm.c
303
#define VLAPIC_CLEANUP(vmi, vlapic) ((*ops->vlapic_cleanup)(vmi, vlapic))
usr/src/uts/intel/io/vmm/vmm.c
3245
struct vlapic *
usr/src/uts/intel/io/vmm/vmm.c
3251
return (vm->vcpu[cpu].vlapic);
usr/src/uts/intel/io/vmm/vmm.c
3626
vlapic_post_intr(vcpu->vlapic, hostcpu);
usr/src/uts/intel/io/vmm/vmm.c
377
VLAPIC_CLEANUP(vm->cookie, vcpu->vlapic);
usr/src/uts/intel/io/vmm/vmm.c
432
vcpu->vlapic = VLAPIC_INIT(vm->cookie, vcpu_id);
usr/src/uts/intel/io/vmm/vmm.c
792
vlapic_pause(vcpu->vlapic);
usr/src/uts/intel/io/vmm/vmm.c
825
vlapic_resume(vcpu->vlapic);
usr/src/uts/intel/io/vmm/vmm.c
95
struct vlapic;
usr/src/uts/intel/io/vmm/vmm_lapic.c
106
vlapic = vm_lapic(vm, cpu);
usr/src/uts/intel/io/vmm/vmm_lapic.c
107
error = vlapic_trigger_lvt(vlapic, vector);
usr/src/uts/intel/io/vmm/vmm_lapic.c
69
struct vlapic *vlapic;
usr/src/uts/intel/io/vmm/vmm_lapic.c
82
vlapic = vm_lapic(vm, cpu);
usr/src/uts/intel/io/vmm/vmm_lapic.c
83
notify = vlapic_set_intr_ready(vlapic, vector, level);
usr/src/uts/intel/io/vmm/vmm_lapic.c
91
struct vlapic *vlapic;