16b72fd17SClément Léger /* SPDX-License-Identifier: GPL-2.0-only */ 26b72fd17SClément Léger /* 36b72fd17SClément Léger * Copyright (c) 2025 Rivos Inc. 46b72fd17SClément Léger * 56b72fd17SClément Léger * Authors: 66b72fd17SClément Léger * Clément Léger <cleger@rivosinc.com> 76b72fd17SClément Léger */ 86b72fd17SClément Léger 96b72fd17SClément Léger #ifndef __KVM_VCPU_RISCV_FWFT_H 106b72fd17SClément Léger #define __KVM_VCPU_RISCV_FWFT_H 116b72fd17SClément Léger 126b72fd17SClément Léger #include <asm/sbi.h> 136b72fd17SClément Léger 146b72fd17SClément Léger struct kvm_sbi_fwft_feature; 156b72fd17SClément Léger 166b72fd17SClément Léger struct kvm_sbi_fwft_config { 176b72fd17SClément Léger const struct kvm_sbi_fwft_feature *feature; 186b72fd17SClément Léger bool supported; 19*48d67106SAnup Patel bool enabled; 206b72fd17SClément Léger unsigned long flags; 216b72fd17SClément Léger }; 226b72fd17SClément Léger 236b72fd17SClément Léger /* FWFT data structure per vcpu */ 246b72fd17SClément Léger struct kvm_sbi_fwft { 256b72fd17SClément Léger struct kvm_sbi_fwft_config *configs; 266f576fc0SSamuel Holland #ifndef CONFIG_32BIT 276f576fc0SSamuel Holland bool have_vs_pmlen_7; 286f576fc0SSamuel Holland bool have_vs_pmlen_16; 296f576fc0SSamuel Holland #endif 306b72fd17SClément Léger }; 316b72fd17SClément Léger 326b72fd17SClément Léger #define vcpu_to_fwft(vcpu) (&(vcpu)->arch.fwft_context) 336b72fd17SClément Léger 346b72fd17SClément Léger #endif /* !__KVM_VCPU_RISCV_FWFT_H */ 35