12adcba79SJarkko Sakkinen /* SPDX-License-Identifier: GPL-2.0 */ 22adcba79SJarkko Sakkinen /* 32adcba79SJarkko Sakkinen * Copyright(c) 2016-20 Intel Corporation. 42adcba79SJarkko Sakkinen */ 52adcba79SJarkko Sakkinen 62adcba79SJarkko Sakkinen #ifndef DEFINES_H 72adcba79SJarkko Sakkinen #define DEFINES_H 82adcba79SJarkko Sakkinen 92adcba79SJarkko Sakkinen #include <stdint.h> 102adcba79SJarkko Sakkinen 112adcba79SJarkko Sakkinen #define PAGE_SIZE 4096 122adcba79SJarkko Sakkinen #define PAGE_MASK (~(PAGE_SIZE - 1)) 132adcba79SJarkko Sakkinen 142adcba79SJarkko Sakkinen #define __aligned(x) __attribute__((__aligned__(x))) 152adcba79SJarkko Sakkinen #define __packed __attribute__((packed)) 162adcba79SJarkko Sakkinen 178ca52cc3SSean Christopherson #include "../../../../arch/x86/include/asm/sgx.h" 182adcba79SJarkko Sakkinen #include "../../../../arch/x86/include/asm/enclu.h" 192adcba79SJarkko Sakkinen #include "../../../../arch/x86/include/uapi/asm/sgx.h" 202adcba79SJarkko Sakkinen 2122118ce1SJarkko Sakkinen enum encl_op_type { 22c085dfc7SReinette Chatre ENCL_OP_PUT_TO_BUFFER, 23c085dfc7SReinette Chatre ENCL_OP_GET_FROM_BUFFER, 24*abc5cec4SReinette Chatre ENCL_OP_PUT_TO_ADDRESS, 25*abc5cec4SReinette Chatre ENCL_OP_GET_FROM_ADDRESS, 2641493a09SJarkko Sakkinen ENCL_OP_MAX, 2722118ce1SJarkko Sakkinen }; 2822118ce1SJarkko Sakkinen 2941493a09SJarkko Sakkinen struct encl_op_header { 3022118ce1SJarkko Sakkinen uint64_t type; 3141493a09SJarkko Sakkinen }; 3241493a09SJarkko Sakkinen 33c085dfc7SReinette Chatre struct encl_op_put_to_buf { 3441493a09SJarkko Sakkinen struct encl_op_header header; 3541493a09SJarkko Sakkinen uint64_t value; 3641493a09SJarkko Sakkinen }; 3741493a09SJarkko Sakkinen 38c085dfc7SReinette Chatre struct encl_op_get_from_buf { 3941493a09SJarkko Sakkinen struct encl_op_header header; 4041493a09SJarkko Sakkinen uint64_t value; 4122118ce1SJarkko Sakkinen }; 4222118ce1SJarkko Sakkinen 43*abc5cec4SReinette Chatre struct encl_op_put_to_addr { 44*abc5cec4SReinette Chatre struct encl_op_header header; 45*abc5cec4SReinette Chatre uint64_t value; 46*abc5cec4SReinette Chatre uint64_t addr; 47*abc5cec4SReinette Chatre }; 48*abc5cec4SReinette Chatre 49*abc5cec4SReinette Chatre struct encl_op_get_from_addr { 50*abc5cec4SReinette Chatre struct encl_op_header header; 51*abc5cec4SReinette Chatre uint64_t value; 52*abc5cec4SReinette Chatre uint64_t addr; 53*abc5cec4SReinette Chatre }; 54*abc5cec4SReinette Chatre 552adcba79SJarkko Sakkinen #endif /* DEFINES_H */ 56