/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright(c) 2016-20 Intel Corporation.
 */

#ifndef DEFINES_H
#define DEFINES_H

#include <stdint.h>

#define PAGE_SIZE 4096
#define PAGE_MASK (~(PAGE_SIZE - 1))

#define __aligned(x) __attribute__((__aligned__(x)))
#define __packed __attribute__((packed))
#define __used __attribute__((used))
#define __section(x)__attribute__((__section__(x)))

#include "../../../../arch/x86/include/asm/sgx.h"
#include "../../../../arch/x86/include/asm/enclu.h"
#include "../../../../arch/x86/include/uapi/asm/sgx.h"

enum encl_op_type {
	ENCL_OP_PUT_TO_BUFFER,
	ENCL_OP_GET_FROM_BUFFER,
	ENCL_OP_PUT_TO_ADDRESS,
	ENCL_OP_GET_FROM_ADDRESS,
	ENCL_OP_NOP,
	ENCL_OP_EACCEPT,
	ENCL_OP_EMODPE,
	ENCL_OP_INIT_TCS_PAGE,
	ENCL_OP_MAX,
};

struct encl_op_header {
	uint64_t type;
};

struct encl_op_put_to_buf {
	struct encl_op_header header;
	uint64_t value;
};

struct encl_op_get_from_buf {
	struct encl_op_header header;
	uint64_t value;
};

struct encl_op_put_to_addr {
	struct encl_op_header header;
	uint64_t value;
	uint64_t addr;
};

struct encl_op_get_from_addr {
	struct encl_op_header header;
	uint64_t value;
	uint64_t addr;
};

struct encl_op_eaccept {
	struct encl_op_header header;
	uint64_t epc_addr;
	uint64_t flags;
	uint64_t ret;
};

struct encl_op_emodpe {
	struct encl_op_header header;
	uint64_t epc_addr;
	uint64_t flags;
};

struct encl_op_init_tcs_page {
	struct encl_op_header header;
	uint64_t tcs_page;
	uint64_t ssa;
	uint64_t entry;
};

#endif /* DEFINES_H */
