blob: e3cf68ae68852d0746109c9d7fde0d8a1b9b3574 [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).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* ssds_nvram_def.h
*
* Project:
* --------
* Bianco
*
* Description:
* ------------
*
*
* Author:
* -------
*
****************************************************************************/
#ifndef __SSDS_NVRAM_DEF_H__
#define __SSDS_NVRAM_DEF_H__
#ifdef __cplusplus
extern "C"
{
#endif /*__cplusplus */
//head files
#include "nvram_defs.h"
#include "nvram_enums.h"
#include "ps_public_enum.h"
#include "device.h"
#include "custom_ssds.h"
// LID Enums
typedef enum
{
NVRAM_EF_SSDS_BEGIN_LID = NVRAM_LID_GRP_SSDS(0),
NVRAM_EF_SSDS_REQUEST_PROFILE_LID = NVRAM_LID_GRP_SSDS(1),
NVRAM_EF_SSDS_RESPONSE_PROFILE_LID = NVRAM_LID_GRP_SSDS(2),
NVRAM_EF_SSDS_PDN_PROFILE_LID = NVRAM_LID_GRP_SSDS(3),
NVRAM_EF_SSDS_PDN_FAIL_PROFILE_LID = NVRAM_LID_GRP_SSDS(4),
NVRAM_EF_SSDS_TIMER_VALUE_PROFILE_LID = NVRAM_LID_GRP_SSDS(5),
NVRAM_EF_SSDS_XCAP_PROFILE_LID = NVRAM_LID_GRP_SSDS(6),
NVRAM_EF_SSDS_COMMON_CONFIG_PROFILE_LID = NVRAM_LID_GRP_SSDS(7),
NVRAM_EF_SSDS_CW_SYNC_INFO_LID = NVRAM_LID_GRP_SSDS(8),
NVRAM_EF_SSDS_LAST_LID = NVRAM_LID_GRP_SSDS(63)
}nvram_lid_ssds_enum;
// VERNO
#define NVRAM_EF_SSDS_REQUEST_PROFILE_LID_VERNO "004"
#define NVRAM_EF_SSDS_RESPONSE_PROFILE_LID_VERNO "003"
#define NVRAM_EF_SSDS_PDN_PROFILE_LID_VERNO "003"
#define NVRAM_EF_SSDS_PDN_FAIL_PROFILE_LID_VERNO "004"
#define NVRAM_EF_SSDS_TIMER_VALUE_PROFILE_LID_VERNO "005"
#define NVRAM_EF_SSDS_XCAP_PROFILE_LID_VERNO "002"
#define NVRAM_EF_SSDS_COMMON_CONFIG_PROFILE_LID_VERNO "009"
#define NVRAM_EF_SSDS_CW_SYNC_INFO_LID_VERNO "000"
//HASH VALUE
#define NVRAM_EF_SSDS_REQUEST_PROFILE_LID_HASH 0x8BC39EA6
#define NVRAM_EF_SSDS_RESPONSE_PROFILE_LID_HASH 0xC3BE03F9
#define NVRAM_EF_SSDS_PDN_PROFILE_LID_HASH 0xBCA265C3
#define NVRAM_EF_SSDS_PDN_FAIL_PROFILE_LID_HASH 0x914E8A91
#define NVRAM_EF_SSDS_TIMER_VALUE_PROFILE_LID_HASH 0x9219C77B
#define NVRAM_EF_SSDS_XCAP_PROFILE_LID_HASH 0x5BBAB9D8
#define NVRAM_EF_SSDS_COMMON_CONFIG_PROFILE_LID_HASH 0x7D99E272
#define NVRAM_EF_SSDS_CW_SYNC_INFO_LID_HASH 0x7753EA58
// Data Structure of Each LID
#if 1
#define NVRAM_EF_SSDS_REQUEST_PROFILE_MAX_ENTRY_NUM 32
typedef struct
{
kal_bool check_atcmd_type;
// kal_bool check_opid;
// kal_bool check_mccmnc;
kal_bool check_sim_type;
kal_bool check_ims_registered;
kal_bool check_ims_domain;
kal_bool check_roaming_type;
kal_bool check_lte_attached;
kal_bool check_reserved[8];
}nvram_ef_ssds_request_profile_mask_struct;
typedef struct
{
custom_ssds_atcmd_type atcmd_type;
// kal_uint32 op_id;
// kal_char mccmnc[7];
kal_uint8 sim_type;
kal_bool ims_registered;
custom_ssds_ims_domain_type ims_domain;
custom_ssds_roaming_type roaming_type;
kal_bool lte_attached;
kal_uint8 reserved[16];
}nvram_ef_ssds_request_profile_value_struct;
typedef struct
{
/*response*/
custom_ssds_path_type req_path;
}nvram_ef_ssds_request_profile_action_struct;
typedef struct
{
kal_bool is_valid;
nvram_ef_ssds_request_profile_mask_struct mask;
nvram_ef_ssds_request_profile_value_struct value;
nvram_ef_ssds_request_profile_action_struct action;
} nvram_ef_ssds_request_profile_entry_struct;
typedef struct
{
nvram_ef_ssds_request_profile_entry_struct req_path_entry[NVRAM_EF_SSDS_REQUEST_PROFILE_MAX_ENTRY_NUM];
} nvram_ef_ssds_request_profile_struct;
// Size and Total
#define NVRAM_EF_SSDS_REQUEST_PROFILE_TOTAL (1 * NVRAM_DUAL_RECORD)
#define NVRAM_EF_SSDS_REQUEST_PROFILE_SIZE sizeof(nvram_ef_ssds_request_profile_struct) // Size of each record
#endif
#if 1
#define NVRAM_EF_SSDS_RESPONSE_PROFILE_MAX_ENTRY_NUM 16
typedef struct
{
kal_bool check_atcmd_type;
kal_bool check_rsp_id;
// kal_bool check_opid;
// kal_bool check_mccmnc;
kal_bool check_sim_type;
kal_bool check_ims_registered;
kal_bool check_ims_domain;
kal_bool check_roaming_type;
kal_bool check_reserved[8];
}nvram_ef_ssds_response_profile_mask_struct;
typedef struct
{
custom_ssds_atcmd_type atcmd_type;
kal_uint32 rsp_id;
// kal_uint32 op_id;
// kal_char mccmnc[7];
kal_uint8 sim_type;
kal_bool ims_registered;
custom_ssds_ims_domain_type ims_domain;
custom_ssds_roaming_type roaming_type;
kal_uint32 reserved[8];
}nvram_ef_ssds_response_profile_value_struct;
typedef struct
{
/*response*/
custom_ssds_csfb_type rsp_path;
}nvram_ef_ssds_response_profile_action_struct;
typedef struct
{
kal_bool is_valid;
nvram_ef_ssds_response_profile_mask_struct mask;
nvram_ef_ssds_response_profile_value_struct value;
nvram_ef_ssds_response_profile_action_struct action;
} nvram_ef_ssds_response_profile_entry_struct;
typedef struct
{
nvram_ef_ssds_response_profile_entry_struct response_path_entry[NVRAM_EF_SSDS_RESPONSE_PROFILE_MAX_ENTRY_NUM];
} nvram_ef_ssds_response_profile_struct;
// Size and Total
#define NVRAM_EF_SSDS_RESPONSE_PROFILE_TOTAL (1 * NVRAM_DUAL_RECORD)
#define NVRAM_EF_SSDS_RESPONSE_PROFILE_SIZE sizeof(nvram_ef_ssds_response_profile_struct) // Size of each record
#endif
#if 1
#define NVRAM_EF_SSDS_PDN_PROFILE_MAX_ENTRY_NUM 16
typedef struct
{
kal_bool check_atcmd_type;
//kal_bool check_opid;
//kal_bool check_mccmnc;
kal_bool check_sim_type;
kal_bool check_ims_registered;
kal_bool check_ims_domain;
kal_bool check_roaming_type;
kal_bool check_roaming_setting;
kal_bool check_data_setting;
kal_bool check_reserved[8];
}nvram_ef_ssds_pdn_profile_mask_struct;
typedef struct
{
custom_ssds_atcmd_type atcmd_type;
// kal_uint32 op_id;
// kal_char mccmnc[7];
kal_uint8 sim_type;
kal_bool ims_registered;
custom_ssds_ims_domain_type ims_domain;
custom_ssds_roaming_type roaming_type;
kal_bool roaming_setting;
kal_bool data_setting;
kal_uint8 reserved[16];
}nvram_ef_ssds_pdn_profile_value_struct;
typedef struct
{
/*response*/
custom_ssds_pdn_type pdn_path;
}nvram_ef_ssds_pdn_profile_action_struct;
typedef struct
{
kal_bool is_valid;
nvram_ef_ssds_pdn_profile_mask_struct mask;
nvram_ef_ssds_pdn_profile_value_struct value;
nvram_ef_ssds_pdn_profile_action_struct action;
} nvram_ef_ssds_pdn_profile_entry_struct;
typedef struct
{
nvram_ef_ssds_pdn_profile_entry_struct pdn_path_entry[NVRAM_EF_SSDS_PDN_PROFILE_MAX_ENTRY_NUM];
} nvram_ef_ssds_pdn_profile_struct;
// Size and Total
#define NVRAM_EF_SSDS_PDN_PROFILE_TOTAL (1 * NVRAM_DUAL_RECORD)
#define NVRAM_EF_SSDS_PDN_PROFILE_SIZE sizeof(nvram_ef_ssds_pdn_profile_struct) // Size of each record
#endif
#if 1
#define NVRAM_EF_SSDS_PDN_FAIL_PROFILE_MAX_ENTRY_NUM 16
typedef struct
{
kal_bool check_esm_cause;
// kal_bool check_opid;
// kal_bool check_mccmnc;
kal_bool check_sim_type;
kal_bool check_ims_registered;
kal_bool check_ims_domain;
kal_bool check_roaming_type;
kal_bool check_reserved[8];
}nvram_ef_ssds_pdn_fail_profile_mask_struct;
typedef struct
{
kal_uint32 esm_cause;
// kal_uint32 op_id;
// kal_char mccmnc[7];
kal_uint8 sim_type;
kal_bool ims_registered;
custom_ssds_ims_domain_type ims_domain;
custom_ssds_roaming_type roaming_type;
kal_uint8 reserved[16];
}nvram_ef_ssds_pdn_fail_profile_value_struct;
typedef struct
{
/*response*/
custom_ssds_pdn_fail_path_type pdn_fail_path;
}nvram_ef_ssds_pdn_fail_profile_action_struct;
typedef struct
{
kal_bool is_valid;
nvram_ef_ssds_pdn_fail_profile_mask_struct mask;
nvram_ef_ssds_pdn_fail_profile_value_struct value;
nvram_ef_ssds_pdn_fail_profile_action_struct action;
} nvram_ef_ssds_pdn_fail_profile_entry_struct;
typedef struct
{
nvram_ef_ssds_pdn_fail_profile_entry_struct pdn_fail_entry[NVRAM_EF_SSDS_PDN_FAIL_PROFILE_MAX_ENTRY_NUM];
} nvram_ef_ssds_pdn_fail_profile_struct;
// Size and Total
#define NVRAM_EF_SSDS_PDN_FAIL_PROFILE_TOTAL (1 * NVRAM_DUAL_RECORD)
#define NVRAM_EF_SSDS_PDN_FAIL_PROFILE_SIZE sizeof(nvram_ef_ssds_pdn_fail_profile_struct) // Size of each record
#endif
#if 1
#define NVRAM_EF_SSDS_TIMER_VALUE_PROFILE_MAX_ENTRY_NUM 1
typedef struct
{
//kal_bool check_opid;
//kal_bool check_mccmnc;
kal_bool check_reserved[8];
}nvram_ef_ssds_timer_value_profile_mask_struct;
typedef struct
{
//kal_uint32 op_id;
//kal_char mccmnc[7];
kal_uint8 reserved[8];
}nvram_ef_ssds_timer_value_profile_value_struct;
typedef struct
{
/*response*/
kal_uint32 timer_value;
}nvram_ef_ssds_timer_value_profile_action_struct;
typedef struct
{
kal_bool is_valid;
nvram_ef_ssds_timer_value_profile_mask_struct mask;
nvram_ef_ssds_timer_value_profile_value_struct value;
nvram_ef_ssds_timer_value_profile_action_struct action;
} nvram_ef_ssds_timer_value_profile_entry_struct;
typedef struct
{
nvram_ef_ssds_timer_value_profile_entry_struct reuse_pdn_timer_value_entry[NVRAM_EF_SSDS_TIMER_VALUE_PROFILE_MAX_ENTRY_NUM];
nvram_ef_ssds_timer_value_profile_entry_struct disable_ut_timer_value_entry[NVRAM_EF_SSDS_TIMER_VALUE_PROFILE_MAX_ENTRY_NUM];
nvram_ef_ssds_timer_value_profile_entry_struct disable_ut_timer_nw_no_resp_value_entry[NVRAM_EF_SSDS_TIMER_VALUE_PROFILE_MAX_ENTRY_NUM];
} nvram_ef_ssds_timer_value_profile_struct;
// Size and Total
#define NVRAM_EF_SSDS_TIMER_VALUE_PROFILE_TOTAL (1 * NVRAM_DUAL_RECORD)
#define NVRAM_EF_SSDS_TIMER_VALUE_PROFILE_SIZE sizeof(nvram_ef_ssds_timer_value_profile_struct) // Size of each record
#endif
#if 1
#define UNDEF_CONFIG_32 (kal_uint32) 0xFFFFFFFF
#define UNDEF_CONFIG_16 (kal_uint16) 0xFFFF
#define UNDEF_CONFIG_8 (kal_uint8) 0xFF
typedef struct {
kal_uint8 media_tag;
kal_uint8 support_cfnl;
kal_uint8 enable_tmpi;
kal_uint8 xcap_cache;
kal_uint8 support_put_cf_root;
kal_uint8 timer_in_cfnry;
kal_uint8 support_put_clir_root;
kal_uint8 need_quotation_mark;
kal_uint8 ssl_trust;
kal_uint8 gzip_support;
kal_uint8 set_cfnrc_with_cfnl;
kal_uint8 fwd_num_use_sip_uri;
kal_uint8 cb_no_action_allow;
kal_uint8 clear_cache_after_put;
kal_uint8 remove_invalid_actions;
kal_uint8 use_first_xui_element;
kal_uint8 use_saved_xui;
kal_uint8 support_user_name_tmpi;
kal_uint8 support_adding_unprovisioned_rule;
kal_uint8 enable_custom_user_agent_string;
kal_uint8 exclusive_cb;
kal_uint8 support_put_cw_root;
kal_uint8 media_type;
kal_uint8 url_encoding;
kal_uint8 xcap_retry_times;
kal_uint8 gba_retry_times;
kal_uint32 xcap_port;
kal_uint32 gba_port;
kal_uint32 xcap_connection_timeout;
kal_uint32 gba_connection_timeout;
kal_char xcap_protocol[6];
kal_char gba_protocol[6];
kal_char naf_host[128];
kal_char bsf_host[128];
kal_char bsf_url_path[128];
kal_char bsf_realm[128];
kal_char auid[64];
kal_char digest_id[64];
kal_char digest_pwd[64];
kal_char imei_header[64];
kal_char gba_type[7];
kal_char phone_context[64];
kal_char ruleid_cfu[64];
kal_char ruleid_cfb[64];
kal_char ruleid_cfnry[64];
kal_char ruleid_cfnrc[64];
kal_char ruleid_cfnl[64];
kal_char ruleid_baoc[64];
kal_char ruleid_baoic[64];
kal_char ruleid_baoicxh[64];
kal_char ruleid_baic[64];
kal_char ruleid_baicr[64];
kal_char user_agent_prefix[64];
kal_uint8 dns_server_ipv4v6_priority;
} nvram_ef_ssds_xcap_profile_struct;
// Size and Total
#define NVRAM_EF_SSDS_XCAP_PROFILE_SIZE (sizeof(nvram_ef_ssds_xcap_profile_struct))
#define NVRAM_EF_SSDS_XCAP_PROFILE_TOTAL (1 * NVRAM_DUAL_RECORD)
#endif
#if 1
#define NVRAM_EF_SSDS_COMMON_CONFIG_PROFILE_MAX_ENTRY_NUM 1
typedef enum
{
NVRAM_SSDS_REUSE_PDN_TIMER,
NVRAM_SSDS_DISABLE_UT_TIMER,
NVRAM_SSDS_DISABLE_UT_TIMER_MAX
}nvram_ssds_timer_type;
typedef enum
{
NVRAM_SSDS_NEED_SEND_409_ERR_STRING, /*if need to send 409 error string to AP*/
NVRAM_SSDS_NEED_SYNC_CW_IN_234G,
NVRAM_SSDS_NEED_SEND_TEST_CMD,
NVRAM_SSDS_COMMON_CONFIG_MAX
}nvram_ssds_common_config_type;
typedef struct
{
kal_bool is_valid;
kal_bool need_send_409_err_str;
}nvram_ef_ssds_need_send_409_err_str_entry_struct;
typedef struct
{
kal_bool is_valid;
custom_ssds_cw_sync_type need_sync_cw_in_234g;
}nvram_ef_ssds_need_sync_cw_in_234g_entry_struct;
typedef enum
{
CUSTOM_SSDS_SS_REQ_PATH_PS,
CUSTOM_SSDS_SS_REQ_PATH_CS,
CUSTOM_SSDS_SS_REQ_PATH_TB,//terminal based solution
CUSTOM_SSDS_SS_REQ_PATH_NOT_SUPPORT,
CUSTOM_SSDS_SS_REQ_PATH_MAX
}nvram_ssds_req_path_type;
typedef enum
{
CUSTOM_SSDS_USSD_REQ_PATH_CONFIG_IMS_IF_IMS_REGISTERED,//DEFAULTsolution
CUSTOM_SSDS_USSD_REQ_PATH_CONFIG_CS,
CUSTOM_SSDS_USSD_REQ_PATH_CONFIG_IMS,
CUSTOM_SSDS_USSD_REQ_PATH_CONFIG_NOT_SUPPORT
}nvram_ssds_ussd_req_path_config_type;
#if 0
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
typedef struct
{
nvram_ef_ssds_need_send_409_err_str_entry_struct need_send_409_err_str_entry[NVRAM_EF_SSDS_COMMON_CONFIG_PROFILE_MAX_ENTRY_NUM];
nvram_ef_ssds_need_sync_cw_in_234g_entry_struct need_sync_cw_in_234g_entry[NVRAM_EF_SSDS_COMMON_CONFIG_PROFILE_MAX_ENTRY_NUM];
//nvram_ef_ssds_need_need_send_test_cmd_entry_struct need_send_test_cmd_entry[NVRAM_EF_SSDS_COMMON_CONFIG_PROFILE_MAX_ENTRY_NUM];
//new added begin
//SS req path
nvram_ssds_req_path_type cf_path;
nvram_ssds_req_path_type cw_path;
nvram_ssds_req_path_type cb_path;
nvram_ssds_req_path_type clir_path;
nvram_ssds_req_path_type clip_path;
nvram_ssds_req_path_type colp_path;
nvram_ssds_req_path_type colr_path;
//domain selection after rev error code from xcap
kal_uint32 csfb_always_xcap_error_code;
kal_uint32 csfb_once_xcap_error_code;
kal_uint32 no_csfb_xcap_error_code;
//domain selection after pdn fail
//kal_uint32 csfb_always_esm_cause;
//kal_uint32 csfb_once_esm_cause;
//kal_uint32 no_csfb_esm_cause;
//pdn_type
//custom_ssds_pdn_type pdn_path;
//timer value
//kal_uint32 reuse_pdn_timer_value;
kal_uint32 disable_ut_timer_value;
//other config
kal_uint8 need_send_409_err_str;
kal_uint8 need_send_test_cmd;
custom_ssds_cw_sync_type need_sync_cw_in_234g;
//new added end
//USSD config
nvram_ssds_ussd_req_path_config_type ussd_path;
nvram_ssds_ussd_req_path_config_type stk_ussd_path;
}nvram_ef_ssds_common_config_profile_struct;
// Size and Total
#define NVRAM_EF_SSDS_COMMON_CONFIG_PROFILE_TOTAL (1 * NVRAM_DUAL_RECORD)
#define NVRAM_EF_SSDS_COMMON_CONFIG_PROFILE_SIZE sizeof(nvram_ef_ssds_common_config_profile_struct) // Size of each record
#endif
#ifdef __cplusplus
}
#endif /*__cplusplus */
#if 1
typedef enum
{
SSDS_CW_OPERATION_NONE,
SSDS_CW_OPERATION_ENABLE,
SSDS_CW_OPERATION_DISABLE
}nvram_ef_ssds_cw_operation;
typedef struct
{
kal_uint8 saved_imsi[16];
kal_uint8 cw_class;
nvram_ef_ssds_cw_operation cw_operation;
}nvram_ef_ssds_cw_sync_info_struct;
#define NVRAM_EF_SSDS_CW_SYNC_INFO_TOTAL (1 * NVRAM_DUAL_RECORD)
#define NVRAM_EF_SSDS_CW_SYNC_INFO_SIZE sizeof(nvram_ef_ssds_cw_sync_info_struct) // Size of each record
#endif
#endif