1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __ARCH_SGX_DRIVER_H__
3 #define __ARCH_SGX_DRIVER_H__
4 
5 #include <crypto/hash.h>
6 #include <linux/kref.h>
7 #include <linux/mmu_notifier.h>
8 #include <linux/radix-tree.h>
9 #include <linux/rwsem.h>
10 #include <linux/sched.h>
11 #include <linux/workqueue.h>
12 #include <uapi/asm/sgx.h>
13 #include "sgx.h"
14 
15 #define SGX_EINIT_SPIN_COUNT	20
16 #define SGX_EINIT_SLEEP_COUNT	50
17 #define SGX_EINIT_SLEEP_TIME	20
18 
19 extern u64 sgx_attributes_reserved_mask;
20 extern u64 sgx_xfrm_reserved_mask;
21 extern u32 sgx_misc_reserved_mask;
22 
23 extern const struct file_operations sgx_provision_fops;
24 
25 long sgx_ioctl(struct file *filep, unsigned int cmd, unsigned long arg);
26 
27 int sgx_drv_init(void);
28 
29 #endif /* __ARCH_X86_SGX_DRIVER_H__ */
30