xref: /openbmc/linux/arch/x86/include/asm/coco.h (revision 3d91c537)
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 
5b577f542SKirill A. Shutemov #include <asm/types.h>
6b577f542SKirill A. Shutemov 
7655a0fa3SKirill A. Shutemov enum cc_vendor {
8655a0fa3SKirill A. Shutemov 	CC_VENDOR_NONE,
9655a0fa3SKirill A. Shutemov 	CC_VENDOR_AMD,
10655a0fa3SKirill A. Shutemov 	CC_VENDOR_HYPERV,
11655a0fa3SKirill A. Shutemov 	CC_VENDOR_INTEL,
12655a0fa3SKirill A. Shutemov };
13655a0fa3SKirill A. Shutemov 
14b577f542SKirill A. Shutemov #ifdef CONFIG_ARCH_HAS_CC_PLATFORM
15*3d91c537SBorislav Petkov (AMD) extern enum cc_vendor cc_vendor;
16*3d91c537SBorislav Petkov (AMD) 
17*3d91c537SBorislav Petkov (AMD) static inline enum cc_vendor cc_get_vendor(void)
18*3d91c537SBorislav Petkov (AMD) {
19*3d91c537SBorislav Petkov (AMD) 	return cc_vendor;
20*3d91c537SBorislav Petkov (AMD) }
21*3d91c537SBorislav Petkov (AMD) 
22*3d91c537SBorislav Petkov (AMD) static inline void cc_set_vendor(enum cc_vendor vendor)
23*3d91c537SBorislav Petkov (AMD) {
24*3d91c537SBorislav Petkov (AMD) 	cc_vendor = vendor;
25*3d91c537SBorislav Petkov (AMD) }
26*3d91c537SBorislav Petkov (AMD) 
27*3d91c537SBorislav Petkov (AMD) void cc_set_mask(u64 mask);
28b577f542SKirill A. Shutemov u64 cc_mkenc(u64 val);
29b577f542SKirill A. Shutemov u64 cc_mkdec(u64 val);
30b577f542SKirill A. Shutemov #else
31*3d91c537SBorislav Petkov (AMD) static inline enum cc_vendor cc_get_vendor(void)
32*3d91c537SBorislav Petkov (AMD) {
33*3d91c537SBorislav Petkov (AMD) 	return CC_VENDOR_NONE;
34*3d91c537SBorislav Petkov (AMD) }
35*3d91c537SBorislav Petkov (AMD) 
36*3d91c537SBorislav Petkov (AMD) static inline void cc_set_vendor(enum cc_vendor vendor) { }
37*3d91c537SBorislav Petkov (AMD) 
38b577f542SKirill A. Shutemov static inline u64 cc_mkenc(u64 val)
39b577f542SKirill A. Shutemov {
40b577f542SKirill A. Shutemov 	return val;
41b577f542SKirill A. Shutemov }
42b577f542SKirill A. Shutemov 
43b577f542SKirill A. Shutemov static inline u64 cc_mkdec(u64 val)
44b577f542SKirill A. Shutemov {
45b577f542SKirill A. Shutemov 	return val;
46b577f542SKirill A. Shutemov }
47b577f542SKirill A. Shutemov #endif
48655a0fa3SKirill A. Shutemov 
49655a0fa3SKirill A. Shutemov #endif /* _ASM_X86_COCO_H */
50