enclave { from "sgx_tstdc.edl" import *; trusted { public void tvm_ecall_init([isptr, user_check] TVMRetValueHandle ret); public void tvm_ecall_packed_func(int func_id, [in, count=num_args] const TVMValue* arg_values, [in, count=num_args] const int* type_codes, int num_args, [isptr, user_check] TVMRetValueHandle ret); }; untrusted { void tvm_ocall_packed_func([in, string] const char* name, [in, count=num_args] const TVMValue* arg_values, [in, count=num_args] const int* type_codes, int num_args, [out] TVMValue* ret_val, [out] int* ret_type_code); void tvm_ocall_set_return([isptr, user_check] TVMRetValueHandle ret, [in, count=num_ret] const TVMValue* value, [in, count=num_ret] const int* type_code, int num_ret); void tvm_ocall_register_export([in, string] const char* name, int func_id); void* tvm_ocall_reserve_space(size_t num_bytes, size_t alignment); }; };