xref: /openbmc/linux/arch/x86/include/asm/coco.h (revision 453b5f2d)
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);
25*453b5f2dSJason A. Donenfeld void cc_random_init(void);
26b577f542SKirill A. Shutemov #else
27b577f542SKirill A. Shutemov static inline u64 cc_mkenc(u64 val)
28b577f542SKirill A. Shutemov {
29b577f542SKirill A. Shutemov 	return val;
30b577f542SKirill A. Shutemov }
31b577f542SKirill A. Shutemov 
32b577f542SKirill A. Shutemov static inline u64 cc_mkdec(u64 val)
33b577f542SKirill A. Shutemov {
34b577f542SKirill A. Shutemov 	return val;
35b577f542SKirill A. Shutemov }
36*453b5f2dSJason A. Donenfeld static inline void cc_random_init(void) { }
37b577f542SKirill A. Shutemov #endif
38655a0fa3SKirill A. Shutemov 
39655a0fa3SKirill A. Shutemov #endif /* _ASM_X86_COCO_H */
40