/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2021 Western Digital Corporation or its affiliates. * * Authors: * Atish Patra <atish.patra@wdc.com> * Anup Patel <anup.patel@wdc.com> */ #ifndef __KVM_VCPU_RISCV_FP_H #define __KVM_VCPU_RISCV_FP_H #include <linux/types.h> struct kvm_cpu_context; #ifdef CONFIG_FPU void __kvm_riscv_fp_f_save(struct kvm_cpu_context *context); void __kvm_riscv_fp_f_restore(struct kvm_cpu_context *context); void __kvm_riscv_fp_d_save(struct kvm_cpu_context *context); void __kvm_riscv_fp_d_restore(struct kvm_cpu_context *context); void kvm_riscv_vcpu_fp_reset(struct kvm_vcpu *vcpu); void kvm_riscv_vcpu_guest_fp_save(struct kvm_cpu_context *cntx, const unsigned long *isa); void kvm_riscv_vcpu_guest_fp_restore(struct kvm_cpu_context *cntx, const unsigned long *isa); void kvm_riscv_vcpu_host_fp_save(struct kvm_cpu_context *cntx); void kvm_riscv_vcpu_host_fp_restore(struct kvm_cpu_context *cntx); #else static inline void kvm_riscv_vcpu_fp_reset(struct kvm_vcpu *vcpu) { } static inline void kvm_riscv_vcpu_guest_fp_save(struct kvm_cpu_context *cntx, const unsigned long *isa) { } static inline void kvm_riscv_vcpu_guest_fp_restore( struct kvm_cpu_context *cntx, const unsigned long *isa) { } static inline void kvm_riscv_vcpu_host_fp_save(struct kvm_cpu_context *cntx) { } static inline void kvm_riscv_vcpu_host_fp_restore( struct kvm_cpu_context *cntx) { } #endif int kvm_riscv_vcpu_get_reg_fp(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg, unsigned long rtype); int kvm_riscv_vcpu_set_reg_fp(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg, unsigned long rtype); #endif