1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_X86_COCO_H
3#define _ASM_X86_COCO_H
4
5#include <asm/asm.h>
6#include <asm/types.h>
7
8enum cc_vendor {
9	CC_VENDOR_NONE,
10	CC_VENDOR_AMD,
11	CC_VENDOR_INTEL,
12};
13
14#ifdef CONFIG_ARCH_HAS_CC_PLATFORM
15extern enum cc_vendor cc_vendor;
16extern u64 cc_mask;
17
18static inline void cc_set_mask(u64 mask)
19{
20	RIP_REL_REF(cc_mask) = mask;
21}
22
23u64 cc_mkenc(u64 val);
24u64 cc_mkdec(u64 val);
25void cc_random_init(void);
26#else
27#define cc_vendor (CC_VENDOR_NONE)
28
29static inline u64 cc_mkenc(u64 val)
30{
31	return val;
32}
33
34static inline u64 cc_mkdec(u64 val)
35{
36	return val;
37}
38static inline void cc_random_init(void) { }
39#endif
40
41#endif /* _ASM_X86_COCO_H */
42