  
      // Only true or false is valid
      if (TRUE != debug &&  FALSE != debug)
-@@ -205,3 +235,19 @@
+@@ -205,3 +238,19 @@
          launch_token_updated, enclave_id, misc_attr, ex_features, ex_features_p);
  }
  

 extern "C" sgx_status_t __sgx_create_enclave_ex(const char *file_name, 
                                                 const int debug, 
                                                 sgx_launch_token_t *launch_token, 
@@ -74,7 +98,10 @@
                                                 const uint32_t ex_features,
                                                 const void* ex_features_p[32])
 {

     
     uint32_t i;
 
@@ -65,6 +68,30 @@
     return ((ex_features | _SGX_EX_FEATURES_MASK_) == _SGX_EX_FEATURES_MASK_);
 }
 
+static sgx_status_t place_enclave(const uint32_t ex_features, const void* ex_features_p[32])
+{
+    asylo_sgx_config_t *asylo_config = nullptr;
+    int has_feature = get_ex_feature_pointer(SGX_CREATE_ENCLAVE_EX_ASYLO, ex_features,
+                                ex_features_p, (void**)&asylo_config);
+    if (has_feature == -1) {
+      return SGX_ERROR_INVALID_PARAMETER;
+    } else if (has_feature == 0) {
+      return SGX_SUCCESS;
+    }
+    // Reserve the memory to load the enclave if the address to load the enclave
+    // is specified.
