12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #ifndef TRTS_INTERNAL_H
- #define TRTS_INTERNAL_H
- #include "util.h"
- #ifdef SE_64
- #define STATIC_STACK_SIZE 8*100
- #else
- #define STATIC_STACK_SIZE 4*100
- #endif
- #define TD2TCS(td) ((const void *)(((thread_data_t*)(td))->stack_base_addr + (size_t)STATIC_STACK_SIZE + (size_t)SE_GUARD_PAGE_SIZE))
- typedef struct {
- const void *ecall_addr;
- uint8_t is_priv;
- } ecall_addr_t;
- typedef struct {
- size_t nr_ecall;
- ecall_addr_t ecall_table[1];
- } ecall_table_t;
- typedef struct {
- size_t nr_ocall;
- uint8_t entry_table[1];
- } entry_table_t;
- #ifdef __cplusplus
- extern "C" {
- #endif
- extern ecall_table_t g_ecall_table;
- extern entry_table_t g_dyn_entry_table;
- int lock_enclave();
- void *get_enclave_base();
- int get_enclave_state();
- void set_enclave_state(int state);
- sgx_status_t do_init_enclave(void *ms);
- sgx_status_t do_ecall(int index, void *ms, void *tcs);
- sgx_status_t do_oret(void *ms);
- sgx_status_t trts_handle_exception(void *tcs);
- #ifdef __cplusplus
- }
- #endif
- #endif
|