summaryrefslogtreecommitdiffstats
path: root/kernel/include/kvm/arm_arch_timer.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include/kvm/arm_arch_timer.h')
-rw-r--r--kernel/include/kvm/arm_arch_timer.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/include/kvm/arm_arch_timer.h b/kernel/include/kvm/arm_arch_timer.h
index e5966758c..1800227af 100644
--- a/kernel/include/kvm/arm_arch_timer.h
+++ b/kernel/include/kvm/arm_arch_timer.h
@@ -51,14 +51,17 @@ struct arch_timer_cpu {
bool armed;
/* Timer IRQ */
- const struct kvm_irq_level *irq;
+ struct kvm_irq_level irq;
+
+ /* VGIC mapping */
+ struct irq_phys_map *map;
};
int kvm_timer_hyp_init(void);
void kvm_timer_enable(struct kvm *kvm);
void kvm_timer_init(struct kvm *kvm);
-void kvm_timer_vcpu_reset(struct kvm_vcpu *vcpu,
- const struct kvm_irq_level *irq);
+int kvm_timer_vcpu_reset(struct kvm_vcpu *vcpu,
+ const struct kvm_irq_level *irq);
void kvm_timer_vcpu_init(struct kvm_vcpu *vcpu);
void kvm_timer_flush_hwstate(struct kvm_vcpu *vcpu);
void kvm_timer_sync_hwstate(struct kvm_vcpu *vcpu);
@@ -68,5 +71,7 @@ u64 kvm_arm_timer_get_reg(struct kvm_vcpu *, u64 regid);
int kvm_arm_timer_set_reg(struct kvm_vcpu *, u64 regid, u64 value);
bool kvm_timer_should_fire(struct kvm_vcpu *vcpu);
+void kvm_timer_schedule(struct kvm_vcpu *vcpu);
+void kvm_timer_unschedule(struct kvm_vcpu *vcpu);
#endif