Lines Matching refs:kapic

22 static inline void kvm_apic_set_reg(struct kvm_lapic_state *kapic,  in kvm_apic_set_reg()  argument
25 *((uint32_t *)(kapic->regs + (reg_id << 4))) = val; in kvm_apic_set_reg()
28 static inline uint32_t kvm_apic_get_reg(struct kvm_lapic_state *kapic, in kvm_apic_get_reg() argument
31 return *((uint32_t *)(kapic->regs + (reg_id << 4))); in kvm_apic_get_reg()
34 static void kvm_put_apic_state(APICCommonState *s, struct kvm_lapic_state *kapic) in kvm_put_apic_state() argument
38 memset(kapic, 0, sizeof(*kapic)); in kvm_put_apic_state()
40 kvm_apic_set_reg(kapic, 0x2, s->initial_apic_id); in kvm_put_apic_state()
42 kvm_apic_set_reg(kapic, 0x2, s->id << 24); in kvm_put_apic_state()
44 kvm_apic_set_reg(kapic, 0x8, s->tpr); in kvm_put_apic_state()
45 kvm_apic_set_reg(kapic, 0xd, s->log_dest << 24); in kvm_put_apic_state()
46 kvm_apic_set_reg(kapic, 0xe, s->dest_mode << 28 | 0x0fffffff); in kvm_put_apic_state()
47 kvm_apic_set_reg(kapic, 0xf, s->spurious_vec); in kvm_put_apic_state()
49 kvm_apic_set_reg(kapic, 0x10 + i, s->isr[i]); in kvm_put_apic_state()
50 kvm_apic_set_reg(kapic, 0x18 + i, s->tmr[i]); in kvm_put_apic_state()
51 kvm_apic_set_reg(kapic, 0x20 + i, s->irr[i]); in kvm_put_apic_state()
53 kvm_apic_set_reg(kapic, 0x28, s->esr); in kvm_put_apic_state()
54 kvm_apic_set_reg(kapic, 0x30, s->icr[0]); in kvm_put_apic_state()
55 kvm_apic_set_reg(kapic, 0x31, s->icr[1]); in kvm_put_apic_state()
57 kvm_apic_set_reg(kapic, 0x32 + i, s->lvt[i]); in kvm_put_apic_state()
59 kvm_apic_set_reg(kapic, 0x38, s->initial_count); in kvm_put_apic_state()
60 kvm_apic_set_reg(kapic, 0x3e, s->divide_conf); in kvm_put_apic_state()
63 void kvm_get_apic_state(DeviceState *dev, struct kvm_lapic_state *kapic) in kvm_get_apic_state() argument
69 assert(kvm_apic_get_reg(kapic, 0x2) == s->initial_apic_id); in kvm_get_apic_state()
71 s->id = kvm_apic_get_reg(kapic, 0x2) >> 24; in kvm_get_apic_state()
73 s->tpr = kvm_apic_get_reg(kapic, 0x8); in kvm_get_apic_state()
74 s->arb_id = kvm_apic_get_reg(kapic, 0x9); in kvm_get_apic_state()
75 s->log_dest = kvm_apic_get_reg(kapic, 0xd) >> 24; in kvm_get_apic_state()
76 s->dest_mode = kvm_apic_get_reg(kapic, 0xe) >> 28; in kvm_get_apic_state()
77 s->spurious_vec = kvm_apic_get_reg(kapic, 0xf); in kvm_get_apic_state()
79 s->isr[i] = kvm_apic_get_reg(kapic, 0x10 + i); in kvm_get_apic_state()
80 s->tmr[i] = kvm_apic_get_reg(kapic, 0x18 + i); in kvm_get_apic_state()
81 s->irr[i] = kvm_apic_get_reg(kapic, 0x20 + i); in kvm_get_apic_state()
83 s->esr = kvm_apic_get_reg(kapic, 0x28); in kvm_get_apic_state()
84 s->icr[0] = kvm_apic_get_reg(kapic, 0x30); in kvm_get_apic_state()
85 s->icr[1] = kvm_apic_get_reg(kapic, 0x31); in kvm_get_apic_state()
87 s->lvt[i] = kvm_apic_get_reg(kapic, 0x32 + i); in kvm_get_apic_state()
89 s->initial_count = kvm_apic_get_reg(kapic, 0x38); in kvm_get_apic_state()
90 s->divide_conf = kvm_apic_get_reg(kapic, 0x3e); in kvm_get_apic_state()
141 struct kvm_lapic_state kapic; in kvm_apic_put() local
145 kvm_put_apic_state(s, &kapic); in kvm_apic_put()
147 ret = kvm_vcpu_ioctl(CPU(s->cpu), KVM_SET_LAPIC, &kapic); in kvm_apic_put()