qseecom.h revision 5d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229
15d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#ifndef _QSEECOM_H_ 25d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define _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 2365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_CE_PIPE_PAIR_PER_UNIT 3 2375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define INVALID_CE_INFO_UNIT_NUM 0xffffffff 2385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CE_PIPE_PAIR_USE_TYPE_FDE 0 2405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define CE_PIPE_PAIR_USE_TYPE_PFE 1 2415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_ce_pipe_entry { 2435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin int valid; 2445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int ce_num; 2455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int ce_pipe_pair; 2465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define MAX_CE_INFO_HANDLE_SIZE 32 2495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct qseecom_ce_info_req { 2505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned char handle[MAX_CE_INFO_HANDLE_SIZE]; 2515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int usage; 2525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int unit_num; 2535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned int num_ce_pipe_entries; 2545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin struct qseecom_ce_pipe_entry ce_pipe_entry[MAX_CE_PIPE_PAIR_PER_UNIT]; 2555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin}; 2565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SG_ENTRY_SZ sizeof(struct qseecom_sg_entry) 2585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define SG_ENTRY_SZ_64BIT sizeof(struct qseecom_sg_entry_64bit) 2595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinstruct file; 2615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjinextern long qseecom_ioctl(struct file *file, 2635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin unsigned cmd, unsigned long arg); 2645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOC_MAGIC 0x97 2665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_REGISTER_LISTENER_REQ \ 2695d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 1, struct qseecom_register_listener_req) 2705d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2715d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_UNREGISTER_LISTENER_REQ \ 2725d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IO(QSEECOM_IOC_MAGIC, 2) 2735d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2745d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_CMD_REQ \ 2755d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 3, struct qseecom_send_cmd_req) 2765d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2775d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_MODFD_CMD_REQ \ 2785d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 4, struct qseecom_send_modfd_cmd_req) 2795d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2805d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_RECEIVE_REQ \ 2815d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IO(QSEECOM_IOC_MAGIC, 5) 2825d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2835d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_RESP_REQ \ 2845d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IO(QSEECOM_IOC_MAGIC, 6) 2855d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2865d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_LOAD_APP_REQ \ 2875d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 7, struct qseecom_load_img_req) 2885d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2895d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SET_MEM_PARAM_REQ \ 2905d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 8, struct qseecom_set_sb_mem_param_req) 2915d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2925d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_UNLOAD_APP_REQ \ 2935d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IO(QSEECOM_IOC_MAGIC, 9) 2945d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2955d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_GET_QSEOS_VERSION_REQ \ 2965d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 10, struct qseecom_qseos_version_req) 2975d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 2985d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_PERF_ENABLE_REQ \ 2995d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IO(QSEECOM_IOC_MAGIC, 11) 3005d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3015d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_PERF_DISABLE_REQ \ 3025d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IO(QSEECOM_IOC_MAGIC, 12) 3035d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3045d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_LOAD_EXTERNAL_ELF_REQ \ 3055d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 13, struct qseecom_load_img_req) 3065d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3075d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_UNLOAD_EXTERNAL_ELF_REQ \ 3085d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IO(QSEECOM_IOC_MAGIC, 14) 3095d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3105d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_APP_LOADED_QUERY_REQ \ 3115d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 15, struct qseecom_qseos_app_load_query) 3125d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3135d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_CMD_SERVICE_REQ \ 3145d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 16, struct qseecom_send_svc_cmd_req) 3155d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3165d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_CREATE_KEY_REQ \ 3175d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 17, struct qseecom_create_key_req) 3185d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3195d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_WIPE_KEY_REQ \ 3205d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 18, struct qseecom_wipe_key_req) 3215d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3225d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SAVE_PARTITION_HASH_REQ \ 3235d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 19, struct qseecom_save_partition_hash_req) 3245d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3255d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_IS_ES_ACTIVATED_REQ \ 3265d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 20, struct qseecom_is_es_activated_req) 3275d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3285d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_MODFD_RESP \ 3295d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 21, struct qseecom_send_modfd_listener_resp) 3305d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3315d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SET_BUS_SCALING_REQ \ 3325d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 23, int) 3335d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3345d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_UPDATE_KEY_USER_INFO_REQ \ 3355d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 24, struct qseecom_update_key_userinfo_req) 3365d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3375d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_QTEEC_IOCTL_OPEN_SESSION_REQ \ 3385d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 30, struct qseecom_qteec_modfd_req) 3395d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3405d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_QTEEC_IOCTL_CLOSE_SESSION_REQ \ 3415d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 31, struct qseecom_qteec_req) 3425d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3435d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_QTEEC_IOCTL_INVOKE_MODFD_CMD_REQ \ 3445d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 32, struct qseecom_qteec_modfd_req) 3455d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3465d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_QTEEC_IOCTL_REQUEST_CANCELLATION_REQ \ 3475d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 33, struct qseecom_qteec_modfd_req) 3485d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3495d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_MDTP_CIPHER_DIP_REQ \ 3505d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 34, struct qseecom_mdtp_cipher_dip_req) 3515d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3525d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_MODFD_CMD_64_REQ \ 3535d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 35, struct qseecom_send_modfd_cmd_req) 3545d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3555d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_SEND_MODFD_RESP_64 \ 3565d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 36, struct qseecom_send_modfd_listener_resp) 3575d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3585d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_GET_CE_PIPE_INFO \ 3595d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 40, struct qseecom_ce_info_req) 3605d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3615d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_FREE_CE_PIPE_INFO \ 3625d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 41, struct qseecom_ce_info_req) 3635d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3645d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#define QSEECOM_IOCTL_QUERY_CE_PIPE_INFO \ 3655d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin _IOWR(QSEECOM_IOC_MAGIC, 42, struct qseecom_ce_info_req) 3665d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3675d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin 3685d6a7fb6f1a9ff1d898b290fc7c0b2695cf22229Patrick Tjin#endif /* _QSEECOM_H_ */ 369