1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright(c) 2016-20 Intel Corporation. 4 */ 5 6#ifndef MAIN_H 7#define MAIN_H 8 9struct encl_segment { 10 off_t offset; 11 size_t size; 12 unsigned int prot; 13 unsigned int flags; 14}; 15 16struct encl { 17 int fd; 18 void *bin; 19 off_t bin_size; 20 void *src; 21 size_t src_size; 22 size_t encl_size; 23 off_t encl_base; 24 unsigned int nr_segments; 25 struct encl_segment *segment_tbl; 26 struct sgx_secs secs; 27 struct sgx_sigstruct sigstruct; 28}; 29 30extern unsigned char sign_key[]; 31extern unsigned char sign_key_end[]; 32 33void encl_delete(struct encl *ctx); 34bool encl_load(const char *path, struct encl *encl); 35bool encl_measure(struct encl *encl); 36bool encl_build(struct encl *encl); 37 38int sgx_enter_enclave(void *rdi, void *rsi, long rdx, u32 function, void *r8, void *r9, 39 struct sgx_enclave_run *run); 40 41#endif /* MAIN_H */ 42