| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* | |
| * Copyright(c) 2016-20 Intel Corporation. | |
| */ | |
| #ifndef DEFINES_H | |
| #define DEFINES_H | |
| #include <stdint.h> | |
| #define PAGE_SIZE 4096 | |
| #define PAGE_MASK (~(PAGE_SIZE - 1)) | |
| #define __aligned(x) __attribute__((__aligned__(x))) | |
| #define __packed __attribute__((packed)) | |
| #define __used __attribute__((used)) | |
| #define __section(x)__attribute__((__section__(x))) | |
| #include "../../../../arch/x86/include/asm/sgx.h" | |
| #include "../../../../arch/x86/include/asm/enclu.h" | |
| #include "../../../../arch/x86/include/uapi/asm/sgx.h" | |
| enum encl_op_type { | |
| ENCL_OP_PUT_TO_BUFFER, | |
| ENCL_OP_GET_FROM_BUFFER, | |
| ENCL_OP_PUT_TO_ADDRESS, | |
| ENCL_OP_GET_FROM_ADDRESS, | |
| ENCL_OP_NOP, | |
| ENCL_OP_EACCEPT, | |
| ENCL_OP_EMODPE, | |
| ENCL_OP_INIT_TCS_PAGE, | |
| ENCL_OP_MAX, | |
| }; | |
| struct encl_op_header { | |
| uint64_t type; | |
| }; | |
| struct encl_op_put_to_buf { | |
| struct encl_op_header header; | |
| uint64_t value; | |
| }; | |
| struct encl_op_get_from_buf { | |
| struct encl_op_header header; | |
| uint64_t value; | |
| }; | |
| struct encl_op_put_to_addr { | |
| struct encl_op_header header; | |
| uint64_t value; | |
| uint64_t addr; | |
| }; | |
| struct encl_op_get_from_addr { | |
| struct encl_op_header header; | |
| uint64_t value; | |
| uint64_t addr; | |
| }; | |
| struct encl_op_eaccept { | |
| struct encl_op_header header; | |
| uint64_t epc_addr; | |
| uint64_t flags; | |
| uint64_t ret; | |
| }; | |
| struct encl_op_emodpe { | |
| struct encl_op_header header; | |
| uint64_t epc_addr; | |
| uint64_t flags; | |
| }; | |
| struct encl_op_init_tcs_page { | |
| struct encl_op_header header; | |
| uint64_t tcs_page; | |
| uint64_t ssa; | |
| uint64_t entry; | |
| }; | |
| #endif /* DEFINES_H */ |