| /***************************************************************************** |
| * 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: |
| * --------- |
| * |
| * |
| * Project: |
| * -------- |
| * MAUI |
| * |
| * Description: |
| * ------------ |
| * |
| * |
| * Author: |
| * ------- |
| * |
| * |
| *============================================================================ |
| * HISTORY |
| * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| *------------------------------------------------------------------------------ |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| *------------------------------------------------------------------------------ |
| * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| *============================================================================ |
| ****************************************************************************/ |
| #ifndef __NAS_NVRAM_DEF_H__ |
| #define __NAS_NVRAM_DEF_H__ |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif /* __cplusplus */ |
| |
| |
| #include "nvram_defs.h" |
| #include "nvram_enums.h" |
| #include "ps_public_enum.h" |
| #include "device.h" |
| #include "custom_recovery_timer.h" |
| // LID Enums |
| |
| typedef enum |
| { |
| NVRAM_EF_NWSEL_DATA_LID = NVRAM_LID_GRP_NAS(0), |
| NVRAM_EF_STATIC_APPLMN_LID = NVRAM_LID_GRP_NAS(1), |
| NVRAM_EF_DYNAMIC_APPLMN_LID = NVRAM_LID_GRP_NAS(2), |
| NVRAM_EF_AUX_PLMN_LID = NVRAM_LID_GRP_NAS(3), |
| NVRAM_EF_DDS_INFO_LID = NVRAM_LID_GRP_NAS(4), // Store last data preferred SIM index |
| NVRAM_EF_MM_GMM_REJECT_CAUSE_MAPPING_LID = NVRAM_LID_GRP_NAS(5), // customer store reject cause mapping |
| NVRAM_EF_MM_DISABLE_SRVCC_IE_PLMN_LID = NVRAM_LID_GRP_NAS(6), // disable SRVCC IE PLMN |
| NVRAM_EF_MM_ECC_IMSI_MCC_LIST_LID = NVRAM_LID_GRP_NAS(7), // ECC IMSI MCC LIST |
| NVRAM_EF_NAS_T3346_INFO_LID = NVRAM_LID_GRP_NAS(9), |
| NVRAM_EF_NAS_BLACKLIST_PLMN_LID = NVRAM_LID_GRP_NAS(12), // Store blacklist PLMN |
| NVRAM_EF_NAS_NSA_WHITELIST_PLMN_LID = NVRAM_LID_GRP_NAS(17), // Store NSA whitelist PLMN |
| NVRAM_EF_NAS_LAST_LID = NVRAM_LID_GRP_NAS(63) |
| }nvram_lid_nas_enum; |
| |
| // VERNO |
| #define NVRAM_EF_NWSEL_DATA_LID_VERNO "021" |
| #define NVRAM_EF_STATIC_APPLMN_LID_VERNO "000" |
| #define NVRAM_EF_DYNAMIC_APPLMN_LID_VERNO "000" |
| #define NVRAM_EF_AUX_PLMN_LID_VERNO "000" |
| #define NVRAM_EF_NAS_BLACKLIST_PLMN_LID_VERNO "000" |
| #define NVRAM_EF_DDS_INFO_LID_VERNO "000" // Store last data preferred SIM index |
| #define NVRAM_EF_MM_GMM_REJECT_CAUSE_MAPPING_LID_VERNO "004" |
| #define NVRAM_EF_NAS_T3346_INFO_LID_VERNO "000" |
| #define NVRAM_EF_MM_DISABLE_SRVCC_IE_PLMN_LID_VERNO "000" |
| #define NVRAM_EF_MM_ECC_IMSI_MCC_LIST_LID_VERNO "000" |
| #define NVRAM_EF_NAS_NSA_WHITELIST_PLMN_LID_VERNO "000" |
| |
| // HASH Key |
| #define NVRAM_EF_NWSEL_DATA_LID_HASH 0x6679DA24 |
| #define NVRAM_EF_STATIC_APPLMN_LID_HASH 0x58C549BA |
| #define NVRAM_EF_DYNAMIC_APPLMN_LID_HASH 0x7328C739 |
| #define NVRAM_EF_AUX_PLMN_LID_HASH 0xCAA8BB1C |
| #define NVRAM_EF_NAS_BLACKLIST_PLMN_LID_HASH 0x29953C45 |
| #define NVRAM_EF_DDS_INFO_LID_HASH 0xA98FF2B3 |
| #define NVRAM_EF_MM_GMM_REJECT_CAUSE_MAPPING_LID_HASH 0x83222F90 |
| #define NVRAM_EF_NAS_T3346_INFO_LID_HASH 0xB2CC44E3 |
| #define NVRAM_EF_MM_DISABLE_SRVCC_IE_PLMN_LID_HASH 0x729E8969 |
| #define NVRAM_EF_MM_ECC_IMSI_MCC_LIST_LID_HASH 0xE097C9DD |
| #define NVRAM_EF_NAS_NSA_WHITELIST_PLMN_LID_HASH 0x6BB69F90 |
| |
| /** |
| * NWSEL |
| */ |
| #define MAX_UE_OPLMN_ENTRY_PER_SET 100 |
| #define MAX_UE_OPLMN_SET 3 |
| #define MAX_UE_OPLMN_ENTRY (MAX_UE_OPLMN_ENTRY_PER_SET*MAX_UE_OPLMN_SET) //300 |
| #define MAX_CUSTOM_FPLMN_ENTRY_PER_SET 64 |
| #define MAX_CUSTOM_FPLMN_SET 6 |
| #define MAX_CUSTOM_FPLMN_ENTRY (MAX_CUSTOM_FPLMN_SET*MAX_CUSTOM_FPLMN_ENTRY_PER_SET) |
| #ifdef __MBIM_MS_NETWORK_BLACKLIST__ |
| #define MAX_CUSTOM_BLPLMN_ENTRY MAX_NW_BLACK_LIST |
| #define LENGTH_PLMNACT_IN_EF 5 |
| #define MAX_LENGTH_BLACKLIST_PLMN_DATA (MAX_CUSTOM_BLPLMN_ENTRY*LENGTH_PLMNACT_IN_EF) |
| #endif |
| // rplmn_rat(1)+eplmn_num(1)+eplmn list(96)+csg_previous_rplmn(6)+csg_previous_rplmn_rat(1)+csg_id(4) + recovery_timer(76) + UEPLMN |
| #define NWSEL_ALAL_NUM 6 |
| |
| #ifdef __REL6__ |
| #define EF_MAX_NUM_EQ_PLMN 16 |
| #else |
| #define EF_MAX_NUM_EQ_PLMN 6 |
| #endif |
| |
| #define GMSS_TELE_MPSR_TABLE_SIZE 10 |
| #define GMSS_NV_ITEM_LTE_AVAIL_MAX 20 |
| |
| |
| #define NVRAM_EF_NWSEL_DATA_SIZE (sizeof(nvram_ef_nwsel_data_struct)) |
| #if defined(__DUAL_SIM_PROJECT_SUPPORT_SGLTE_WORLD_PHONE_NVRAM__) |
| #define NVRAM_EF_NWSEL_DATA_TOTAL 4 |
| #else |
| #define NVRAM_EF_NWSEL_DATA_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #endif |
| |
| |
| |
| /** |
| * Static APPLMN List |
| **/ |
| typedef struct |
| { |
| kal_uint8 data[640]; |
| } nvram_ef_static_applmn_struct; |
| |
| #define NVRAM_EF_STATIC_APPLMN_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #define NVRAM_EF_STATIC_APPLMN_SIZE sizeof(nvram_ef_static_applmn_struct) |
| |
| /** |
| * Dynamic APPLMN List |
| **/ |
| typedef struct |
| { |
| kal_uint8 data[160]; |
| } nvram_ef_dynamic_applmn_struct; |
| |
| #define NVRAM_EF_DYNAMIC_APPLMN_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #define NVRAM_EF_DYNAMIC_APPLMN_SIZE sizeof(nvram_ef_dynamic_applmn_struct) |
| /* -------------------------- |
| * End of APPLMN list |
| * --------------------------- */ |
| |
| /** |
| * AUX PLMN |
| **/ |
| typedef struct |
| { |
| kal_uint8 data[7]; |
| } nvram_ef_aux_plmn_struct; |
| |
| #define NVRAM_EF_AUX_PLMN_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #define NVRAM_EF_AUX_PLMN_SIZE sizeof(nvram_ef_aux_plmn_struct) |
| |
| #ifdef __MBIM_MS_NETWORK_BLACKLIST__ |
| /** |
| * Blacklist PLMN |
| **/ |
| typedef struct |
| { |
| kal_uint8 data[MAX_LENGTH_BLACKLIST_PLMN_DATA]; |
| } nvram_ef_nas_blacklist_plmn_struct; |
| |
| #define NVRAM_EF_NAS_BLACKLIST_PLMN_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #define NVRAM_EF_NAS_BLACKLIST_PLMN_SIZE sizeof(nvram_ef_nas_blacklist_plmn_struct) |
| #endif |
| |
| /** |
| *DEFAULT DATA SIM(DDS) INFO |
| **/ |
| typedef struct |
| { |
| kal_uint8 last_dds_sim; |
| kal_uint8 is_mobile_data_enable_present; |
| kal_uint8 is_mobile_data_enable; |
| kal_uint8 is_mobile_data_roaming_enable_present; |
| kal_uint8 is_mobile_data_roaming_enable; |
| }nvram_ef_dds_info_struct; |
| #define NVRAM_EF_DDS_INFO_TOTAL 1 |
| #define NVRAM_EF_DDS_INFO_SIZE sizeof(nvram_ef_dds_info_struct) |
| |
| /** |
| *DEFAULT MM_GMM_REJECT_MAPPING |
| */ |
| #define NVRAM_MM_GMM_REJECT_CAUSE_MAPPING_SIZE 50 |
| |
| typedef struct |
| { |
| kal_uint16 mm_msg; /*MM or GMM reject message*/ |
| kal_uint8 mm_cause; /*Reject cause from peer message*/ |
| kal_uint8 sim_plmn[3]; /*SIM PLMN derived from SIM IMSI*/ |
| kal_uint8 camp_on_plmn[3]; /*Current camped plmn*/ |
| kal_uint8 reserve1; /*Reserved for future use*/ |
| kal_uint8 reserve2; /*Reserved for future use*/ |
| kal_uint8 reserve3; /*Reserved for future use*/ |
| kal_uint8 new_cause_on_hplmn;/*mapped cause if camp on plmn is HPLMN*/ |
| kal_uint8 new_cause_on_vplmn;/*mapped cause if camp on plmn is VPLMN*/ |
| }nvram_mm_gmm_reject_cause_mapping_record_struct; |
| |
| typedef struct |
| { |
| kal_uint8 mm_gmm_cs_ps_rej_max_count[4];/*used for cause#17*/ |
| kal_uint8 mm_gmm_cs_ps_reserved1[4]; |
| kal_uint8 mm_gmm_cs_ps_reserved2[4]; |
| nvram_mm_gmm_reject_cause_mapping_record_struct mapping_table[NVRAM_MM_GMM_REJECT_CAUSE_MAPPING_SIZE]; |
| }nvram_ef_mm_gmm_reject_cause_mapping_struct; |
| |
| #define NVRAM_EF_MM_GMM_REJECT_CAUSE_MAPPING_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #define NVRAM_EF_MM_GMM_REJECT_CAUSE_MAPPING_SIZE sizeof(nvram_ef_mm_gmm_reject_cause_mapping_struct) |
| // Data Structure of Each LID |
| |
| #define NVRAM_EF_NAS_T3346_INFO_SIZE (sizeof(nvram_ef_t3346_timer_info_struct)) |
| #if defined(__DUAL_SIM_PROJECT_SUPPORT_SGLTE_WORLD_PHONE_NVRAM__) |
| #define NVRAM_EF_NAS_T3346_INFO_TOTAL 4 |
| #else |
| #define NVRAM_EF_NAS_T3346_INFO_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #endif |
| |
| |
| /** |
| *DEFAULT MM_DISABLE_SRVCC_IE_PLMN |
| */ |
| #define NVRAM_MM_DISABLE_SRVCC_IE_PLMN_SIZE 10 |
| |
| typedef struct |
| { |
| kal_uint8 plmn[3]; /* Current camped PLMN */ |
| kal_uint8 rat; /* Current RAT */ |
| }nvram_mm_disable_srvcc_ie_plmn_struct; |
| |
| typedef struct |
| { |
| nvram_mm_disable_srvcc_ie_plmn_struct disable_srvcc_table[NVRAM_MM_DISABLE_SRVCC_IE_PLMN_SIZE]; |
| }nvram_ef_mm_disable_srvcc_ie_plmn_struct; |
| |
| #define NVRAM_EF_MM_DISABLE_SRVCC_IE_PLMN_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #define NVRAM_EF_MM_DISABLE_SRVCC_IE_PLMN_SIZE sizeof(nvram_ef_mm_disable_srvcc_ie_plmn_struct) |
| |
| |
| /** |
| * NVRAM_MM_ECC_IMSI_MCC_LIST_LID |
| */ |
| #define NVRAM_MM_ECC_IMSI_MCC_LIST_SIZE 30 |
| |
| typedef struct |
| { |
| kal_uint8 plmn[3]; /* Current camped PLMN */ |
| }nvram_mm_ecc_imsi_mcc_list_struct; |
| |
| typedef struct |
| { |
| nvram_mm_ecc_imsi_mcc_list_struct ecc_imsi_mcc_list_table[NVRAM_MM_ECC_IMSI_MCC_LIST_SIZE]; |
| }nvram_ef_mm_ecc_imsi_mcc_list_struct; |
| |
| #define NVRAM_EF_MM_ECC_IMSI_MCC_LIST_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #define NVRAM_EF_MM_ECC_IMSI_MCC_LIST_SIZE sizeof(nvram_ef_mm_ecc_imsi_mcc_list_struct) |
| |
| /** |
| * NVRAM_EF_NAS_NSA_WHITELIST_PLMN_LID |
| */ |
| #define NVRAM_NAS_NSA_WHITELIST_PLMN_SIZE 300 |
| |
| typedef struct |
| { |
| kal_uint8 plmn[3]; /* NSA PLMN */ |
| }nvram_nas_nsa_whitelist_plmn_struct; |
| |
| typedef struct |
| { |
| kal_uint16 number_of_nsa_whitelist_plmn; |
| nvram_nas_nsa_whitelist_plmn_struct nas_nsa_whitelist_plmn_table[NVRAM_NAS_NSA_WHITELIST_PLMN_SIZE]; |
| }nvram_ef_nas_nsa_whitelist_plmn_struct; |
| |
| #define NVRAM_EF_NAS_NSA_WHITELIST_PLMN_TOTAL (1 * NVRAM_DUAL_RECORD) |
| #define NVRAM_EF_NAS_NSA_WHITELIST_PLMN_SIZE sizeof(nvram_ef_nas_nsa_whitelist_plmn_struct) |
| |
| |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __NAS_NVRAM_DEF_H__ */ |