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 5*b577f542SKirill A. Shutemov #include <asm/types.h> 6*b577f542SKirill 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 14655a0fa3SKirill A. Shutemov void cc_set_vendor(enum cc_vendor v); 15*b577f542SKirill A. Shutemov void cc_set_mask(u64 mask); 16*b577f542SKirill A. Shutemov 17*b577f542SKirill A. Shutemov #ifdef CONFIG_ARCH_HAS_CC_PLATFORM 18*b577f542SKirill A. Shutemov u64 cc_mkenc(u64 val); 19*b577f542SKirill A. Shutemov u64 cc_mkdec(u64 val); 20*b577f542SKirill A. Shutemov #else 21*b577f542SKirill A. Shutemov static inline u64 cc_mkenc(u64 val) 22*b577f542SKirill A. Shutemov { 23*b577f542SKirill A. Shutemov return val; 24*b577f542SKirill A. Shutemov } 25*b577f542SKirill A. Shutemov 26*b577f542SKirill A. Shutemov static inline u64 cc_mkdec(u64 val) 27*b577f542SKirill A. Shutemov { 28*b577f542SKirill A. Shutemov return val; 29*b577f542SKirill A. Shutemov } 30*b577f542SKirill A. Shutemov #endif 31655a0fa3SKirill A. Shutemov 32655a0fa3SKirill A. Shutemov #endif /* _ASM_X86_COCO_H */ 33