/* SPDX-License-Identifier: GPL-2.0-only */ /* * Confidential Computing Platform Capability checks * * Copyright (C) 2021 Advanced Micro Devices, Inc. * * Author: Tom Lendacky <[email protected]> */ #ifndef _LINUX_CC_PLATFORM_H #define _LINUX_CC_PLATFORM_H #include <linux/types.h> #include <linux/stddef.h> /** * enum cc_attr - Confidential computing attributes * * These attributes represent confidential computing features that are * currently active. */ enum cc_attr { … }; #ifdef CONFIG_ARCH_HAS_CC_PLATFORM /** * cc_platform_has() - Checks if the specified cc_attr attribute is active * @attr: Confidential computing attribute to check * * The cc_platform_has() function will return an indicator as to whether the * specified Confidential Computing attribute is currently active. * * Context: Any context * Return: * * TRUE - Specified Confidential Computing attribute is active * * FALSE - Specified Confidential Computing attribute is not active */ bool cc_platform_has(enum cc_attr attr); void cc_platform_set(enum cc_attr attr); void cc_platform_clear(enum cc_attr attr); #else /* !CONFIG_ARCH_HAS_CC_PLATFORM */ static inline bool cc_platform_has(enum cc_attr attr) { return false; } static inline void cc_platform_set(enum cc_attr attr) { } static inline void cc_platform_clear(enum cc_attr attr) { } #endif /* CONFIG_ARCH_HAS_CC_PLATFORM */ #endif /* _LINUX_CC_PLATFORM_H */