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