APIC_ICR
wrmsrq(APIC_BASE_MSR + (APIC_ICR >> 4), ((__u64) id) << 32 | low);
rdmsrq(APIC_BASE_MSR + (APIC_ICR >> 4), val);
BUILD_BUG_ON(reg != APIC_ICR);
BUILD_BUG_ON(reg != APIC_ICR);
apic_write(APIC_ICR, APIC_DEST_ALLINC | APIC_INT_LEVELTRIG | APIC_DM_INIT);
apic_write(APIC_ICR, low);
icr1 = apic_read(APIC_ICR);
if (!(apic_read(APIC_ICR) & APIC_ICR_BUSY))
while (native_apic_mem_read(APIC_ICR) & APIC_ICR_BUSY)
native_apic_mem_write(APIC_ICR, __prepare_ICR(shortcut, vector, 0));
native_apic_mem_write(APIC_ICR, __prepare_ICR(0, vector, dest_mode));
savic_ghcb_msr_write(APIC_ICR, icr_data);
apic_set_reg64(this_cpu_ptr(savic_page), APIC_ICR, icr_data);
case APIC_ICR:
case APIC_ICR:
return kvm_hv_vapic_msr_write(vcpu, APIC_ICR, data);
return kvm_hv_vapic_msr_read(vcpu, APIC_ICR, pdata);
APIC_REG_MASK(APIC_ICR) |
WARN_ON_ONCE(apic_x2apic_mode(apic) && offset == APIC_ICR);
case APIC_ICR:
kvm_lapic_set_reg(apic, APIC_ICR, val);
kvm_lapic_set_reg(apic, APIC_ICR, data);
kvm_lapic_set_reg64(apic, APIC_ICR, data);
trace_kvm_apic_write(APIC_ICR, data);
return (u64)kvm_lapic_get_reg(apic, APIC_ICR) |
return kvm_lapic_get_reg64(apic, APIC_ICR);
if (apic_x2apic_mode(apic) && offset == APIC_ICR)
kvm_lapic_set_reg(apic, APIC_ICR, 0);
kvm_lapic_set_reg64(apic, APIC_ICR, 0);
icr = apic_get_reg(s->regs, APIC_ICR) |
apic_set_reg64(s->regs, APIC_ICR, icr);
icr = apic_get_reg64(s->regs, APIC_ICR);
if (reg == APIC_ICR) {
if (reg == APIC_ICR)
X2APIC_MSR(APIC_ICR),
kvm_apic_write_nodecode(vcpu, APIC_ICR);
case APIC_ICR:
vmx_disable_intercept_for_msr(vcpu, X2APIC_MSR(APIC_ICR), MSR_TYPE_RW);
case APIC_BASE_MSR + (APIC_ICR >> 4):
x2apic_write_reg(APIC_ICR, APIC_DEST_SELF | APIC_INT_ASSERT |
x2apic_write_reg(APIC_ICR,
x2apic_write_reg(APIC_ICR,
x2apic_write_reg(APIC_ICR, APIC_DEST_SELF | APIC_INT_ASSERT | APIC_DM_NMI);
xapic_write_reg(APIC_ICR, APIC_DEST_SELF | APIC_DM_FIXED | GOOD_IPI_VECTOR);
xapic_write_reg(APIC_ICR, APIC_DEST_SELF | APIC_DM_FIXED | BAD_IPI_VECTOR);
xapic_write_reg(APIC_ICR, APIC_DEST_SELF | APIC_DM_FIXED | GOOD_IPI_VECTOR);
xapic_write_reg(APIC_ICR, icr_val);
xapic_write_reg(APIC_ICR, val);
x2apic_write_reg_fault(APIC_ICR, val);
x2apic_write_reg(APIC_ICR, val);
GUEST_ASSERT_EQ(x2apic_read_reg(APIC_ICR), val);
icr = (u64)(*((u32 *)&xapic.regs[APIC_ICR])) |
xapic_write_reg(APIC_ICR, icr);