diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2014-11-20 07:45:31 -0500 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-11-21 12:02:37 -0500 |
commit | 6ef768fac9dfe3404d3fdc09909ea203a88f2f38 (patch) | |
tree | 6bfd08a6a7527bc94b015fe7c0177af51efa5434 /virt/kvm/ioapic.h | |
parent | c32a42721ce67594e4481a961aa149055de9c1d9 (diff) |
kvm: x86: move ioapic.c and irq_comm.c back to arch/x86/
ia64 does not need them anymore. Ack notifiers become x86-specific
too.
Suggested-by: Gleb Natapov <gleb@kernel.org>
Reviewed-by: Radim Krcmar <rkrcmar@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt/kvm/ioapic.h')
-rw-r--r-- | virt/kvm/ioapic.h | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/virt/kvm/ioapic.h b/virt/kvm/ioapic.h deleted file mode 100644 index dc3baa3a538f..000000000000 --- a/virt/kvm/ioapic.h +++ /dev/null | |||
@@ -1,103 +0,0 @@ | |||
1 | #ifndef __KVM_IO_APIC_H | ||
2 | #define __KVM_IO_APIC_H | ||
3 | |||
4 | #include <linux/kvm_host.h> | ||
5 | |||
6 | #include "iodev.h" | ||
7 | |||
8 | struct kvm; | ||
9 | struct kvm_vcpu; | ||
10 | |||
11 | #define IOAPIC_NUM_PINS KVM_IOAPIC_NUM_PINS | ||
12 | #define IOAPIC_VERSION_ID 0x11 /* IOAPIC version */ | ||
13 | #define IOAPIC_EDGE_TRIG 0 | ||
14 | #define IOAPIC_LEVEL_TRIG 1 | ||
15 | |||
16 | #define IOAPIC_DEFAULT_BASE_ADDRESS 0xfec00000 | ||
17 | #define IOAPIC_MEM_LENGTH 0x100 | ||
18 | |||
19 | /* Direct registers. */ | ||
20 | #define IOAPIC_REG_SELECT 0x00 | ||
21 | #define IOAPIC_REG_WINDOW 0x10 | ||
22 | |||
23 | /* Indirect registers. */ | ||
24 | #define IOAPIC_REG_APIC_ID 0x00 /* x86 IOAPIC only */ | ||
25 | #define IOAPIC_REG_VERSION 0x01 | ||
26 | #define IOAPIC_REG_ARB_ID 0x02 /* x86 IOAPIC only */ | ||
27 | |||
28 | /*ioapic delivery mode*/ | ||
29 | #define IOAPIC_FIXED 0x0 | ||
30 | #define IOAPIC_LOWEST_PRIORITY 0x1 | ||
31 | #define IOAPIC_PMI 0x2 | ||
32 | #define IOAPIC_NMI 0x4 | ||
33 | #define IOAPIC_INIT 0x5 | ||
34 | #define IOAPIC_EXTINT 0x7 | ||
35 | |||
36 | #ifdef CONFIG_X86 | ||
37 | #define RTC_GSI 8 | ||
38 | #else | ||
39 | #define RTC_GSI -1U | ||
40 | #endif | ||
41 | |||
42 | struct rtc_status { | ||
43 | int pending_eoi; | ||
44 | DECLARE_BITMAP(dest_map, KVM_MAX_VCPUS); | ||
45 | }; | ||
46 | |||
47 | struct kvm_ioapic { | ||
48 | u64 base_address; | ||
49 | u32 ioregsel; | ||
50 | u32 id; | ||
51 | u32 irr; | ||
52 | u32 pad; | ||
53 | union kvm_ioapic_redirect_entry redirtbl[IOAPIC_NUM_PINS]; | ||
54 | unsigned long irq_states[IOAPIC_NUM_PINS]; | ||
55 | struct kvm_io_device dev; | ||
56 | struct kvm *kvm; | ||
57 | void (*ack_notifier)(void *opaque, int irq); | ||
58 | spinlock_t lock; | ||
59 | DECLARE_BITMAP(handled_vectors, 256); | ||
60 | struct rtc_status rtc_status; | ||
61 | struct delayed_work eoi_inject; | ||
62 | u32 irq_eoi[IOAPIC_NUM_PINS]; | ||
63 | }; | ||
64 | |||
65 | #ifdef DEBUG | ||
66 | #define ASSERT(x) \ | ||
67 | do { \ | ||
68 | if (!(x)) { \ | ||
69 | printk(KERN_EMERG "assertion failed %s: %d: %s\n", \ | ||
70 | __FILE__, __LINE__, #x); \ | ||
71 | BUG(); \ | ||
72 | } \ | ||
73 | } while (0) | ||
74 | #else | ||
75 | #define ASSERT(x) do { } while (0) | ||
76 | #endif | ||
77 | |||
78 | static inline struct kvm_ioapic *ioapic_irqchip(struct kvm *kvm) | ||
79 | { | ||
80 | return kvm->arch.vioapic; | ||
81 | } | ||
82 | |||
83 | void kvm_rtc_eoi_tracking_restore_one(struct kvm_vcpu *vcpu); | ||
84 | int kvm_apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source, | ||
85 | int short_hand, unsigned int dest, int dest_mode); | ||
86 | int kvm_apic_compare_prio(struct kvm_vcpu *vcpu1, struct kvm_vcpu *vcpu2); | ||
87 | void kvm_ioapic_update_eoi(struct kvm_vcpu *vcpu, int vector, | ||
88 | int trigger_mode); | ||
89 | bool kvm_ioapic_handles_vector(struct kvm *kvm, int vector); | ||
90 | int kvm_ioapic_init(struct kvm *kvm); | ||
91 | void kvm_ioapic_destroy(struct kvm *kvm); | ||
92 | int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int irq_source_id, | ||
93 | int level, bool line_status); | ||
94 | void kvm_ioapic_clear_all(struct kvm_ioapic *ioapic, int irq_source_id); | ||
95 | int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src, | ||
96 | struct kvm_lapic_irq *irq, unsigned long *dest_map); | ||
97 | int kvm_get_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state); | ||
98 | int kvm_set_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state); | ||
99 | void kvm_vcpu_request_scan_ioapic(struct kvm *kvm); | ||
100 | void kvm_ioapic_scan_entry(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap, | ||
101 | u32 *tmr); | ||
102 | |||
103 | #endif | ||