1266077Sdes/* SPDX-License-Identifier: GPL-2.0 */ 2266077Sdes/* 3266077Sdes * Copyright(c) 2016-20 Intel Corporation. 4266077Sdes */ 5266077Sdes 6266077Sdes#ifndef DEFINES_H 7266077Sdes#define DEFINES_H 8266077Sdes 9266077Sdes#include <stdint.h> 10266077Sdes 11266077Sdes#define PAGE_SIZE 4096 12266077Sdes#define PAGE_MASK (~(PAGE_SIZE - 1)) 13266077Sdes 14266077Sdes#define __aligned(x) __attribute__((__aligned__(x))) 15266077Sdes#define __packed __attribute__((packed)) 16266077Sdes#define __used __attribute__((used)) 17266077Sdes#define __section(x)__attribute__((__section__(x))) 18266077Sdes 19266077Sdes#include "../../../../arch/x86/include/asm/sgx.h" 20266077Sdes#include "../../../../arch/x86/include/asm/enclu.h" 21266077Sdes#include "../../../../arch/x86/include/uapi/asm/sgx.h" 22266077Sdes 23266077Sdesenum encl_op_type { 24266077Sdes ENCL_OP_PUT_TO_BUFFER, 25266077Sdes ENCL_OP_GET_FROM_BUFFER, 26266077Sdes ENCL_OP_PUT_TO_ADDRESS, 27266077Sdes ENCL_OP_GET_FROM_ADDRESS, 28266077Sdes ENCL_OP_NOP, 29266077Sdes ENCL_OP_EACCEPT, 30266077Sdes ENCL_OP_EMODPE, 31266077Sdes ENCL_OP_INIT_TCS_PAGE, 32266077Sdes ENCL_OP_MAX, 33266077Sdes}; 34266077Sdes 35266077Sdesstruct encl_op_header { 36266077Sdes uint64_t type; 37266077Sdes}; 38276541Sdes 39266077Sdesstruct encl_op_put_to_buf { 40276541Sdes struct encl_op_header header; 41266077Sdes uint64_t value; 42266077Sdes}; 43266077Sdes 44266077Sdesstruct encl_op_get_from_buf { 45266077Sdes struct encl_op_header header; 46266077Sdes uint64_t value; 47266077Sdes}; 48266077Sdes 49276541Sdesstruct encl_op_put_to_addr { 50266077Sdes struct encl_op_header header; 51276541Sdes uint64_t value; 52266077Sdes uint64_t addr; 53266077Sdes}; 54266077Sdes 55266077Sdesstruct encl_op_get_from_addr { 56266077Sdes struct encl_op_header header; 57266077Sdes uint64_t value; 58266077Sdes uint64_t addr; 59266077Sdes}; 60266077Sdes 61266077Sdesstruct encl_op_eaccept { 62266077Sdes struct encl_op_header header; 63266077Sdes uint64_t epc_addr; 64266077Sdes uint64_t flags; 65266077Sdes uint64_t ret; 66266077Sdes}; 67266077Sdes 68266077Sdesstruct encl_op_emodpe { 69266077Sdes struct encl_op_header header; 70266077Sdes uint64_t epc_addr; 71266077Sdes uint64_t flags; 72266077Sdes}; 73266077Sdes 74266077Sdesstruct encl_op_init_tcs_page { 75266077Sdes struct encl_op_header header; 76266077Sdes uint64_t tcs_page; 77266077Sdes uint64_t ssa; 78266077Sdes uint64_t entry; 79266077Sdes}; 80266077Sdes 81266077Sdes#endif /* DEFINES_H */ 82266077Sdes