xref: /linux/tools/testing/selftests/sgx/defines.h (revision abc5cec4735080d12d644c2d39f96cf98c0a367c)
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