Blame view
virt/kvm/ioapic.h
2.24 KB
82470196f KVM: Move irqchip... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#ifndef __KVM_IO_APIC_H #define __KVM_IO_APIC_H #include <linux/kvm_host.h> #include "iodev.h" struct kvm; struct kvm_vcpu; #define IOAPIC_NUM_PINS KVM_IOAPIC_NUM_PINS #define IOAPIC_VERSION_ID 0x11 /* IOAPIC version */ #define IOAPIC_EDGE_TRIG 0 #define IOAPIC_LEVEL_TRIG 1 #define IOAPIC_DEFAULT_BASE_ADDRESS 0xfec00000 #define IOAPIC_MEM_LENGTH 0x100 /* Direct registers. */ #define IOAPIC_REG_SELECT 0x00 #define IOAPIC_REG_WINDOW 0x10 #define IOAPIC_REG_EOI 0x40 /* IA64 IOSAPIC only */ /* Indirect registers. */ #define IOAPIC_REG_APIC_ID 0x00 /* x86 IOAPIC only */ #define IOAPIC_REG_VERSION 0x01 #define IOAPIC_REG_ARB_ID 0x02 /* x86 IOAPIC only */ /*ioapic delivery mode*/ #define IOAPIC_FIXED 0x0 #define IOAPIC_LOWEST_PRIORITY 0x1 #define IOAPIC_PMI 0x2 #define IOAPIC_NMI 0x4 #define IOAPIC_INIT 0x5 #define IOAPIC_EXTINT 0x7 struct kvm_ioapic { u64 base_address; u32 ioregsel; u32 id; u32 irr; u32 pad; |
cf9e4e15e KVM: Split IOAPIC... |
43 |
union kvm_ioapic_redirect_entry redirtbl[IOAPIC_NUM_PINS]; |
1a6e4a8c2 KVM: Move irq sha... |
44 |
unsigned long irq_states[IOAPIC_NUM_PINS]; |
82470196f KVM: Move irqchip... |
45 46 |
struct kvm_io_device dev; struct kvm *kvm; |
f52447261 KVM: irq ack noti... |
47 |
void (*ack_notifier)(void *opaque, int irq); |
46a47b1ed KVM: convert ioap... |
48 |
spinlock_t lock; |
46a929bc1 KVM: avoid taking... |
49 |
DECLARE_BITMAP(handled_vectors, 256); |
82470196f KVM: Move irqchip... |
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
}; #ifdef DEBUG #define ASSERT(x) \ do { \ if (!(x)) { \ printk(KERN_EMERG "assertion failed %s: %d: %s ", \ __FILE__, __LINE__, #x); \ BUG(); \ } \ } while (0) #else #define ASSERT(x) do { } while (0) #endif static inline struct kvm_ioapic *ioapic_irqchip(struct kvm *kvm) { return kvm->arch.vioapic; } |
343f94fe4 KVM: consolidate ... |
70 71 |
int kvm_apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source, int short_hand, int dest, int dest_mode); |
e1035715e KVM: change the w... |
72 |
int kvm_apic_compare_prio(struct kvm_vcpu *vcpu1, struct kvm_vcpu *vcpu2); |
f52447261 KVM: irq ack noti... |
73 |
void kvm_ioapic_update_eoi(struct kvm *kvm, int vector, int trigger_mode); |
82470196f KVM: Move irqchip... |
74 |
int kvm_ioapic_init(struct kvm *kvm); |
72bb2fcd2 KVM: cleanup the ... |
75 |
void kvm_ioapic_destroy(struct kvm *kvm); |
4925663a0 KVM: Report IRQ i... |
76 |
int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level); |
82470196f KVM: Move irqchip... |
77 |
void kvm_ioapic_reset(struct kvm_ioapic *ioapic); |
58c2dde17 KVM: APIC: get ri... |
78 79 |
int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src, struct kvm_lapic_irq *irq); |
eba0226bd KVM: Move IO APIC... |
80 81 |
int kvm_get_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state); int kvm_set_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state); |
82470196f KVM: Move irqchip... |
82 |
#endif |