xref: /openbmc/linux/arch/x86/include/asm/coco.h (revision 0982fd6b)
1655a0fa3SKirill A. Shutemov /* SPDX-License-Identifier: GPL-2.0 */
2655a0fa3SKirill A. Shutemov #ifndef _ASM_X86_COCO_H
3655a0fa3SKirill A. Shutemov #define _ASM_X86_COCO_H
4655a0fa3SKirill A. Shutemov 
50982fd6bSArd Biesheuvel #include <asm/asm.h>
6b577f542SKirill A. Shutemov #include <asm/types.h>
7b577f542SKirill A. Shutemov 
8655a0fa3SKirill A. Shutemov enum cc_vendor {
9655a0fa3SKirill A. Shutemov 	CC_VENDOR_NONE,
10655a0fa3SKirill A. Shutemov 	CC_VENDOR_AMD,
11655a0fa3SKirill A. Shutemov 	CC_VENDOR_INTEL,
12655a0fa3SKirill A. Shutemov };
13655a0fa3SKirill A. Shutemov 
143d91c537SBorislav Petkov (AMD) extern enum cc_vendor cc_vendor;
150982fd6bSArd Biesheuvel extern u64 cc_mask;
163d91c537SBorislav Petkov (AMD) 
17da86eb96SBorislav Petkov (AMD) #ifdef CONFIG_ARCH_HAS_CC_PLATFORM
180982fd6bSArd Biesheuvel static inline void cc_set_mask(u64 mask)
190982fd6bSArd Biesheuvel {
200982fd6bSArd Biesheuvel 	RIP_REL_REF(cc_mask) = mask;
210982fd6bSArd Biesheuvel }
220982fd6bSArd Biesheuvel 
23b577f542SKirill A. Shutemov u64 cc_mkenc(u64 val);
24b577f542SKirill A. Shutemov u64 cc_mkdec(u64 val);
25b577f542SKirill A. Shutemov #else
26b577f542SKirill A. Shutemov static inline u64 cc_mkenc(u64 val)
27b577f542SKirill A. Shutemov {
28b577f542SKirill A. Shutemov 	return val;
29b577f542SKirill A. Shutemov }
30b577f542SKirill A. Shutemov 
31b577f542SKirill A. Shutemov static inline u64 cc_mkdec(u64 val)
32b577f542SKirill A. Shutemov {
33b577f542SKirill A. Shutemov 	return val;
34b577f542SKirill A. Shutemov }
35b577f542SKirill A. Shutemov #endif
36655a0fa3SKirill A. Shutemov 
37655a0fa3SKirill A. Shutemov #endif /* _ASM_X86_COCO_H */
38