|  | /* 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 |