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
19extern u64 sgx_attributes_reserved_mask;
20extern u64 sgx_xfrm_reserved_mask;
21extern u32 sgx_misc_reserved_mask;
22
23extern const struct file_operations sgx_provision_fops;
24
25long sgx_ioctl(struct file *filep, unsigned int cmd, unsigned long arg);
26
27int sgx_drv_init(void);
28
29#endif /* __ARCH_X86_SGX_DRIVER_H__ */
30