1d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#ifndef _UAPI_QSEECOM_H_
2d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#define _UAPI_QSEECOM_H_
35d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
45d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#include <linux/types.h>
55d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#include <linux/ioctl.h>
65d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
75d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_ION_FD  4
85d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_APP_NAME_SIZE  64
95d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_HASH_SIZE  32
105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_register_listener_req -
125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin *      for register listener ioctl request
135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @listener_id - service id (shared between userspace and QSE)
145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @ifd_data_fd - ion handle
155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @virt_sb_base - shared buffer base in user space
165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @sb_size - shared buffer size
175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_register_listener_req {
195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t listener_id; /* in */
205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t ifd_data_fd; /* in */
215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *virt_sb_base; /* in */
225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t sb_size; /* in */
235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_send_cmd_req - for send command ioctl request
275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @cmd_req_len - command buffer length
285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @cmd_req_buf - command buffer
295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @resp_len - response buffer length
305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @resp_buf - response buffer
315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_send_cmd_req {
335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *cmd_req_buf; /* in */
345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int cmd_req_len; /* in */
355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *resp_buf; /* in/out */
365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int resp_len; /* in/out */
375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_ion_fd_info - ion fd handle data information
415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @fd - ion handle to some memory allocated in user space
425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @cmd_buf_offset - command buffer offset
435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_ion_fd_info {
455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t fd;
465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t cmd_buf_offset;
475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_send_modfd_cmd_req - for send command ioctl request
505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @cmd_req_len - command buffer length
515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @cmd_req_buf - command buffer
525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @resp_len - response buffer length
535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @resp_buf - response buffer
545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @ifd_data_fd - ion handle to memory allocated in user space
555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @cmd_buf_offset - command buffer offset
565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_send_modfd_cmd_req {
585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *cmd_req_buf; /* in */
595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int cmd_req_len; /* in */
605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *resp_buf; /* in/out */
615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int resp_len; /* in/out */
625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct qseecom_ion_fd_info ifd_data[MAX_ION_FD];
635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_listener_send_resp_req - signal to continue the send_cmd req.
675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * Used as a trigger from HLOS service to notify QSEECOM that it's done with its
685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * operation and provide the response for QSEECOM can continue the incomplete
695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * command execution
705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @resp_len - Length of the response
715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @resp_buf - Response buffer where the response of the cmd should go.
725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_send_resp_req {
745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *resp_buf; /* in */
755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int resp_len; /* in */
765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_load_img_data - for sending image length information and
805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * ion file descriptor to the qseecom driver. ion file descriptor is used
815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * for retrieving the ion file handle and in turn the physical address of
825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * the image location.
835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @mdt_len - Length of the .mdt file in bytes.
845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @img_len - Length of the .mdt + .b00 +..+.bxx images files in bytes
855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @ion_fd - Ion file descriptor used when allocating memory.
865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @img_name - Name of the image.
875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @app_arch - Architecture of the image, i.e. 32bit or 64bit app
885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin*/
895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_load_img_req {
905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t mdt_len; /* in */
915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t img_len; /* in */
925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t  ifd_data_fd; /* in */
935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	char	 img_name[MAX_APP_NAME_SIZE]; /* in */
945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t app_arch; /* in */
955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int app_id; /* out*/
965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_set_sb_mem_param_req {
995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int32_t ifd_data_fd; /* in */
1005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *virt_sb_base; /* in */
1015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t sb_len; /* in */
1025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
1055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_qseos_version_req - get qseos version
1065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @qseos_version - version number
1075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
1085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_qseos_version_req {
1095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int qseos_version; /* in */
1105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
1135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_qseos_app_load_query - verify if app is loaded in qsee
1145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @app_name[MAX_APP_NAME_SIZE]-  name of the app.
1155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @app_id - app id.
1165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
1175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_qseos_app_load_query {
1185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	char app_name[MAX_APP_NAME_SIZE]; /* in */
1195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int app_id; /* out */
1205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t app_arch;
1215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_send_svc_cmd_req {
1245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t cmd_id;
1255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *cmd_req_buf; /* in */
1265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int cmd_req_len; /* in */
1275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *resp_buf; /* in/out */
1285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int resp_len; /* in/out */
1295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum qseecom_key_management_usage_type {
1325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	QSEOS_KM_USAGE_DISK_ENCRYPTION = 0x01,
1335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	QSEOS_KM_USAGE_FILE_ENCRYPTION = 0x02,
1345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	QSEOS_KM_USAGE_UFS_ICE_DISK_ENCRYPTION = 0x03,
1355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	QSEOS_KM_USAGE_SDCC_ICE_DISK_ENCRYPTION = 0x04,
1365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	QSEOS_KM_USAGE_MAX
1375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_create_key_req {
1405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned char hash32[QSEECOM_HASH_SIZE];
1415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	enum qseecom_key_management_usage_type usage;
1425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_wipe_key_req {
1455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	enum qseecom_key_management_usage_type usage;
1465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int wipe_key_flag;/* 1->remove key from storage(alone with clear key) */
1475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin			  /* 0->do not remove from storage (clear key) */
1485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_update_key_userinfo_req {
1515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned char current_hash32[QSEECOM_HASH_SIZE];
1525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned char new_hash32[QSEECOM_HASH_SIZE];
1535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	enum qseecom_key_management_usage_type usage;
1545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SHA256_DIGEST_LENGTH	(256/8)
1575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
1585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_save_partition_hash_req
1595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @partition_id - partition id.
1605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @hash[SHA256_DIGEST_LENGTH] -  sha256 digest.
1615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
1625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_save_partition_hash_req {
1635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int partition_id; /* in */
1645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	char digest[SHA256_DIGEST_LENGTH]; /* in */
1655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
1685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_is_es_activated_req
1695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @is_activated - 1=true , 0=false
1705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
1715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_is_es_activated_req {
1725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int is_activated; /* out */
1735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
1765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_mdtp_cipher_dip_req
1775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @in_buf - input buffer
1785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @in_buf_size - input buffer size
1795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @out_buf - output buffer
1805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @out_buf_size - output buffer size
1815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @direction - 0=encrypt, 1=decrypt
1825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
1835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_mdtp_cipher_dip_req {
1845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint8_t *in_buf;
1855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t in_buf_size;
1865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint8_t *out_buf;
1875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t out_buf_size;
1885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t direction;
1895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinenum qseecom_bandwidth_request_mode {
1925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	INACTIVE = 0,
1935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	LOW,
1945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	MEDIUM,
1955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	HIGH,
1965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
1975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
1985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin/*
1995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * struct qseecom_send_modfd_resp - for send command ioctl request
2005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @req_len - command buffer length
2015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @req_buf - command buffer
2025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @ifd_data_fd - ion handle to memory allocated in user space
2035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin * @cmd_buf_offset - command buffer offset
2045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin */
2055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_send_modfd_listener_resp {
2065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void *resp_buf_ptr; /* in */
2075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int resp_len; /* in */
2085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct qseecom_ion_fd_info ifd_data[MAX_ION_FD]; /* in */
2095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_qteec_req {
2125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void    *req_ptr;
2135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t    req_len;
2145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void    *resp_ptr;
2155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t    resp_len;
2165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_qteec_modfd_req {
2195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void    *req_ptr;
2205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t    req_len;
2215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	void    *resp_ptr;
2225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t    resp_len;
2235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct qseecom_ion_fd_info ifd_data[MAX_ION_FD];
2245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_sg_entry {
2275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t phys_addr;
2285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t len;
2295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_sg_entry_64bit {
2325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint64_t phys_addr;
2335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	uint32_t len;
2345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin} __attribute__ ((packed));
2355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
236d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin/*
237d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * sg list buf format version
238d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 1: Legacy format to support only 512 SG list entries
239d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin * 2: new format to support > 512 entries
240d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin */
241d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#define QSEECOM_SG_LIST_BUF_FORMAT_VERSION_1	1
242d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#define QSEECOM_SG_LIST_BUF_FORMAT_VERSION_2	2
243d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin
244d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjinstruct qseecom_sg_list_buf_hdr_64bit {
245d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin	struct qseecom_sg_entry_64bit  blank_entry;	/* must be all 0 */
246d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin	uint32_t version;		/* sg list buf format version */
247d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin	uint64_t new_buf_phys_addr;	/* PA of new buffer */
248d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin	uint32_t nents_total;		/* Total number of SG entries */
249d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin} __attribute__ ((packed));
250d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin
251d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#define QSEECOM_SG_LIST_BUF_HDR_SZ_64BIT	\
252d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin			sizeof(struct qseecom_sg_list_buf_hdr_64bit)
253d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin
2545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_CE_PIPE_PAIR_PER_UNIT 3
2555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define INVALID_CE_INFO_UNIT_NUM 0xffffffff
2565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CE_PIPE_PAIR_USE_TYPE_FDE 0
2585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CE_PIPE_PAIR_USE_TYPE_PFE 1
2595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_ce_pipe_entry {
2615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	int valid;
2625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int ce_num;
2635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int ce_pipe_pair;
2645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_CE_INFO_HANDLE_SIZE 32
2675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_ce_info_req {
2685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned char handle[MAX_CE_INFO_HANDLE_SIZE];
2695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int usage;
2705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int unit_num;
2715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	unsigned int num_ce_pipe_entries;
2725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	struct qseecom_ce_pipe_entry ce_pipe_entry[MAX_CE_PIPE_PAIR_PER_UNIT];
2735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin};
2745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SG_ENTRY_SZ		sizeof(struct qseecom_sg_entry)
2765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SG_ENTRY_SZ_64BIT	sizeof(struct qseecom_sg_entry_64bit)
2775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct file;
2795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinextern long qseecom_ioctl(struct file *file,
2815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin					unsigned cmd, unsigned long arg);
2825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOC_MAGIC    0x97
2845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_REGISTER_LISTENER_REQ \
2875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 1, struct qseecom_register_listener_req)
2885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_UNREGISTER_LISTENER_REQ \
2905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IO(QSEECOM_IOC_MAGIC, 2)
2915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_CMD_REQ \
2935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 3, struct qseecom_send_cmd_req)
2945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_MODFD_CMD_REQ \
2965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 4, struct qseecom_send_modfd_cmd_req)
2975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
2985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_RECEIVE_REQ \
2995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IO(QSEECOM_IOC_MAGIC, 5)
3005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_RESP_REQ \
3025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IO(QSEECOM_IOC_MAGIC, 6)
3035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_LOAD_APP_REQ \
3055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 7, struct qseecom_load_img_req)
3065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SET_MEM_PARAM_REQ \
3085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 8, struct qseecom_set_sb_mem_param_req)
3095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_UNLOAD_APP_REQ \
3115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IO(QSEECOM_IOC_MAGIC, 9)
3125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_GET_QSEOS_VERSION_REQ \
3145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 10, struct qseecom_qseos_version_req)
3155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_PERF_ENABLE_REQ \
3175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IO(QSEECOM_IOC_MAGIC, 11)
3185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_PERF_DISABLE_REQ \
3205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IO(QSEECOM_IOC_MAGIC, 12)
3215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_LOAD_EXTERNAL_ELF_REQ \
3235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 13, struct qseecom_load_img_req)
3245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_UNLOAD_EXTERNAL_ELF_REQ \
3265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IO(QSEECOM_IOC_MAGIC, 14)
3275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_APP_LOADED_QUERY_REQ \
3295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 15, struct qseecom_qseos_app_load_query)
3305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_CMD_SERVICE_REQ \
3325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 16, struct qseecom_send_svc_cmd_req)
3335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_CREATE_KEY_REQ \
3355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 17, struct qseecom_create_key_req)
3365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_WIPE_KEY_REQ \
3385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 18, struct qseecom_wipe_key_req)
3395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SAVE_PARTITION_HASH_REQ \
3415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 19, struct qseecom_save_partition_hash_req)
3425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_IS_ES_ACTIVATED_REQ \
3445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 20, struct qseecom_is_es_activated_req)
3455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_MODFD_RESP \
3475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 21, struct qseecom_send_modfd_listener_resp)
3485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SET_BUS_SCALING_REQ \
3505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 23, int)
3515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_UPDATE_KEY_USER_INFO_REQ \
3535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 24, struct qseecom_update_key_userinfo_req)
3545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_QTEEC_IOCTL_OPEN_SESSION_REQ \
3565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 30, struct qseecom_qteec_modfd_req)
3575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_QTEEC_IOCTL_CLOSE_SESSION_REQ \
3595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 31, struct qseecom_qteec_req)
3605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_QTEEC_IOCTL_INVOKE_MODFD_CMD_REQ \
3625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 32, struct qseecom_qteec_modfd_req)
3635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_QTEEC_IOCTL_REQUEST_CANCELLATION_REQ \
3655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 33, struct qseecom_qteec_modfd_req)
3665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_MDTP_CIPHER_DIP_REQ \
3685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 34, struct qseecom_mdtp_cipher_dip_req)
3695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_MODFD_CMD_64_REQ \
3715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 35, struct qseecom_send_modfd_cmd_req)
3725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_MODFD_RESP_64 \
3745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 36, struct qseecom_send_modfd_listener_resp)
3755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_GET_CE_PIPE_INFO \
3775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 40, struct qseecom_ce_info_req)
3785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_FREE_CE_PIPE_INFO \
3805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 41, struct qseecom_ce_info_req)
3815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_QUERY_CE_PIPE_INFO \
3835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin	_IOWR(QSEECOM_IOC_MAGIC, 42, struct qseecom_ce_info_req)
3845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
3855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin
386d9ec20e66310e5fa84a1de1c3303748f6b690542Patrick Tjin#endif /* _UAPI_QSEECOM_H_ */
387