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; 153d91c537SBorislav Petkov (AMD) 16da86eb96SBorislav Petkov (AMD) #ifdef CONFIG_ARCH_HAS_CC_PLATFORM 1725c5f2e0SKirill A. Shutemov extern u64 cc_mask; 1825c5f2e0SKirill A. Shutemov cc_set_mask(u64 mask)190982fd6bSArd Biesheuvelstatic inline void cc_set_mask(u64 mask) 200982fd6bSArd Biesheuvel { 210982fd6bSArd Biesheuvel RIP_REL_REF(cc_mask) = mask; 220982fd6bSArd Biesheuvel } 230982fd6bSArd Biesheuvel 24b577f542SKirill A. Shutemov u64 cc_mkenc(u64 val); 25b577f542SKirill A. Shutemov u64 cc_mkdec(u64 val); 26453b5f2dSJason A. Donenfeld void cc_random_init(void); 27b577f542SKirill A. Shutemov #else 2825c5f2e0SKirill A. Shutemov static const u64 cc_mask = 0; 2925c5f2e0SKirill A. Shutemov cc_mkenc(u64 val)30b577f542SKirill A. Shutemovstatic inline u64 cc_mkenc(u64 val) 31b577f542SKirill A. Shutemov { 32b577f542SKirill A. Shutemov return val; 33b577f542SKirill A. Shutemov } 34b577f542SKirill A. Shutemov cc_mkdec(u64 val)35b577f542SKirill A. Shutemovstatic inline u64 cc_mkdec(u64 val) 36b577f542SKirill A. Shutemov { 37b577f542SKirill A. Shutemov return val; 38b577f542SKirill A. Shutemov } cc_random_init(void)39453b5f2dSJason A. Donenfeldstatic inline void cc_random_init(void) { } 40b577f542SKirill A. Shutemov #endif 41655a0fa3SKirill A. Shutemov 42655a0fa3SKirill A. Shutemov #endif /* _ASM_X86_COCO_H */ 43