blob: 659821b3fde6292a58d6dbd459b46b80e892fd24 [file] [log] [blame]
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*******************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2001
*
*******************************************************************************/
/*******************************************************************************
* Filename:
* ---------
* sim_public_struct.h
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
* SIM related message structure (outside PS)
*
* Author:
* -------
* -------
*
*==============================================================================
*******************************************************************************/
#ifndef SIM_PUBLIC_STRUCT_H
#define SIM_PUBLIC_STRUCT_H
#include "kal_general_types.h"
#include "kal_public_defs.h"
#include "sim_public_enum.h"
#include "ps_public_struct.h"
#include "l5_structs.h"
typedef struct {
LOCAL_PARA_HDR
kal_uint8 ef_imsi[9];
} sim_ready_ind_struct;
/* MAUI_01949579 mtk02374 20090903 for CTA GEMINI new bootup*/
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
} sim_reset_req_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
kal_bool is_sim_inserted;
kal_bool is_sim_exist; // For C2K fatcory mode detect SIM insert or not
// Because for C2K project, UIM only or CSIM only or 3G CT card is_sim_inserted will be KAL_FALSE
kal_bool is_ct3g_sim_inserted;
} sim_reset_cnf_struct;
/*mtk01612: [MAUI_02023545] BT_SIM_Profile for MAUI and DUMA*/
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 src_id;
} bt_sim_connect_req_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint16 result;
kal_uint8 current_transport_protocol_type;
kal_uint8 supported_transport_protocol_type_capability;
kal_uint16 atr_len;
kal_uint8 atr[ATR_MAX_LEN];
kal_uint8 src_id;
} bt_sim_connect_cnf_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 transport_protocol_type;
kal_uint8 src_id;
} bt_sim_reset_req_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint16 result;
kal_uint8 current_transport_protocol_type;
kal_uint16 atr_len;
kal_uint8 atr[ATR_MAX_LEN];
kal_uint8 src_id;
kal_uint8 supported_transport_protocol_type_capability;
} bt_sim_reset_cnf_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 transport_protocol_type;
kal_uint16 apdu_req_len;
kal_uint8 apdu_req[APDU_REQ_MAX_LEN];
kal_uint8 src_id;
} bt_sim_apdu_req_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint16 result;
kal_uint16 apdu_rsp_len;
kal_uint8 apdu_rsp[APDU_RSP_MAX_LEN];
kal_uint8 src_id;
} bt_sim_apdu_cnf_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 src_id;
} bt_sim_disconnect_req_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint16 result;
kal_uint8 src_id;
} bt_sim_disconnect_cnf_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint8 src_id;
} bt_sim_power_off_req_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint16 result;
kal_uint8 src_id;
} bt_sim_power_off_cnf_struct;
typedef bt_sim_reset_req_struct bt_sim_power_on_req_struct;
typedef bt_sim_reset_cnf_struct bt_sim_power_on_cnf_struct;
/* MAUI_02953154 */
typedef struct
{
LOCAL_PARA_HDR
kal_uint16 file_idx;
kal_uint16 para; /* Low byte(P1) is record index. High byte(P2) indicate search mode but now it's RFU, only support search forward from index P1 */
kal_uint8 access_id;
kal_uint8 path[6];
kal_uint8 src_id;
kal_uint8 pattern_len; /* pattern data size is MAX_SUPPORT_RECORD_SIZE at most */
kal_uint8 data[MAX_SUPPORT_RECORD_SIZE+6]; /* max pattern data size + 6 bytes space for command header */
kal_uint8 sfi;
} sim_search_record_req_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint16 file_idx;
kal_uint16 para;
kal_uint8 access_id;
kal_uint8 src_id;
kal_uint16 result;
kal_uint16 status_word;
kal_uint8 record_num; /* number of pattern matched records. MAX_SUPPORT_RECORD_NUM at most */
kal_uint8 record[258]; /* max APDU response data size 256 + 2 bytes preserved for SIM dirver */
} sim_search_record_cnf_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 rand[16];
kal_bool is_auth_present;
kal_uint8 auth[16];
kal_uint8 src_id; /*[MAUI_02602650] mtk01612: AT+EAUTH authentication through AT cmd*/
kal_uint8 trans_id; /*[ALPS02825711] NAS shall only use the CNF with the same trans_id of REQ.*/
uicc_auth_mode_enum mode;
kal_uint8 channel_id;
kal_uint8 command_len;
kal_uint8 command_data[256];
} sim_authenticate_req_struct, sim_app_authenticate_req_struct;
typedef struct {
LOCAL_PARA_HDR
sim_cmd_result_enum result;
kal_uint16 status_word;
kal_uint8 kc[8];
kal_uint8 sres[4];
kal_uint8 ck[16];
kal_uint8 ik[16];
kal_uint8 res[16];
kal_uint8 res_len;
kal_uint8 auts[16];
kal_uint8 auts_len;
kal_uint8 auth_res[256]; /*[MAUI_02602650] mtk01612: AT+EAUTH authentication through AT cmd. This should be the same as USIM_MAX_AUTHENTICATE_RSP_LEN */
kal_uint16 auth_res_len; /*[MAUI_02602650] mtk01612: AT+EAUTH authentication through AT cmd.*/
kal_uint8 src_id; /*[MAUI_02602650] mtk01612: AT+EAUTH authentication through AT cmd.*/
kal_uint8 trans_id; /*[ALPS02825711] NAS shall only use the CNF with the same trans_id of REQ.*/
} sim_authenticate_cnf_struct, sim_app_authenticate_cnf_struct;
typedef struct{
kal_uint8 length;
kal_uint8 atr[ATR_MAX_LEN];
}sim_atr_struct;
typedef struct{
kal_bool is_sim_inserted;
kal_bool is_df_gsm_existed;
kal_bool is_df_cdma_existed;
kal_bool is_csim_app_existed;
kal_bool is_usim_app_existed;
kal_bool is_isim_app_existed;
kal_bool try_usim_success;
kal_bool try_sim_success;
kal_uint8 csim_aid_len;
kal_uint8 csim_aid[16];
kal_uint8 usim_aid_len;
kal_uint8 usim_aid[16];
kal_uint8 isim_aid_len;
kal_uint8 isim_aid[16];
}sim_cdma_struct;
typedef struct{
LOCAL_PARA_HDR
kal_uint16 card_type;
usim_logic_channel_enum USIMchan;
usim_logic_channel_enum ISIMchan;
kal_uint8 atr_length;
kal_uint8 atr[ATR_MAX_LEN];
kal_uint8 remote_sim_protocol_task;
kal_uint8 sim_slot_id;
kal_bool is_imsi_valid;
kal_uint8 imsi[9];
kal_bool sim_start_req;
kal_bool is_ad_valid;
kal_uint8 ad[4];
kal_bool is_iccid_valid;
kal_uint8 iccid[10];
kal_uint8 iccid_fcp_len;
kal_uint8 iccid_fcp[50];
kal_bool is_pl_valid;
kal_uint8 pl_len;
kal_uint8 pl[10];
kal_uint8 pl_fcp_len;
kal_uint8 pl_fcp[50];
kal_uint8 dir_record_size; // size of 1 record
kal_uint8 dir_record_num;
kal_uint8 dir_content[255];
sim_chv_info_struct chv_info;
kal_uint8 imsi_m_fcp_len;
kal_uint8 imsi_m_fcp[50];
// Is there valid PIN DO in the application USIM?
kal_bool is_usim_valid_pin_do;
// To info the task UIM if the STARTUP_READ_FINISH_IND and APP INIT have to be sent in the task UIM or not
// KAL_TRUE: UIM DOESN'T NEED to send STARTUP_READ_FINISH_IND
// KAL_FALE: Default value. the task UIM keep the original logic
kal_bool is_start_finish_ind_noneeded;
}sim_status_ind_struct;
/* <modem_status>:
0: only MD1 active
1: MD1's RF is closed, but MD1's SIM task is still working only for MD3 SIM remote access and MD3 active
2: both MD1 and MD3 active, but there is at least USIM application existed on the MD1's card
<remote_sim_protocol_task>:
0: MD3 access local card
1: MD3 access MD1's SIM task1
2: MD3 access MD1's SIM task2 */
typedef struct{
LOCAL_PARA_HDR
kal_uint8 modem_status;
kal_uint8 remote_sim_protocol_task;
}sim_mdstatus_update_req_struct;
typedef union {
sim_atr_struct atr;
sim_cdma_struct cdma;
kal_uint8 sim_reset_volt; /* 1 = 5V, 2 = 3V. 3 = 1.8V */
kal_uint8 command_header[CMD_HEADER_LEN]; /* 5 bytes header information: CLA,INS,P1,P2,P3 */
} sim_query_info_field;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
sim_query_info_enum info_id;
} sim_query_info_req_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
sim_cmd_result_enum result;
sim_query_info_enum info_id;
sim_query_info_field info_data;
} sim_query_info_cnf_struct;
/* Skyroam Start */
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
kal_bool is_apvsim_on;
kal_bool is_apvsim_ready;
} sim_set_apvsim_mode_req_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
sim_cmd_result_enum result;
} sim_set_apvsim_mode_cnf_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
kal_uint8 atr_status;
kal_uint32 atr_length;
kal_uint8 atr[ATR_MAX_LEN];
} sim_rsa_atr_req_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
sim_cmd_result_enum result;
} sim_rsa_atr_cnf_struct;
typedef struct {
LOCAL_PARA_HDR
} sim_rsa_reset_ind_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint32 apdu_len;
kal_uint8 apdu[APDU_REQ_MAX_LEN];
} sim_rsa_apdu_ind_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
//kal_uint8 apdu_status;
kal_uint32 rsp_len;
kal_uint8 rsp[APDU_RSP_MAX_LEN];
} sim_rsa_apdu_rsp_req_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
sim_cmd_result_enum result;
} sim_rsa_apdu_rsp_cnf_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
} sim_rsa_hot_plug_out_req_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
sim_cmd_result_enum result;
} sim_rsa_hot_plug_out_cnf_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
} sim_rsa_hot_plug_in_req_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 src_id;
sim_cmd_result_enum result;
} sim_rsa_hot_plug_in_cnf_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 mode;
} sim_rsa_power_down_ind_struct;
/* Skyroam End */
typedef struct {
LOCAL_PARA_HDR
kal_uint8 config_bin_name[30];
} sim_ut_set_config_bin_req_struct;
typedef struct
{
kal_bool repeat_mode;
kal_uint16 prefix_len;
kal_uint8 c_apdu_prefix[256];
kal_bool is_sw0000;
} sim_ut_monitor_apdu_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 num_prefix;
sim_ut_monitor_apdu_struct monitor_capdu[5];
} sim_ut_config_ind_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 which_prefix;
kal_uint16 apdu_len;
kal_uint8 apdu[APDU_REQ_MAX_LEN];
} sim_ut_capdu_ind_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint16 rsp_len;
kal_uint8 rsp[256];
kal_uint16 status_word;
} sim_ut_rapdu_rsp_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint16 src_id; /* source module to send this request */
kal_uint8 mode; /* 0 - query, 1 - set */
kal_uint8 control; /* 0 - disable multiple SIM, 1 - enable multiple SIM */
sim_restrict_card_type_enum card_type;
} sim_restrict_card_type_req_struct;
typedef struct
{
LOCAL_PARA_HDR
kal_uint16 src_id; /* same to the value in request message */
kal_uint8 mode; /* 0 - query, 1 - set */
kal_uint8 control; /* 0 - disable multiple SIM, 1 - enable multiple SIM */
sim_restrict_card_type_enum card_type;
kal_bool result;
} sim_restrict_card_type_cnf_struct;
typedef l5_l4c_set_ecall_mode_req_struct l4c_sim_set_ecall_mode_req_struct;
typedef l5_l4c_set_ecall_mode_cnf_struct l4c_sim_set_ecall_mode_cnf_struct;
typedef l5_l4c_get_ecall_mode_req_struct l4c_sim_get_ecall_mode_req_struct;
typedef l5_l4c_get_ecall_mode_cnf_struct l4c_sim_get_ecall_mode_cnf_struct;
#endif