FILE
kvm_vcpu_vector.h
File preview with syntax highlighting.
linux-6.19.14/arch/riscv/include/asm/kvm_vcpu_vector.h
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2022 SiFive 4 * 5 * Authors: 6 * Vincent Chen <vincent.chen@sifive.com> 7 * Greentime Hu <greentime.hu@sifive.com> 8 */ 9 10#ifndef __KVM_VCPU_RISCV_VECTOR_H 11#define __KVM_VCPU_RISCV_VECTOR_H 12 13#include <linux/types.h> 14 15#ifdef CONFIG_RISCV_ISA_V 16#include <asm/vector.h> 17#include <asm/kvm_host.h> 18 19static __always_inline void __kvm_riscv_vector_save(struct kvm_cpu_context *context) 20{ 21 __riscv_v_vstate_save(&context->vector, context->vector.datap); 22} 23 24static __always_inline void __kvm_riscv_vector_restore(struct kvm_cpu_context *context) 25{ 26 __riscv_v_vstate_restore(&context->vector, context->vector.datap); 27} 28 29void kvm_riscv_vcpu_vector_reset(struct kvm_vcpu *vcpu); 30void kvm_riscv_vcpu_guest_vector_save(struct kvm_cpu_context *cntx, 31 unsigned long *isa); 32void kvm_riscv_vcpu_guest_vector_restore(struct kvm_cpu_context *cntx, 33 unsigned long *isa); 34void kvm_riscv_vcpu_host_vector_save(struct kvm_cpu_context *cntx); 35void kvm_riscv_vcpu_host_vector_restore(struct kvm_cpu_context *cntx); 36int kvm_riscv_vcpu_alloc_vector_context(struct kvm_vcpu *vcpu); 37void kvm_riscv_vcpu_free_vector_context(struct kvm_vcpu *vcpu); 38#else 39 40struct kvm_cpu_context; 41 42static inline void kvm_riscv_vcpu_vector_reset(struct kvm_vcpu *vcpu) 43{ 44} 45 46static inline void kvm_riscv_vcpu_guest_vector_save(struct kvm_cpu_context *cntx, 47 unsigned long *isa) 48{ 49} 50 51static inline void kvm_riscv_vcpu_guest_vector_restore(struct kvm_cpu_context *cntx, 52 unsigned long *isa) 53{ 54} 55 56static inline void kvm_riscv_vcpu_host_vector_save(struct kvm_cpu_context *cntx) 57{ 58} 59 60static inline void kvm_riscv_vcpu_host_vector_restore(struct kvm_cpu_context *cntx) 61{ 62} 63 64static inline int kvm_riscv_vcpu_alloc_vector_context(struct kvm_vcpu *vcpu) 65{ 66 return 0; 67} 68 69static inline void kvm_riscv_vcpu_free_vector_context(struct kvm_vcpu *vcpu) 70{ 71} 72#endif 73 74int kvm_riscv_vcpu_get_reg_vector(struct kvm_vcpu *vcpu, 75 const struct kvm_one_reg *reg); 76int kvm_riscv_vcpu_set_reg_vector(struct kvm_vcpu *vcpu, 77 const struct kvm_one_reg *reg); 78#endif
~/
Read-only file preview.