enclave { from "sgx_tstdc.edl" import *; from "sgx_stdio.edl" import *; from "sgx_backtrace.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, [out] TVMValue* ret_val, [out] int* ret_type_code); }; 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_register_export([in, string] const char* name, int func_id); }; };