Lines Matching refs:vcpu
25 void kvm_mips_queue_irq(struct kvm_vcpu *vcpu, uint32_t priority) in kvm_mips_queue_irq() argument
27 set_bit(priority, &vcpu->arch.pending_exceptions); in kvm_mips_queue_irq()
30 void kvm_mips_dequeue_irq(struct kvm_vcpu *vcpu, uint32_t priority) in kvm_mips_dequeue_irq() argument
32 clear_bit(priority, &vcpu->arch.pending_exceptions); in kvm_mips_dequeue_irq()
35 void kvm_mips_queue_timer_int_cb(struct kvm_vcpu *vcpu) in kvm_mips_queue_timer_int_cb() argument
42 kvm_set_c0_guest_cause(vcpu->arch.cop0, (C_IRQ5 | C_TI)); in kvm_mips_queue_timer_int_cb()
45 kvm_mips_queue_irq(vcpu, MIPS_EXC_INT_TIMER); in kvm_mips_queue_timer_int_cb()
49 void kvm_mips_dequeue_timer_int_cb(struct kvm_vcpu *vcpu) in kvm_mips_dequeue_timer_int_cb() argument
51 kvm_clear_c0_guest_cause(vcpu->arch.cop0, (C_IRQ5 | C_TI)); in kvm_mips_dequeue_timer_int_cb()
52 kvm_mips_dequeue_irq(vcpu, MIPS_EXC_INT_TIMER); in kvm_mips_dequeue_timer_int_cb()
55 void kvm_mips_queue_io_int_cb(struct kvm_vcpu *vcpu, in kvm_mips_queue_io_int_cb() argument
67 kvm_set_c0_guest_cause(vcpu->arch.cop0, (C_IRQ0)); in kvm_mips_queue_io_int_cb()
69 kvm_mips_queue_irq(vcpu, MIPS_EXC_INT_IO); in kvm_mips_queue_io_int_cb()
73 kvm_set_c0_guest_cause(vcpu->arch.cop0, (C_IRQ1)); in kvm_mips_queue_io_int_cb()
74 kvm_mips_queue_irq(vcpu, MIPS_EXC_INT_IPI_1); in kvm_mips_queue_io_int_cb()
78 kvm_set_c0_guest_cause(vcpu->arch.cop0, (C_IRQ2)); in kvm_mips_queue_io_int_cb()
79 kvm_mips_queue_irq(vcpu, MIPS_EXC_INT_IPI_2); in kvm_mips_queue_io_int_cb()
88 void kvm_mips_dequeue_io_int_cb(struct kvm_vcpu *vcpu, in kvm_mips_dequeue_io_int_cb() argument
95 kvm_clear_c0_guest_cause(vcpu->arch.cop0, (C_IRQ0)); in kvm_mips_dequeue_io_int_cb()
96 kvm_mips_dequeue_irq(vcpu, MIPS_EXC_INT_IO); in kvm_mips_dequeue_io_int_cb()
100 kvm_clear_c0_guest_cause(vcpu->arch.cop0, (C_IRQ1)); in kvm_mips_dequeue_io_int_cb()
101 kvm_mips_dequeue_irq(vcpu, MIPS_EXC_INT_IPI_1); in kvm_mips_dequeue_io_int_cb()
105 kvm_clear_c0_guest_cause(vcpu->arch.cop0, (C_IRQ2)); in kvm_mips_dequeue_io_int_cb()
106 kvm_mips_dequeue_irq(vcpu, MIPS_EXC_INT_IPI_2); in kvm_mips_dequeue_io_int_cb()
116 int kvm_mips_irq_deliver_cb(struct kvm_vcpu *vcpu, unsigned int priority, in kvm_mips_irq_deliver_cb() argument
122 struct kvm_vcpu_arch *arch = &vcpu->arch; in kvm_mips_irq_deliver_cb()
123 struct mips_coproc *cop0 = vcpu->arch.cop0; in kvm_mips_irq_deliver_cb()
192 clear_bit(priority, &vcpu->arch.pending_exceptions); in kvm_mips_irq_deliver_cb()
198 int kvm_mips_irq_clear_cb(struct kvm_vcpu *vcpu, unsigned int priority, in kvm_mips_irq_clear_cb() argument
204 void kvm_mips_deliver_interrupts(struct kvm_vcpu *vcpu, uint32_t cause) in kvm_mips_deliver_interrupts() argument
206 unsigned long *pending = &vcpu->arch.pending_exceptions; in kvm_mips_deliver_interrupts()
207 unsigned long *pending_clr = &vcpu->arch.pending_exceptions_clr; in kvm_mips_deliver_interrupts()
215 if (kvm_mips_callbacks->irq_clear(vcpu, priority, cause)) { in kvm_mips_deliver_interrupts()
227 if (kvm_mips_callbacks->irq_deliver(vcpu, priority, cause)) { in kvm_mips_deliver_interrupts()
239 int kvm_mips_pending_timer(struct kvm_vcpu *vcpu) in kvm_mips_pending_timer() argument
241 return test_bit(MIPS_EXC_INT_TIMER, &vcpu->arch.pending_exceptions); in kvm_mips_pending_timer()