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