Add error codes for ENCLS[EUPDATESVN], then SGX CPUSVN update
process can know the execution state of EUPDATESVN and notify
userspace.

Signed-off-by: Elena Reshetova <elena.reshet...@intel.com>
---
 arch/x86/include/asm/sgx.h | 37 ++++++++++++++++++++++---------------
 1 file changed, 22 insertions(+), 15 deletions(-)

diff --git a/arch/x86/include/asm/sgx.h b/arch/x86/include/asm/sgx.h
index 6a0069761508..1abf1461fab6 100644
--- a/arch/x86/include/asm/sgx.h
+++ b/arch/x86/include/asm/sgx.h
@@ -28,21 +28,22 @@
 #define SGX_CPUID_EPC_MASK     GENMASK(3, 0)
 
 enum sgx_encls_function {
-       ECREATE = 0x00,
-       EADD    = 0x01,
-       EINIT   = 0x02,
-       EREMOVE = 0x03,
-       EDGBRD  = 0x04,
-       EDGBWR  = 0x05,
-       EEXTEND = 0x06,
-       ELDU    = 0x08,
-       EBLOCK  = 0x09,
-       EPA     = 0x0A,
-       EWB     = 0x0B,
-       ETRACK  = 0x0C,
-       EAUG    = 0x0D,
-       EMODPR  = 0x0E,
-       EMODT   = 0x0F,
+       ECREATE         = 0x00,
+       EADD            = 0x01,
+       EINIT           = 0x02,
+       EREMOVE         = 0x03,
+       EDGBRD          = 0x04,
+       EDGBWR          = 0x05,
+       EEXTEND         = 0x06,
+       ELDU            = 0x08,
+       EBLOCK          = 0x09,
+       EPA             = 0x0A,
+       EWB             = 0x0B,
+       ETRACK          = 0x0C,
+       EAUG            = 0x0D,
+       EMODPR          = 0x0E,
+       EMODT           = 0x0F,
+       EUPDATESVN      = 0x18,
 };
 
 /**
@@ -73,6 +74,10 @@ enum sgx_encls_function {
  *                             public key does not match IA32_SGXLEPUBKEYHASH.
  * %SGX_PAGE_NOT_MODIFIABLE:   The EPC page cannot be modified because it
  *                             is in the PENDING or MODIFIED state.
+ * %SGX_INSUFFICIENT_ENTROPY:  Insufficient entropy in RNG.
+ * %SGX_NO_UPDATE:             EUPDATESVN was successful, but CPUSVN was not
+ *                             updated because current SVN was not newer than
+ *                             CPUSVN.
  * %SGX_UNMASKED_EVENT:                An unmasked event, e.g. INTR, was 
received
  */
 enum sgx_return_code {
@@ -81,6 +86,8 @@ enum sgx_return_code {
        SGX_CHILD_PRESENT               = 13,
        SGX_INVALID_EINITTOKEN          = 16,
        SGX_PAGE_NOT_MODIFIABLE         = 20,
+       SGX_INSUFFICIENT_ENTROPY        = 29,
+       SGX_NO_UPDATE                           = 31,
        SGX_UNMASKED_EVENT              = 128,
 };
 
-- 
2.45.2


Reply via email to