xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/asm/sgx.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker /*
2*cda5da8dSAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*cda5da8dSAndroid Build Coastguard Worker  *
4*cda5da8dSAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*cda5da8dSAndroid Build Coastguard Worker  * for more information.
6*cda5da8dSAndroid Build Coastguard Worker  */
7*cda5da8dSAndroid Build Coastguard Worker #ifndef _UAPI_ASM_X86_SGX_H
8*cda5da8dSAndroid Build Coastguard Worker #define _UAPI_ASM_X86_SGX_H
9*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h>
10*cda5da8dSAndroid Build Coastguard Worker #include <linux/ioctl.h>
11*cda5da8dSAndroid Build Coastguard Worker enum sgx_page_flags {
12*cda5da8dSAndroid Build Coastguard Worker   SGX_PAGE_MEASURE = 0x01,
13*cda5da8dSAndroid Build Coastguard Worker };
14*cda5da8dSAndroid Build Coastguard Worker #define SGX_MAGIC 0xA4
15*cda5da8dSAndroid Build Coastguard Worker #define SGX_IOC_ENCLAVE_CREATE _IOW(SGX_MAGIC, 0x00, struct sgx_enclave_create)
16*cda5da8dSAndroid Build Coastguard Worker #define SGX_IOC_ENCLAVE_ADD_PAGES _IOWR(SGX_MAGIC, 0x01, struct sgx_enclave_add_pages)
17*cda5da8dSAndroid Build Coastguard Worker #define SGX_IOC_ENCLAVE_INIT _IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init)
18*cda5da8dSAndroid Build Coastguard Worker #define SGX_IOC_ENCLAVE_PROVISION _IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision)
19*cda5da8dSAndroid Build Coastguard Worker #define SGX_IOC_VEPC_REMOVE_ALL _IO(SGX_MAGIC, 0x04)
20*cda5da8dSAndroid Build Coastguard Worker #define SGX_IOC_ENCLAVE_RESTRICT_PERMISSIONS _IOWR(SGX_MAGIC, 0x05, struct sgx_enclave_restrict_permissions)
21*cda5da8dSAndroid Build Coastguard Worker #define SGX_IOC_ENCLAVE_MODIFY_TYPES _IOWR(SGX_MAGIC, 0x06, struct sgx_enclave_modify_types)
22*cda5da8dSAndroid Build Coastguard Worker #define SGX_IOC_ENCLAVE_REMOVE_PAGES _IOWR(SGX_MAGIC, 0x07, struct sgx_enclave_remove_pages)
23*cda5da8dSAndroid Build Coastguard Worker struct sgx_enclave_create {
24*cda5da8dSAndroid Build Coastguard Worker   __u64 src;
25*cda5da8dSAndroid Build Coastguard Worker };
26*cda5da8dSAndroid Build Coastguard Worker struct sgx_enclave_add_pages {
27*cda5da8dSAndroid Build Coastguard Worker   __u64 src;
28*cda5da8dSAndroid Build Coastguard Worker   __u64 offset;
29*cda5da8dSAndroid Build Coastguard Worker   __u64 length;
30*cda5da8dSAndroid Build Coastguard Worker   __u64 secinfo;
31*cda5da8dSAndroid Build Coastguard Worker   __u64 flags;
32*cda5da8dSAndroid Build Coastguard Worker   __u64 count;
33*cda5da8dSAndroid Build Coastguard Worker };
34*cda5da8dSAndroid Build Coastguard Worker struct sgx_enclave_init {
35*cda5da8dSAndroid Build Coastguard Worker   __u64 sigstruct;
36*cda5da8dSAndroid Build Coastguard Worker };
37*cda5da8dSAndroid Build Coastguard Worker struct sgx_enclave_provision {
38*cda5da8dSAndroid Build Coastguard Worker   __u64 fd;
39*cda5da8dSAndroid Build Coastguard Worker };
40*cda5da8dSAndroid Build Coastguard Worker struct sgx_enclave_restrict_permissions {
41*cda5da8dSAndroid Build Coastguard Worker   __u64 offset;
42*cda5da8dSAndroid Build Coastguard Worker   __u64 length;
43*cda5da8dSAndroid Build Coastguard Worker   __u64 permissions;
44*cda5da8dSAndroid Build Coastguard Worker   __u64 result;
45*cda5da8dSAndroid Build Coastguard Worker   __u64 count;
46*cda5da8dSAndroid Build Coastguard Worker };
47*cda5da8dSAndroid Build Coastguard Worker struct sgx_enclave_modify_types {
48*cda5da8dSAndroid Build Coastguard Worker   __u64 offset;
49*cda5da8dSAndroid Build Coastguard Worker   __u64 length;
50*cda5da8dSAndroid Build Coastguard Worker   __u64 page_type;
51*cda5da8dSAndroid Build Coastguard Worker   __u64 result;
52*cda5da8dSAndroid Build Coastguard Worker   __u64 count;
53*cda5da8dSAndroid Build Coastguard Worker };
54*cda5da8dSAndroid Build Coastguard Worker struct sgx_enclave_remove_pages {
55*cda5da8dSAndroid Build Coastguard Worker   __u64 offset;
56*cda5da8dSAndroid Build Coastguard Worker   __u64 length;
57*cda5da8dSAndroid Build Coastguard Worker   __u64 count;
58*cda5da8dSAndroid Build Coastguard Worker };
59*cda5da8dSAndroid Build Coastguard Worker struct sgx_enclave_run;
60*cda5da8dSAndroid Build Coastguard Worker typedef int(* sgx_enclave_user_handler_t) (long rdi, long rsi, long rdx, long rsp, long r8, long r9, struct sgx_enclave_run * run);
61*cda5da8dSAndroid Build Coastguard Worker struct sgx_enclave_run {
62*cda5da8dSAndroid Build Coastguard Worker   __u64 tcs;
63*cda5da8dSAndroid Build Coastguard Worker   __u32 function;
64*cda5da8dSAndroid Build Coastguard Worker   __u16 exception_vector;
65*cda5da8dSAndroid Build Coastguard Worker   __u16 exception_error_code;
66*cda5da8dSAndroid Build Coastguard Worker   __u64 exception_addr;
67*cda5da8dSAndroid Build Coastguard Worker   __u64 user_handler;
68*cda5da8dSAndroid Build Coastguard Worker   __u64 user_data;
69*cda5da8dSAndroid Build Coastguard Worker   __u8 reserved[216];
70*cda5da8dSAndroid Build Coastguard Worker };
71*cda5da8dSAndroid Build Coastguard Worker typedef int(* vdso_sgx_enter_enclave_t) (unsigned long rdi, unsigned long rsi, unsigned long rdx, unsigned int function, unsigned long r8, unsigned long r9, struct sgx_enclave_run * run);
72*cda5da8dSAndroid Build Coastguard Worker #endif
73