未验证 提交 1da86f11 编写于 作者: H haosanzi 提交者: GitHub

rune/libenclave/skeleton: Rebase implementation

Leave v1 implementation in a separate file.
Signed-off-by: NShirong Hao <shirong@linux.alibaba.com>
上级 97699bdc
......@@ -12,7 +12,7 @@ HOST_LDFLAGS := -fPIC -shared -Wl,-Bsymbolic
IS_OOT_DRIVER := $(shell [ ! -e /dev/isgx ])
IS_SGX_FLC := $(shell lscpu | grep -q sgx_lc)
TEST_CUSTOM_PROGS := $(OUTPUT)/encl.bin $(OUTPUT)/encl.ss $(OUTPUT)/liberpal-skeleton.so $(OUTPUT)/signing_key.pem
TEST_CUSTOM_PROGS := $(OUTPUT)/encl.bin $(OUTPUT)/encl.ss $(OUTPUT)/liberpal-skeleton-v1.so $(OUTPUT)/signing_key.pem
ifeq ($(IS_OOT_DRIVER),1)
TEST_CUSTOM_PROGS += $(OUTPUT)/encl.token
......@@ -22,9 +22,12 @@ endif
all: $(TEST_CUSTOM_PROGS)
$(OUTPUT)/liberpal-skeleton.so: $(OUTPUT)/sgx_call.o $(OUTPUT)/liberpal-skeleton.o
$(OUTPUT)/liberpal-skeleton-v1.so: $(OUTPUT)/sgx_call.o $(OUTPUT)/liberpal-skeleton-v1.o $(OUTPUT)/liberpal-skeleton.o
$(CC) $(HOST_LDFLAGS) -o $@ $^
$(OUTPUT)/liberpal-skeleton-v1.o: liberpal-skeleton-v1.c liberpal-skeleton.c
$(CC) $(HOST_CFLAGS) -c $< -o $@
$(OUTPUT)/liberpal-skeleton.o: liberpal-skeleton.c
$(CC) $(HOST_CFLAGS) -c $< -o $@
......@@ -55,8 +58,8 @@ EXTRA_CLEAN := \
$(OUTPUT)/encl.ss \
$(OUTPUT)/sgx_call.o \
$(OUTPUT)/sgxsign \
$(OUTPUT)/liberpal-skeleton.o \
$(OUTPUT)/liberpal-skeleton.so \
$(OUTPUT)/liberpal-skeleton*.o \
$(OUTPUT)/liberpal-skeleton*.so \
$(OUTPUT)/signing_key.pem \
$(OUTPUT)/encl.token
......
#include "liberpal-skeleton.h"
int pal_get_version(void)
{
return 1;
}
int pal_init(pal_attr_t *attr)
{
return __pal_init(attr);
}
int pal_exec(char *path, char *argv[], pal_stdio_fds *stdio, int *exit_code)
{
return __pal_exec(path, argv, stdio, exit_code);
}
int pal_destroy(void)
{
return __pal_destory();
}
......@@ -22,6 +22,7 @@
#include <sys/wait.h>
#include "defines.h"
#include "sgx_call.h"
#include "liberpal-skeleton.h"
#define PAGE_SIZE 4096
......@@ -400,17 +401,7 @@ static void parse_args(const char *args)
free(a);
}
int pal_get_version(void)
{
return 1;
}
typedef struct {
const char *args;
const char *log_level;
} pal_attr_t;
int pal_init(pal_attr_t *attr)
int __pal_init(pal_attr_t *attr)
{
struct sgx_sigstruct sigstruct;
struct sgx_einittoken token;
......@@ -444,12 +435,7 @@ int pal_init(pal_attr_t *attr)
return 0;
}
typedef struct {
int stdin, stdout, stderr;
} pal_stdio_fds;
int pal_exec(char *path, char *argv[], pal_stdio_fds *stdio,
int *exit_code)
int __pal_exec(char *path, char *argv[], pal_stdio_fds *stdio, int *exit_code)
{
FILE *fp = fdopen(stdio->stderr, "w");
if (!fp)
......@@ -504,7 +490,7 @@ int pal_exec(char *path, char *argv[], pal_stdio_fds *stdio,
return 0;
}
int pal_destroy(void)
int __pal_destory(void)
{
if (!initialized) {
fprintf(stderr, "Enclave runtime skeleton uninitialized yet!\n");
......
#ifndef LIBERPAL_SKELETON_H
#define LIBERPAL_SKELETON_H
typedef struct {
const char *args;
const char *log_level;
} pal_attr_t;
typedef struct {
int stdin, stdout, stderr;
} pal_stdio_fds;
int __pal_init(pal_attr_t *attr);
int __pal_exec(char *path, char *argv[], pal_stdio_fds *stdio, int *exit_code);
int __pal_destory(void);
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册