summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/kvm_timer.h
diff options
context:
space:
mode:
authorMarcelo Tosatti <mtosatti@redhat.com>2009-02-23 14:57:41 +0100
committerAvi Kivity <avi@redhat.com>2009-06-10 10:48:25 +0200
commitd3c7b77d1a6e7a0a27035a7ba723a3455317883e (patch)
tree65053ca8122dda5772c48ce70c9d99e8127f8cdd /arch/x86/kvm/kvm_timer.h
parentKVM: PIT: remove usage of count_load_time for channel 0 (diff)
downloadlinux-d3c7b77d1a6e7a0a27035a7ba723a3455317883e.tar.xz
linux-d3c7b77d1a6e7a0a27035a7ba723a3455317883e.zip
KVM: unify part of generic timer handling
Hide the internals of vcpu awakening / injection from the in-kernel emulated timers. This makes future changes in this logic easier and decreases the distance to more generic timer handling. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/kvm_timer.h')
-rw-r--r--arch/x86/kvm/kvm_timer.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/x86/kvm/kvm_timer.h b/arch/x86/kvm/kvm_timer.h
new file mode 100644
index 000000000000..26bd6ba74e1c
--- /dev/null
+++ b/arch/x86/kvm/kvm_timer.h
@@ -0,0 +1,18 @@
+
+struct kvm_timer {
+ struct hrtimer timer;
+ s64 period; /* unit: ns */
+ atomic_t pending; /* accumulated triggered timers */
+ bool reinject;
+ struct kvm_timer_ops *t_ops;
+ struct kvm *kvm;
+ int vcpu_id;
+};
+
+struct kvm_timer_ops {
+ bool (*is_periodic)(struct kvm_timer *);
+};
+
+
+enum hrtimer_restart kvm_timer_fn(struct hrtimer *data);
+