cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

kvm_vcpu_timer.h (1221B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (C) 2019 Western Digital Corporation or its affiliates.
      4 *
      5 * Authors:
      6 *	Atish Patra <atish.patra@wdc.com>
      7 */
      8
      9#ifndef __KVM_VCPU_RISCV_TIMER_H
     10#define __KVM_VCPU_RISCV_TIMER_H
     11
     12#include <linux/hrtimer.h>
     13
     14struct kvm_guest_timer {
     15	/* Mult & Shift values to get nanoseconds from cycles */
     16	u32 nsec_mult;
     17	u32 nsec_shift;
     18	/* Time delta value */
     19	u64 time_delta;
     20};
     21
     22struct kvm_vcpu_timer {
     23	/* Flag for whether init is done */
     24	bool init_done;
     25	/* Flag for whether timer event is configured */
     26	bool next_set;
     27	/* Next timer event cycles */
     28	u64 next_cycles;
     29	/* Underlying hrtimer instance */
     30	struct hrtimer hrt;
     31};
     32
     33int kvm_riscv_vcpu_timer_next_event(struct kvm_vcpu *vcpu, u64 ncycles);
     34int kvm_riscv_vcpu_get_reg_timer(struct kvm_vcpu *vcpu,
     35				 const struct kvm_one_reg *reg);
     36int kvm_riscv_vcpu_set_reg_timer(struct kvm_vcpu *vcpu,
     37				 const struct kvm_one_reg *reg);
     38int kvm_riscv_vcpu_timer_init(struct kvm_vcpu *vcpu);
     39int kvm_riscv_vcpu_timer_deinit(struct kvm_vcpu *vcpu);
     40int kvm_riscv_vcpu_timer_reset(struct kvm_vcpu *vcpu);
     41void kvm_riscv_vcpu_timer_restore(struct kvm_vcpu *vcpu);
     42int kvm_riscv_guest_timer_init(struct kvm *kvm);
     43
     44#endif