lapic.h (7ebdfaa52d15b947503f76474477f92854796d96) lapic.h (d0659d946be05e098883b6955d2764595997f6a4)
1#ifndef __KVM_X86_LAPIC_H
2#define __KVM_X86_LAPIC_H
3
4#include "iodev.h"
5
6#include <linux/kvm_host.h>
7
8#define KVM_APIC_INIT 0
9#define KVM_APIC_SIPI 1
10
11struct kvm_timer {
12 struct hrtimer timer;
13 s64 period; /* unit: ns */
14 u32 timer_mode;
15 u32 timer_mode_mask;
16 u64 tscdeadline;
1#ifndef __KVM_X86_LAPIC_H
2#define __KVM_X86_LAPIC_H
3
4#include "iodev.h"
5
6#include <linux/kvm_host.h>
7
8#define KVM_APIC_INIT 0
9#define KVM_APIC_SIPI 1
10
11struct kvm_timer {
12 struct hrtimer timer;
13 s64 period; /* unit: ns */
14 u32 timer_mode;
15 u32 timer_mode_mask;
16 u64 tscdeadline;
17 u64 expired_tscdeadline;
17 atomic_t pending; /* accumulated triggered timers */
18};
19
20struct kvm_lapic {
21 unsigned long base_address;
22 struct kvm_io_device dev;
23 struct kvm_timer lapic_timer;
24 u32 divide_count;

--- 140 unchanged lines hidden (view full) ---

165
166static inline bool kvm_apic_has_events(struct kvm_vcpu *vcpu)
167{
168 return vcpu->arch.apic->pending_events;
169}
170
171bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector);
172
18 atomic_t pending; /* accumulated triggered timers */
19};
20
21struct kvm_lapic {
22 unsigned long base_address;
23 struct kvm_io_device dev;
24 struct kvm_timer lapic_timer;
25 u32 divide_count;

--- 140 unchanged lines hidden (view full) ---

166
167static inline bool kvm_apic_has_events(struct kvm_vcpu *vcpu)
168{
169 return vcpu->arch.apic->pending_events;
170}
171
172bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector);
173
174void wait_lapic_expire(struct kvm_vcpu *vcpu);
175
173#endif
176#endif