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); 25b577f542SKirill A. Shutemov #else 26b577f542SKirill A. Shutemov static inline u64 cc_mkenc(u64 val) 27b577f542SKirill A. Shutemov { 28b577f542SKirill A. Shutemov return val; 29b577f542SKirill A. Shutemov } 30b577f542SKirill A. Shutemov 31b577f542SKirill A. Shutemov static inline u64 cc_mkdec(u64 val) 32b577f542SKirill A. Shutemov { 33b577f542SKirill A. Shutemov return val; 34b577f542SKirill A. Shutemov } 35b577f542SKirill A. Shutemov #endif 36655a0fa3SKirill A. Shutemov 37655a0fa3SKirill A. Shutemov #endif /* _ASM_X86_COCO_H */ 38