82 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Copyright(c) 2016-20 Intel Corporation.4 */5 6#ifndef DEFINES_H7#define DEFINES_H8 9#include <stdint.h>10 11#define PAGE_SIZE 409612#define PAGE_MASK (~(PAGE_SIZE - 1))13 14#define __aligned(x) __attribute__((__aligned__(x)))15#define __packed __attribute__((packed))16#define __used __attribute__((used))17#define __section(x)__attribute__((__section__(x)))18 19#include "../../../../arch/x86/include/asm/sgx.h"20#include "../../../../arch/x86/include/asm/enclu.h"21#include "../../../../arch/x86/include/uapi/asm/sgx.h"22 23enum encl_op_type {24 ENCL_OP_PUT_TO_BUFFER,25 ENCL_OP_GET_FROM_BUFFER,26 ENCL_OP_PUT_TO_ADDRESS,27 ENCL_OP_GET_FROM_ADDRESS,28 ENCL_OP_NOP,29 ENCL_OP_EACCEPT,30 ENCL_OP_EMODPE,31 ENCL_OP_INIT_TCS_PAGE,32 ENCL_OP_MAX,33};34 35struct encl_op_header {36 uint64_t type;37};38 39struct encl_op_put_to_buf {40 struct encl_op_header header;41 uint64_t value;42};43 44struct encl_op_get_from_buf {45 struct encl_op_header header;46 uint64_t value;47};48 49struct encl_op_put_to_addr {50 struct encl_op_header header;51 uint64_t value;52 uint64_t addr;53};54 55struct encl_op_get_from_addr {56 struct encl_op_header header;57 uint64_t value;58 uint64_t addr;59};60 61struct encl_op_eaccept {62 struct encl_op_header header;63 uint64_t epc_addr;64 uint64_t flags;65 uint64_t ret;66};67 68struct encl_op_emodpe {69 struct encl_op_header header;70 uint64_t epc_addr;71 uint64_t flags;72};73 74struct encl_op_init_tcs_page {75 struct encl_op_header header;76 uint64_t tcs_page;77 uint64_t ssa;78 uint64_t entry;79};80 81#endif /* DEFINES_H */82