12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * Copyright(c) 2016-20 Intel Corporation.
- */
- #ifndef MAIN_H
- #define MAIN_H
- #define ENCL_HEAP_SIZE_DEFAULT 4096
- struct encl_segment {
- void *src;
- off_t offset;
- size_t size;
- unsigned int prot;
- unsigned int flags;
- bool measure;
- };
- struct encl {
- int fd;
- void *bin;
- off_t bin_size;
- void *src;
- size_t src_size;
- size_t encl_size;
- off_t encl_base;
- unsigned int nr_segments;
- struct encl_segment *segment_tbl;
- struct sgx_secs secs;
- struct sgx_sigstruct sigstruct;
- };
- extern unsigned char sign_key[];
- extern unsigned char sign_key_end[];
- void encl_delete(struct encl *ctx);
- bool encl_load(const char *path, struct encl *encl, unsigned long heap_size);
- bool encl_measure(struct encl *encl);
- bool encl_build(struct encl *encl);
- uint64_t encl_get_entry(struct encl *encl, const char *symbol);
- int sgx_enter_enclave(void *rdi, void *rsi, long rdx, u32 function, void *r8, void *r9,
- struct sgx_enclave_run *run);
- #endif /* MAIN_H */
|