Lines Matching defs:vcpu
46 struct kvm_vcpu *vcpu = container_of(t, struct kvm_vcpu, arch.timer);
47 struct kvm_guest_timer *gt = &vcpu->kvm->arch.timer;
56 kvm_riscv_vcpu_set_interrupt(vcpu, IRQ_VS_TIMER);
72 static int kvm_riscv_vcpu_update_vstimecmp(struct kvm_vcpu *vcpu, u64 ncycles)
83 static int kvm_riscv_vcpu_update_hrtimer(struct kvm_vcpu *vcpu, u64 ncycles)
85 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
86 struct kvm_guest_timer *gt = &vcpu->kvm->arch.timer;
92 kvm_riscv_vcpu_unset_interrupt(vcpu, IRQ_VS_TIMER);
102 int kvm_riscv_vcpu_timer_next_event(struct kvm_vcpu *vcpu, u64 ncycles)
104 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
106 return t->timer_next_event(vcpu, ncycles);
113 struct kvm_vcpu *vcpu = container_of(t, struct kvm_vcpu, arch.timer);
114 struct kvm_guest_timer *gt = &vcpu->kvm->arch.timer;
123 kvm_vcpu_kick(vcpu);
128 bool kvm_riscv_vcpu_timer_pending(struct kvm_vcpu *vcpu)
130 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
131 struct kvm_guest_timer *gt = &vcpu->kvm->arch.timer;
134 kvm_riscv_vcpu_has_interrupts(vcpu, 1UL << IRQ_VS_TIMER))
140 static void kvm_riscv_vcpu_timer_blocking(struct kvm_vcpu *vcpu)
142 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
143 struct kvm_guest_timer *gt = &vcpu->kvm->arch.timer;
154 static void kvm_riscv_vcpu_timer_unblocking(struct kvm_vcpu *vcpu)
156 kvm_riscv_vcpu_timer_cancel(&vcpu->arch.timer);
159 int kvm_riscv_vcpu_get_reg_timer(struct kvm_vcpu *vcpu,
162 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
163 struct kvm_guest_timer *gt = &vcpu->kvm->arch.timer;
199 int kvm_riscv_vcpu_set_reg_timer(struct kvm_vcpu *vcpu,
202 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
203 struct kvm_guest_timer *gt = &vcpu->kvm->arch.timer;
232 ret = kvm_riscv_vcpu_timer_next_event(vcpu, reg_val);
244 int kvm_riscv_vcpu_timer_init(struct kvm_vcpu *vcpu)
246 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
255 /* Enable sstc for every vcpu if available in hardware */
269 int kvm_riscv_vcpu_timer_deinit(struct kvm_vcpu *vcpu)
273 ret = kvm_riscv_vcpu_timer_cancel(&vcpu->arch.timer);
274 vcpu->arch.timer.init_done = false;
279 int kvm_riscv_vcpu_timer_reset(struct kvm_vcpu *vcpu)
281 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
284 return kvm_riscv_vcpu_timer_cancel(&vcpu->arch.timer);
287 static void kvm_riscv_vcpu_update_timedelta(struct kvm_vcpu *vcpu)
289 struct kvm_guest_timer *gt = &vcpu->kvm->arch.timer;
299 void kvm_riscv_vcpu_timer_restore(struct kvm_vcpu *vcpu)
301 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
303 kvm_riscv_vcpu_update_timedelta(vcpu);
319 kvm_riscv_vcpu_timer_unblocking(vcpu);
322 void kvm_riscv_vcpu_timer_sync(struct kvm_vcpu *vcpu)
324 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
337 void kvm_riscv_vcpu_timer_save(struct kvm_vcpu *vcpu)
339 struct kvm_vcpu_timer *t = &vcpu->arch.timer;
353 if (kvm_vcpu_is_blocking(vcpu))
354 kvm_riscv_vcpu_timer_blocking(vcpu);