 06d1838db0
			
		
	
	
	06d1838db0
	
	
	
		
			
			Signed-off-by: Sanjay Lal <sanjayl@kymasys.com> Cc: kvm@vger.kernel.org Cc: linux-mips@linux-mips.org Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| * This file is subject to the terms and conditions of the GNU General Public
 | |
| * License.  See the file "COPYING" in the main directory of this archive
 | |
| * for more details.
 | |
| *
 | |
| * KVM/MIPS: Interrupts
 | |
| * Copyright (C) 2012  MIPS Technologies, Inc.  All rights reserved.
 | |
| * Authors: Sanjay Lal <sanjayl@kymasys.com>
 | |
| */
 | |
| 
 | |
| /* MIPS Exception Priorities, exceptions (including interrupts) are queued up
 | |
|  * for the guest in the order specified by their priorities
 | |
|  */
 | |
| 
 | |
| #define MIPS_EXC_RESET              0
 | |
| #define MIPS_EXC_SRESET             1
 | |
| #define MIPS_EXC_DEBUG_ST           2
 | |
| #define MIPS_EXC_DEBUG              3
 | |
| #define MIPS_EXC_DDB                4
 | |
| #define MIPS_EXC_NMI                5
 | |
| #define MIPS_EXC_MCHK               6
 | |
| #define MIPS_EXC_INT_TIMER          7
 | |
| #define MIPS_EXC_INT_IO             8
 | |
| #define MIPS_EXC_EXECUTE            9
 | |
| #define MIPS_EXC_INT_IPI_1          10
 | |
| #define MIPS_EXC_INT_IPI_2          11
 | |
| #define MIPS_EXC_MAX                12
 | |
| /* XXXSL More to follow */
 | |
| 
 | |
| #define C_TI        (_ULCAST_(1) << 30)
 | |
| 
 | |
| #define KVM_MIPS_IRQ_DELIVER_ALL_AT_ONCE (0)
 | |
| #define KVM_MIPS_IRQ_CLEAR_ALL_AT_ONCE   (0)
 | |
| 
 | |
| void kvm_mips_queue_irq(struct kvm_vcpu *vcpu, uint32_t priority);
 | |
| void kvm_mips_dequeue_irq(struct kvm_vcpu *vcpu, uint32_t priority);
 | |
| int kvm_mips_pending_timer(struct kvm_vcpu *vcpu);
 | |
| 
 | |
| void kvm_mips_queue_timer_int_cb(struct kvm_vcpu *vcpu);
 | |
| void kvm_mips_dequeue_timer_int_cb(struct kvm_vcpu *vcpu);
 | |
| void kvm_mips_queue_io_int_cb(struct kvm_vcpu *vcpu,
 | |
| 			      struct kvm_mips_interrupt *irq);
 | |
| void kvm_mips_dequeue_io_int_cb(struct kvm_vcpu *vcpu,
 | |
| 				struct kvm_mips_interrupt *irq);
 | |
| int kvm_mips_irq_deliver_cb(struct kvm_vcpu *vcpu, unsigned int priority,
 | |
| 			    uint32_t cause);
 | |
| int kvm_mips_irq_clear_cb(struct kvm_vcpu *vcpu, unsigned int priority,
 | |
| 			  uint32_t cause);
 | |
| void kvm_mips_deliver_interrupts(struct kvm_vcpu *vcpu, uint32_t cause);
 |