1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (c) 2025 Rivos Inc. 4 * 5 * Authors: 6 * Clément Léger <cleger@rivosinc.com> 7 */ 8 9 #ifndef __KVM_VCPU_RISCV_FWFT_H 10 #define __KVM_VCPU_RISCV_FWFT_H 11 12 #include <asm/sbi.h> 13 14 struct kvm_sbi_fwft_feature; 15 16 struct kvm_sbi_fwft_config { 17 const struct kvm_sbi_fwft_feature *feature; 18 bool supported; 19 bool enabled; 20 unsigned long flags; 21 }; 22 23 /* FWFT data structure per vcpu */ 24 struct kvm_sbi_fwft { 25 struct kvm_sbi_fwft_config *configs; 26 #ifndef CONFIG_32BIT 27 bool have_vs_pmlen_7; 28 bool have_vs_pmlen_16; 29 #endif 30 }; 31 32 #define vcpu_to_fwft(vcpu) (&(vcpu)->arch.fwft_context) 33 34 #endif /* !__KVM_VCPU_RISCV_FWFT_H */ 35