xref: /linux/arch/riscv/include/asm/kvm_vcpu_sbi_fwft.h (revision 68a052239fc4b351e961f698b824f7654a346091)
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