47 lines
993 B
C
47 lines
993 B
C
|
/* 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 */
|