blob: 2277b43a142b458eb022cf4611e17d5c5cadeea8 [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:
* ---------
*
*
* 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__ */