@@ -11,6 +11,21 @@
#include <linux/types.h>
#include <uapi/asm/sgx_errno.h>
+#define SGX_CPUID 0x12
+#define SGX_CPUID_FIRST_VARIABLE_SUB_LEAF 2
+
+/**
+ * enum sgx_sub_leaf_types - SGX CPUID variable sub-leaf types
+ * %SGX_CPUID_SUB_LEAF_INVALID: Indicates this sub-leaf is invalid.
+ * %SGX_CPUID_SUB_LEAF_EPC_SECTION: Sub-leaf enumerates an EPC section.
+ * %SGX_CPUID_SUB_LEAF_TYPE_MASK: Mask for bits containing the type.
+ */
+enum sgx_sub_leaf_types {
+ SGX_CPUID_SUB_LEAF_INVALID = 0x0,
+ SGX_CPUID_SUB_LEAF_EPC_SECTION = 0x1,
+ SGX_CPUID_SUB_LEAF_TYPE_MASK = GENMASK(3, 0),
+};
+
/**
* enum sgx_encls_leaves - ENCLS leaf functions
* %SGX_ECREATE: Create an enclave.