xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/sgx/defines.h (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
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