| /****************************************************************************** |
| * 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) 2007 |
| * |
| * 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: |
| * -------------------------------------------------------- |
| * mrs_gas_capability.h |
| * |
| * Project: |
| * -------------------------------------------------------- |
| * Multimode |
| * |
| * Description: |
| * -------------------------------------------------------- |
| * The GAS capability stored in MRS context. |
| * |
| * Author: |
| * -------------------------------------------------------- |
| * ------- |
| * |
| * -------------------------------------------------------- |
| * $Log$ |
| * |
| * 03 25 2022 jiawei.he |
| * [MOLY00785023] [Gen97] NAS_SV disable GSM through capability update |
| * |
| * . |
| * |
| * 03 22 2022 ot_deeksha.thakre |
| * [MOLY00785023] [Gen97] NAS_SV disable GSM through capability update |
| * |
| * 09 13 2021 ot_deeksha.thakre |
| * [MOLY00682081] md1:(MCU_core0.vpe0.tc0(VPE0)) [Fatal error(buf)] err_code1:0x00000844 err_code2:0x28A1EC34 err_code3:0xCCCCCCCC MD Offender:ERRC |
| * |
| * 05 28 2021 vend_mtb_aritha026 |
| * [MOLY00608949] ??band???? |
| * |
| * [CODE SYNC][NR15.R3.MD700.MP][GAS FDD] |
| * |
| * 10 07 2020 jiawei.he |
| * [MOLY00565617] ¡¾CALL¡¿¡¾H+¡¿¹Ø±Õ»ò´ò¿ªGSM¶ÌÐÅÄÜÁ¦½Ó¿Ú |
| * |
| * . |
| * |
| * 10 07 2020 vend_mtb_aritha019 |
| * [MOLY00565617] ?CALL??H+??????GSM?????? |
| * |
| * 12 09 2019 tanmoy.chatterjee |
| * [MOLY00458503] [CODE SYNC][MH4P-POS] patch request about ALPS04309026 |
| * . |
| * |
| * 12 05 2019 sapna.ks |
| * [MOLY00443892] [CODE SYNC] A5/4 algorithm related |
| * . |
| * |
| * 02 18 2019 nalin.chovatia |
| * [MOLY00384995] [VMOLY] GEMINI 3.0, AFR, Unify Frequency scan, BGSEARCH |
| * .gemini_afr_bg |
| * |
| * 12 06 2018 yenchih.yang |
| * [MOLY00371156] [VMOLY] NRRC-SEARCH check-in. |
| * Fill physical frequency range during Power Scan. |
| * |
| * 08 20 2018 tanmoy.chatterjee |
| * [MOLY00306148] [NAS] pangu giant CR |
| * [GAS_FDD]Capability changes. |
| * |
| * 08 20 2018 rujing.zhao |
| * [MOLY00347128] [Gen97][TDD GAS] feature development check in |
| * .capability update |
| * |
| * 07 02 2018 sapna.ks |
| * [MOLY00336530] [MT3967][Eiger][O1][MP1][Overnight][Shenzhen][4GMM][SWIFT] [Fatal error(buf)] err_code1:0x00000844 err_code2:0x23BEE7E0 err_code3:0xCCCCCCCC |
| * . |
| * |
| * 05 16 2018 sapna.ks |
| * [MOLY00325825] [MT6761][Merlot][O1][MD Static Test][China][Auto]MFBI flags of E-UTRA/UTRA in Mobile station classmark 3 shall be set to True as supported. |
| * . |
| * |
| * 05 10 2018 rujing.zhao |
| * [MOLY00324570] [SMO][UMOLYE][TDD GAS] legacy option cleanup refine |
| * . |
| * |
| * 04 18 2018 nalin.chovatia |
| * [MOLY00320928] [CODE SYNC] ?????ALPS03474129 ???????patch--????P40 android o?? |
| * . black list in UMOLYE |
| * |
| * 04 05 2018 sapna.ks |
| * [MOLY00318108] [MT6765][Cervino][O1][MD Static Test][China][Auto]Bit flag of E-UTRA Wideband RSRQ measurements support should be RAT dependent. |
| * . |
| * |
| * 04 03 2018 sapna.ks |
| * [MOLY00315207] [CODE SYNC] [ES2]VAMOS I & II should be off |
| * . |
| * |
| * 03 13 2018 rujing.zhao |
| * [MOLY00312598] [DSBP] patch back "D-SBP enhancment for all modem" to UMOLYE and TC01.R3.DEV |
| * . |
| * |
| * 01 22 2018 sapna.ks |
| * [MOLY00302832] [CODE SYNC] AT command (+ESCELLINFO) to modem to query serving cell band and arfcn info, when needed. |
| * . |
| * |
| * 06 15 2017 nalin.chovatia |
| * [MOLY00253698] [CODE SYNC] GSM - Extended EARFCN support - NVRAM Changes |
| * .b66 gas |
| * |
| * 04 12 2017 sapna.ks |
| * [MOLY00240270] [6293][Gemini][T+W] Phase 1: Common Interface Changes Check in |
| * . |
| * |
| * 11 11 2016 nalin.chovatia |
| * [MOLY00193300] Porting of NW BAND Info from LR9 to LR11 TC01 |
| * . NBR Band |
| * |
| * 11 09 2016 nalin.chovatia |
| * [MOLY00198865] [Titan] [PLMN] Wrong "revision level indicator " in ATTACH |
| * . UmolyA - Revision Level |
| * |
| * 10 14 2016 wenxing.yao |
| * [MOLY00153524] [6291] Vivo BlackList feature. |
| * |
| * 06 27 2016 chuangde.zhang |
| * [MOLY00186513] Sync code From UMOLY to UMOLYA |
| * . |
| * |
| * 04 19 2016 chuangde.zhang |
| * [MOLY00174834] TDD GAS UT init optimization |
| * . |
| * |
| * 09 18 2015 qingyu.lai |
| * [MOLY00140707] [GAS][PLMN search enhancement II] Search info reuse |
| * . |
| * |
| * 09 18 2015 ming.lee |
| * [MOLY00140707] [GAS][PLMN search enhancement II] Search info reuse |
| * . |
| * |
| * 06 01 2015 henry.lai |
| * [MOLY00092508] [MT6291][LTE-C2K] AS Inter RAT feature |
| * . |
| * |
| * 05 14 2015 ming.lee |
| * [MOLY00113725] [GAS] Dynamic SBP - L2 random fill bit |
| * dynamic SBP l2 random fill bit. |
| * |
| * 05 06 2015 titi.wu |
| * [MOLY00111201] [UMOLY][MRS] According to NVRAM setting, Some fields in Classmark 3 and MS radio capability should sync with setting |
| * . |
| * |
| * 05 05 2015 titi.wu |
| * [MOLY00111201] [UMOLY][MRS] According to NVRAM setting, Some fields in Classmark 3 and MS radio capability should sync with setting |
| * sync CM3 and RACAP. |
| * |
| * 03 24 2015 wenxing.yao |
| * [MOLY00100228] [FDD2TDD] according to TS 24.008 subclause 10.5.5.12a MS. |
| * |
| * 03 16 2015 tangte.lo |
| * [MOLY00079573] according to TS 24.008 subclause 10.5.5.12a MS -add inject instead of compile option |
| * |
| * 03 09 2015 ming.lee |
| * [MOLY00087470] [Universal Bin] FDD GAS developement |
| * . |
| * |
| * 01 15 2015 qingyu.lai |
| * [MOLY00087571] [Universal Bin] TDD GAS developement |
| * __AMRWB_LINK_SUPPORT__ change to __TDD_AMRWB_LINK_SUPPORT__ |
| * |
| * 01 07 2015 qingyu.lai |
| * [MOLY00087571] [Universal Bin] TDD GAS developement |
| * fix build error ra_cap_support_rel |
| * |
| * 01 06 2015 ming.lee |
| * [MOLY00087470] [Universal Bin] FDD GAS developement |
| * .Fix build error |
| * |
| * 01 05 2015 ming.lee |
| * [MOLY00087470] [Universal Bin] FDD GAS developement |
| * mrs_gas_capability.h (power class def) |
| * |
| * 12 31 2014 ming.lee |
| * [MOLY00087470] [Universal Bin] FDD GAS developement |
| * Fix codegen err |
| * |
| * 12 16 2014 qingyu.lai |
| * [MOLY00087571] [Universal Bin] TDD GAS developement |
| * sync fix build error |
| * |
| * 12 15 2014 ming.lee |
| * [MOLY00087470] [Universal Bin] FDD GAS developement |
| * . |
| * |
| * 11 14 2014 tangte.lo |
| * [MOLY00080948] [GAS] MS capability report to R10R11 |
| * [GAS] MS capability report to R10R11 |
| * |
| * 10 15 2014 tangte.lo |
| * [MOLY00080948] [GAS] MS capability report to R10R11 |
| * |
| * 12 11 2013 ming.lee |
| * [MOLY00049166] GAS MRS capability refine |
| * . |
| * |
| * 11 21 2013 ming.lee |
| * [MOLY00047326] [82LTEv1][Pre-SQC]UE can't MO/MT while registered on 2G only |
| * . |
| * |
| * 11 21 2013 ming.lee |
| * [MOLY00047326] [82LTEv1][Pre-SQC]UE can't MO/MT while registered on 2G only |
| * Back out changelist 321857 |
| * |
| * 11 14 2013 james.chan |
| * [MOLY00040522] [GAS] RCS IR enhancement |
| * . |
| * |
| * 10 25 2013 katie.tseng |
| * [MOLY00043400] [MRS] add injection to turn off R8R9 capability in MS RA capability IE |
| * . |
| * |
| * 10 23 2013 james.chan |
| * [MOLY00040050] [MultiMode] Dynamic band selection |
| * |
| * 10 21 2013 james.chan |
| * [MOLY00040050] [MultiMode] Dynamic band selection |
| * . |
| * |
| * 10 18 2013 rujing.zhao |
| * [MOLY00041595] [MT6290E1][MMDS_DC] MMDC feature patch back to MOLY trunk |
| * .GAS part |
| * |
| * 09 26 2013 ming.lee |
| * [MOLY00039142] [MAUItoMOLY][RR] Switch L2 random fill bit and VAMOS capability via NVRAM settting |
| * . |
| * |
| * 05 09 2013 henry.lai |
| * [MOLY00009222] [GAS][Multi-Mode Development] Merge GAS multi-mode development to MOLY |
| * . |
| * |
| * 03 20 2013 henry.lai |
| * [MOLY00009222] [GAS][Multi-Mode Development] Merge GAS multi-mode development to MOLY |
| * . |
| * |
| * 03 18 2013 peng-an.chen |
| * [MOLY00007881] [2G-PS] Deliver R9 modification |
| * . |
| * |
| * 01 22 2013 david.niu |
| * [MOLY00009205] [MRS] Code checked-in for MOLY branch |
| * . |
| * |
| * 01 11 2013 henry.lai |
| * [Henry][Multi-Mode Development] GAS Development and R8 CR Sync |
| * |
| * 09 25 2012 justin.li |
| * NULL |
| * gas capability. |
| * |
| *****************************************************************************/ |
| |
| #ifndef _MRS_GAS_CAPABILITY_H |
| #define _MRS_GAS_CAPABILITY_H |
| |
| #include "mrs_as_inter_core_enum.h" |
| #include "mrs_as_inter_core_struct.h" |
| #include "kal_general_types.h" |
| #include "kal_public_api.h" |
| #include "bitstream.h" |
| #include "l3_inc_enums.h" |
| #include "mrs_as_enums.h" |
| #include "gmss_public.h" |
| #include "as2l4c_struct.h" |
| #include "mrs_as_struct.h" |
| |
| /* Common definition for both FDD and TDD */ |
| #define ADD_CLASSMARK_INFO_IEI 0x20 |
| #define CLASSMARK_2_IEI 0x33 |
| |
| typedef enum |
| { |
| GSM_SMS_CAP_UNKNOWN = 0, |
| GSM_SMS_CAP_ON = 1, |
| GSM_SMS_CAP_OFF = 2 |
| }gsm_sms_cap_enum; |
| |
| |
| /* Common function declaration ********************************************************/ |
| #ifdef __GSM_RAT__ |
| void mrs_gas_get_classmark3 (MRS_SIM_INDEX sim_index, bit_stream *bs_ptr); |
| kal_uint8 mrs_gas_get_classmark3msg_len(MRS_SIM_INDEX sim_index); |
| kal_bool mrs_gas_get_ucs2_support(MRS_SIM_INDEX sim_index); |
| kal_uint8 mrs_gas_get_gsm_algo_support(MRS_SIM_INDEX sim_index); |
| #ifdef __PS_SERVICE__ |
| kal_uint16 mrs_gas_get_radio_access_cap(MRS_SIM_INDEX sim_index, kal_uint8 support_band, kal_uint8 **ra_cap); |
| #endif /* __PS_SERVICE__ */ |
| kal_bool mrs_gas_get_2g3_ps_ho_cap (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| kal_bool mrs_gas_get_2g4_ps_ho_cap (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| kal_bool mrs_gas_band_setting_update(MRS_SIM_INDEX sim_index, kal_uint8 * gsm_band_ptr); |
| #endif /* __GSM_RAT__ */ |
| void mrs_gas_read_nvram_cnf_handler(kal_uint16 nvram_file_id, kal_uint8* data, kal_uint16 len); |
| void mrs_gas_decode_ms_capability(MRS_SIM_INDEX sim_index, bit_stream *bit_stream_ptr, kal_bool is_dynmc_cfg); |
| kal_uint8 *mrs_gas_get_classmark2 (MRS_SIM_INDEX sim_index, MRS_RAT_MODE_TYPE required_rat, kal_bool get_full_ie); |
| void mrs_gas_get_powerclass(MRS_SIM_INDEX sim_index, mrs_gsm_power_class_struct *gsm_pow_class); |
| |
| extern kal_bool rr_mrs_is_arfcn_band_supported(MRS_SIM_INDEX sim_index, kal_uint16 arfcn); |
| extern kal_uint16 rr_mrs_arfcn_PCS_band_tag(kal_uint16 arfcn, kal_uint8 sim_index); |
| |
| kal_bool mrs_gas_retrieve_arfcn_band(MRS_SIM_INDEX sim_index,kal_uint16 arfcn, kal_uint8 *band_ptr); |
| extern kal_bool rr_mrs_get_band_for_arfcn(MRS_SIM_INDEX sim_index, kal_uint16 arfcn,kal_uint8 * gsm_band_ptr); |
| |
| extern void mrs_gas_add_black_cell_list_notification(MRS_SIM_INDEX sim_index); |
| extern void mrs_gas_clear_black_cell_list_notification(MRS_SIM_INDEX sim_index); |
| |
| extern kal_bool mrs_gas_band_setting_update_by_plmn(MRS_SIM_INDEX sim_index, mrs_plmn_id cplmn); |
| extern void mrs_gas_get_gsm_all_supported_band(MRS_SIM_INDEX sim_index, kal_uint8 *gsmbandmask); |
| extern kal_bool mrs_gas_mcc_band_setting_update(MRS_SIM_INDEX sim_index, kal_uint8 * gsm_band_ptr); |
| extern void mrs_gas_band_setting_update_for_OOS (MRS_SIM_INDEX sim_index, kal_uint8 * gsm_band_ptr); |
| |
| extern void mrs_gas_set_gsm_sms_capability(MRS_SIM_INDEX sim_index, kal_bool gsm_sms_cap); |
| extern void mrs_gas_set_gsm_cap_update (MRS_SIM_INDEX sim_index, capability_switch_enum gsm_cap); |
| extern capability_switch_enum mrs_gas_get_gsm_cap_update (MRS_SIM_INDEX sim_index); |
| |
| /************************************************* Begin of TDD's part *************************************************/ |
| |
| #if defined(__UMTS_TDD128_MODE__) || defined(__TDD_MODEM__) || defined(__TDD_2G_OP01__) |
| |
| /************************************************* Begin of TDD's part *************************************************/ |
| |
| |
| /***************************************************************************** |
| * Macros Without Parameters |
| *****************************************************************************/ |
| |
| |
| /***************************************************************************** |
| * Macros With Parameters |
| *****************************************************************************/ |
| /* Define the needed file size kept in NVRAM */ |
| #define TDD_RR_NVRAM_CLK2_LEN 3 |
| /* Peter, 20080804: change the len of classmark3 */ |
| #define TDD_RR_NVRAM_CLK3_LEN 34 |
| #define TDD_RR_NVRAM_READ_CLK_LEN 12 |
| #define TDD_RR_FULL_CLK2_LEN 5 |
| |
| #define TDD_P_GSM_MASK_IN_NVRAM 0x01 |
| #define TDD_E_GSM_MASK_IN_NVRAM 0x02 |
| #define TDD_DCS_1800_MASK_IN_NVRAM 0x04 |
| #define TDD_GSM_480_MASK_IN_NVRAM 0x01 |
| #define TDD_GSM_450_MASK_IN_NVRAM 0x02 |
| |
| /***************************************************************************** |
| * Enums without tags |
| *****************************************************************************/ |
| |
| |
| /***************************************************************************** |
| * Type Definitions |
| *****************************************************************************/ |
| /* Stucture of supported channel modes */ |
| typedef struct |
| { |
| kal_uint8 is_signalling_supp; |
| kal_uint8 is_speech_full_or_half_ver_1_supp; |
| kal_uint8 is_speech_full_or_half_ver_2_supp; |
| kal_uint8 is_speech_full_or_half_ver_3_supp; |
| /* ZY: add for AMR-WB */ |
| #ifdef __TDD_AMRWB_LINK_SUPPORT__ |
| kal_uint8 is_speech_full_or_half_ver_4_supp; |
| kal_uint8 is_speech_full_or_half_ver_5_supp; |
| #endif /* __TDD_AMRWB_LINK_SUPPORT__ */ |
| kal_uint8 is_data_43_5_dl_or_14_5_ul_supp; |
| kal_uint8 is_data_29_0_dl_or_14_5_ul_supp; |
| kal_uint8 is_data_43_5_dl_or_29_0_ul_supp; |
| kal_uint8 is_data_14_5_dl_or_43_5_ul_supp; |
| kal_uint8 is_data_14_5_dl_or_29_0_ul_supp; |
| kal_uint8 is_data_29_0_dl_or_43_5_ul_supp; |
| kal_uint8 is_data_43_5_radio_intf_rate_supp; |
| kal_uint8 is_data_32_0_radio_intf_rate_supp; |
| kal_uint8 is_data_29_0_radio_intf_rate_supp; |
| kal_uint8 is_data_14_5_radio_intf_rate_supp; |
| kal_uint8 is_data_12_0_radio_intf_rate_supp; |
| kal_uint8 is_data_06_0_radio_intf_rate_supp; |
| kal_uint8 is_data_03_6_radio_intf_rate_supp; |
| kal_uint8 is_half_rate_supp; |
| |
| } |
| tdd_channel_mode_supported_struct; |
| |
| typedef struct |
| { |
| kal_uint8 access_tech[16]; |
| kal_uint8 power_cap[16]; |
| kal_uint8 hscsd_multi_slot_class; |
| kal_uint8 gprs_multi_slot_class; |
| kal_uint8 pseudo_sync_cap; |
| kal_uint8 vbs; |
| kal_uint8 vgcs; |
| kal_uint8 algo_supported; |
| kal_uint8 hscsd_multi_slot_class_present; |
| kal_uint8 gprs_multi_slot_class_present; |
| kal_uint8 revision_level_indicator; |
| kal_uint8 gprs_ext_dynamic_cap; |
| kal_uint8 gea_supported; |
| kal_uint8 sm_cap_gprs; |
| kal_uint8 pfc_mode; |
| |
| kal_bool early_class_mark_support; |
| kal_uint8 mm_non_drx_timer_value; |
| tdd_channel_mode_supported_struct chl_mode_supported; /* struct of supported channel modes */ |
| |
| /* Evelyn 20080909 */ |
| /* Lanslo 20050215: for selecting GPRS or EGPRS capability */ |
| #ifdef __EGPRS_MODE__ |
| kal_uint8 egprs_multi_slot_class_present; |
| kal_uint8 egprs_multi_slot_class; |
| kal_uint8 egprs_ext_dynamic_cap; |
| //Jelly 20090602 Use __EPSK_TX__ |
| /* Evelyn 20090422: set difference power class of 8PSK */ |
| #ifdef __EPSK_TX__ |
| kal_uint8 power_cap_8psk[16]; |
| #endif /* __EPSK_TX__ */ |
| #endif /* __EGPRS_MODE__ */ |
| |
| /* Evelyn 20090905: Modify for High multislot class */ |
| #if defined (__MULTISLOT_CLASS_34__) || defined (__MULTISLOT_CLASS_45__) |
| kal_uint8 high_multi_slot_class_present; |
| kal_uint8 high_multi_slot_class; |
| #endif |
| /* eo Lanslo */ |
| } tdd_ms_capability_from_mrs_struct; |
| |
| /* The structure is defined here, but the variables are stored in rr_cntx_info. |
| Because they are obtained from RATCM initialization procedure, not MRS .*/ |
| typedef struct { |
| kal_uint8 non_drx_timer; |
| kal_uint8 split_on_ccch; |
| kal_uint16 split_pg_cycle; |
| } tdd_ms_capability_from_nas_struct; |
| |
| typedef struct { |
| access_technology_type_enum serving_band; |
| kal_uint8 band_indicator; |
| kal_uint16 arfcn; |
| kal_uint8 bsic; |
| kal_uint8 msc_r; |
| rr_mm_sgsnr_flag_enum sgsn_r; |
| } tdd_gas_serving_cell_info_struct; |
| |
| typedef struct{ |
| mrs_gsm_power_class_enum pow_class_band450; |
| mrs_gsm_power_class_enum pow_class_band480; |
| mrs_gsm_power_class_enum pow_class_band710; |
| mrs_gsm_power_class_enum pow_class_band750; |
| mrs_gsm_power_class_enum pow_class_band810; |
| mrs_gsm_power_class_enum pow_class_band850; |
| mrs_gsm_power_class_enum pow_class_band900P; |
| mrs_gsm_power_class_enum pow_class_band900E; |
| mrs_gsm_power_class_enum pow_class_band900R; |
| mrs_gsm_power_class_enum pow_class_band1800; |
| mrs_gsm_power_class_enum pow_class_band1900; |
| }tdd_mrs_gsm_power_class_struct; |
| |
| |
| typedef struct { |
| |
| tdd_ms_capability_from_mrs_struct ms_capability; |
| kal_uint8 ms_classmark3_len; /* The bit length of Classmark3 */ |
| kal_uint8 ms_classmark3_R98_len; /* The bit length of Classmark3 when MS supports Release 98 */ |
| kal_uint8 ms_default_classmark2[TDD_RR_NVRAM_CLK2_LEN]; /* read from nvram and has been decoded as power on */ |
| kal_uint8 ms_classmark2[TDD_RR_NVRAM_CLK2_LEN]; |
| kal_uint8 ms_full_classmark2[TDD_RR_FULL_CLK2_LEN]; |
| kal_uint8 ms_classmark3[TDD_RR_NVRAM_CLK3_LEN]; |
| rat_enum rat_mode; |
| /* GSM supported band */ |
| kal_uint8 gsm_supported_band; |
| kal_bool is_test_sim; |
| tdd_gas_serving_cell_info_struct serving_cell_info; |
| |
| #ifdef __LTE_RAT__ |
| capability_switch_enum eutran_cap; |
| #endif /* __LTE_RAT__ */ |
| |
| #ifdef __UMTS_FDD_MODE__ |
| /* record the bit location for UMTS FDD RAT Capibility; this bit |
| * is set to 1 only when the MS is in GSM+UMTS dual mode |
| */ |
| kal_uint8 cm3_umts_fdd_bit_location; |
| #endif /* __UMTS_FDD_MODE__ */ |
| |
| #ifdef __UMTS_TDD128_MODE__ |
| /* record the bit location for UMTS TDD RAT Capibility; |
| * this bit is set to 1 only when the MS is in GSM+UMTS dual mode |
| */ |
| kal_uint8 cm3_umts_tdd_bit_location; |
| #endif /* __UMTS_TDD128_MODE__ */ |
| |
| /* record the bit location for VAMOS level setting. */ |
| kal_uint8 cm3_vamos_bit_location; |
| kal_uint8 inject_vamos; |
| kal_uint8 vamos_level_from_nvram; |
| |
| #ifdef __GERAN_R8__ |
| /* record the bit location for R8 Capibility; |
| * this bit is set to 1 only when the MS is in GSM+LTE |
| * dual mode or GSM+UMTS+LTE triple mode |
| */ |
| kal_uint8 cm3_r8_bit_location; |
| #endif /* __GERAN_R8__ */ |
| |
| #if defined(__GERAN_R9__) |
| /* record the bit length for R9 Capibility; |
| * used to change classmark3 len for force r9 feature |
| */ |
| kal_uint8 ms_classmark3_R9_len; |
| #endif /* defined(__GERAN_R9__) */ |
| |
| #if defined(__EGPRS_MODE__) |
| kal_bool is_epsk_tx_enabled; |
| #endif |
| |
| #ifdef __AGPS_CONTROL_PLANE__ |
| kal_bool agps_supported_in_clk; |
| #endif /* __AGPS_CONTROL_PLANE__ */ |
| |
| #ifdef __PS_SERVICE__ |
| kal_bool inject_ra_cap_normal_coding; |
| /* Katie 20130304: add inject to turn off R8R9 capability for CRTUG 44.2.10 */ |
| /* TangTe 20140929 change inject_ra_cap_turn_R8R9_off into inject_ra_cap_support_rel, |
| default value:255, the value will represent the release version*/ |
| kal_uint8 inject_ra_cap_support_rel; |
| /* Wenxing FDD2TDD 20150313 add for report 2G capability(Access technology tepe and RF power Capability) when 3G only*/ |
| kal_bool inject_2g_cap_in_3gonly; |
| #endif /* __PS_SERVICE__ */ |
| |
| /* store the nvram CLK in context to allow set gas band without reboot */ |
| kal_uint8 *ms_classmark_in_nvram_ptr; |
| kal_uint8 ms_classmark_in_nvram_len; |
| |
| /* This variable hold enable or disable of MT SMS capability set through AT cmd */ |
| gsm_sms_cap_enum gsm_sms_capability; |
| capability_switch_enum gsm_cap; |
| } tdd_gas_capability_context_struct; |
| |
| /***************************************************************************** |
| * Declarations Of Exported Globals |
| *****************************************************************************/ |
| #ifdef __GSM_RAT__ |
| void tdd_mrs_gas_init_contx_default_value(void); |
| |
| extern void tdd_mrs_gas_reset(void); |
| |
| extern void tdd_mrs_gas_get_ms_capability(MRS_SIM_INDEX sim_index, tdd_gas_capability_context_struct *gas_ms_cap_ptr); |
| |
| extern kal_uint8 *tdd_mrs_gas_get_classmark1 (MRS_SIM_INDEX sim_index, MRS_RAT_MODE_TYPE required_rat); |
| |
| extern void tdd_mrs_gas_get_classmark3 (MRS_SIM_INDEX sim_index, bit_stream *bs_ptr); |
| |
| extern kal_uint8 tdd_mrs_gas_get_classmark3msg_len(MRS_SIM_INDEX sim_index); |
| |
| extern kal_bool tdd_mrs_gas_get_ucs2_support(MRS_SIM_INDEX sim_index); |
| |
| extern void tdd_mrs_gas_set_sim_type(MRS_SIM_INDEX sim_index, kal_bool is_test_sim); |
| |
| extern kal_uint8 tdd_mrs_gas_get_gsm_algo_support(MRS_SIM_INDEX sim_index); |
| |
| #ifdef __PS_SERVICE__ |
| extern kal_uint8 tdd_mrs_gas_get_radio_access_cap (MRS_SIM_INDEX sim_index, kal_uint8 support_band, kal_uint8 **ra_cap); |
| extern kal_uint8 tdd_mrs_mac_get_radio_access_cap(MRS_SIM_INDEX sim_index, kal_uint8 support_band, kal_uint8 **ra_cap, kal_bool *is_truncated, const kal_bool is_exclude_A5, const kal_uint8 bit_len_limit); |
| #endif /* __PS_SERVICE__ */ |
| |
| extern kal_bool tdd_mrs_gas_get_2g3_ps_ho_cap (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| extern kal_bool tdd_mrs_gas_get_2g4_ps_ho_cap (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| extern kal_bool tdd_mrs_gas_get_ir_srvcc_cap (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| extern void tdd_mrs_gas_update_serving_cell_info(MRS_SIM_INDEX sim_index, tdd_gas_serving_cell_info_struct serving_cell_info); |
| |
| extern void tdd_mrs_gas_update_current_rat_mode(MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| extern kal_bool tdd_mrs_gas_validate_arfcn(MRS_SIM_INDEX sim_index, kal_uint16 arfcn, te_gsm_band_indicator band_indicator); |
| |
| extern kal_bool tdd_mrs_gas_band_setting_update(MRS_SIM_INDEX sim_index, kal_uint8 * gsm_band_ptr); |
| |
| #endif /* __GSM_RAT__ */ |
| |
| #ifdef __LTE_RAT__ |
| |
| extern void tdd_mrs_gas_update_disable_eutran_cap(MRS_SIM_INDEX sim_index, capability_switch_enum eutran_cap); |
| |
| #endif /* __LTE_RAT__ */ |
| |
| void tdd_mrs_gas_read_nvram_cnf_handler(kal_uint16 nvram_file_id, kal_uint8* data, kal_uint16 len); |
| |
| extern void tdd_mrs_gas_decode_mscap_from_nvram(MRS_SIM_INDEX sim_index, kal_uint8 *bit_ptr); |
| |
| extern void tdd_mrs_gas_decode_ms_capability(MRS_SIM_INDEX sim_index, bit_stream *bit_stream_ptr, kal_bool is_dynmc_cfg); |
| |
| extern kal_bool tdd_mrs_gas_is_R99_supported_in_CS(MRS_SIM_INDEX sim_index); |
| |
| extern kal_bool tdd_mrs_gas_is_R99_supported_in_PS(MRS_SIM_INDEX sim_index); |
| |
| extern kal_uint8 *tdd_mrs_gas_get_classmark2 (MRS_SIM_INDEX sim_index, MRS_RAT_MODE_TYPE required_rat, kal_bool get_full_ie); |
| |
| extern void tdd_mrs_gas_get_powerclass(MRS_SIM_INDEX sim_index, tdd_mrs_gsm_power_class_struct *gsm_pow_class); |
| |
| extern void tdd_mrs_gas_add_black_cell_list_notification(void); |
| |
| extern void tdd_mrs_gas_clear_black_cell_list_notification(void); |
| |
| extern kal_bool tdd_mrs_gas_retrieve_arfcn_band(MRS_SIM_INDEX sim_index,kal_uint16 arfcn, kal_uint8 *band_ptr); |
| #ifndef __MTK_TARGET__ |
| extern void mrs_init_tdd_gas_ut_capability(MRS_SIM_INDEX sim_index); |
| #endif |
| |
| extern kal_uint8 tdd_mrs_gas_get_vamos_level_setting(MRS_SIM_INDEX sim_index); |
| |
| extern void tdd_mrs_set_gsm_sms_capability(MRS_SIM_INDEX sim_index, kal_bool gsm_sms_cap); |
| extern void tdd_mrs_gas_set_gsm_cap_update(MRS_SIM_INDEX sim_index, capability_switch_enum gsm_cap); |
| extern capability_switch_enum tdd_mrs_gas_get_gsm_cap_update(MRS_SIM_INDEX sim_index); |
| extern kal_bool tdd_mrs_gas_gsm_enabled (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| |
| /************************************************** End of TDD's part **************************************************/ |
| |
| #endif /* defined(__UMTS_TDD128_MODE__) || defined(__TDD_MODEM__) */ |
| |
| /************************************************* Begin of FDD's part *************************************************/ |
| |
| /***************************************************************************** |
| * Macros Without Parameters |
| *****************************************************************************/ |
| /* Define the needed file size kept in NVRAM */ |
| #define FDD_RR_NVRAM_CLK2_LEN 3 |
| /* Peter, 20080804: change the len of classmark3 */ |
| #define FDD_RR_NVRAM_CLK3_LEN 34 |
| #define FDD_RR_NVRAM_READ_CLK_LEN 12 |
| #define FDD_RR_FULL_CLK2_LEN 5 |
| |
| #define FDD_P_GSM_MASK_IN_NVRAM 0x01 |
| #define FDD_E_GSM_MASK_IN_NVRAM 0x02 |
| #define FDD_DCS_1800_MASK_IN_NVRAM 0x04 |
| #define FDD_GSM_480_MASK_IN_NVRAM 0x01 |
| #define FDD_GSM_450_MASK_IN_NVRAM 0x02 |
| |
| #define DISABLE_A54_CIPHER_ALGO 0xF7 |
| |
| /* |
| mrs_gas_band_setting_update_for_OOS() essentially does same thing as |
| mrs_gas_reset_band_settings(). mrs_gas_band_setting_update_for_OOS()function |
| is retained as this is ported from of MCC based band update feature |
| */ |
| #define mrs_gas_reset_band_settings mrs_gas_band_setting_update_for_OOS |
| #define mrs_gas_update_gsm_band_setting mrs_gas_band_setting_update_for_OOS |
| |
| /***************************************************************************** |
| * Macros With Parameters |
| *****************************************************************************/ |
| |
| |
| /***************************************************************************** |
| * Enums without tags |
| *****************************************************************************/ |
| #ifdef __A5_3_AND_GEA_WHILTE_LIST__ |
| |
| typedef enum |
| { |
| DEFAULT_VALUE = 0, |
| PLMN_MATCHED = 1, |
| PLMN_NOT_MATCHED = 2 |
| }plmn_match_enum; |
| |
| #endif |
| |
| /***************************************************************************** |
| * Type Definitions |
| *****************************************************************************/ |
| /* Stucture of supported channel modes */ |
| typedef struct |
| { |
| kal_uint8 is_signalling_supp; |
| kal_uint8 is_speech_full_or_half_ver_1_supp; |
| kal_uint8 is_speech_full_or_half_ver_2_supp; |
| kal_uint8 is_speech_full_or_half_ver_3_supp; |
| /* ZY: add for AMR-WB */ |
| #ifdef __AMRWB_LINK_SUPPORT__ |
| kal_uint8 is_speech_full_or_half_ver_4_supp; |
| kal_uint8 is_speech_full_or_half_ver_5_supp; |
| #endif /* __AMRWB_LINK_SUPPORT__ */ |
| kal_uint8 is_data_43_5_dl_or_14_5_ul_supp; |
| kal_uint8 is_data_29_0_dl_or_14_5_ul_supp; |
| kal_uint8 is_data_43_5_dl_or_29_0_ul_supp; |
| kal_uint8 is_data_14_5_dl_or_43_5_ul_supp; |
| kal_uint8 is_data_14_5_dl_or_29_0_ul_supp; |
| kal_uint8 is_data_29_0_dl_or_43_5_ul_supp; |
| kal_uint8 is_data_43_5_radio_intf_rate_supp; |
| kal_uint8 is_data_32_0_radio_intf_rate_supp; |
| kal_uint8 is_data_29_0_radio_intf_rate_supp; |
| kal_uint8 is_data_14_5_radio_intf_rate_supp; |
| kal_uint8 is_data_12_0_radio_intf_rate_supp; |
| kal_uint8 is_data_06_0_radio_intf_rate_supp; |
| kal_uint8 is_data_03_6_radio_intf_rate_supp; |
| kal_uint8 is_half_rate_supp; |
| }fdd_channel_mode_supported_struct; |
| |
| typedef struct |
| { |
| kal_uint8 access_tech[16]; |
| kal_uint8 power_cap[16]; |
| kal_uint8 hscsd_multi_slot_class; |
| kal_uint8 gprs_multi_slot_class; |
| kal_uint8 pseudo_sync_cap; |
| kal_uint8 vbs; |
| kal_uint8 vgcs; |
| kal_uint8 algo_supported; |
| kal_uint8 hscsd_multi_slot_class_present; |
| kal_uint8 gprs_multi_slot_class_present; |
| kal_uint8 revision_level_indicator; |
| kal_uint8 gprs_ext_dynamic_cap; |
| kal_uint8 gea_supported; |
| kal_uint8 sm_cap_gprs; |
| kal_uint8 pfc_mode; |
| |
| kal_bool early_class_mark_support; |
| kal_uint8 mm_non_drx_timer_value; |
| fdd_channel_mode_supported_struct chl_mode_supported; /* struct of supported channel modes */ |
| |
| /* Evelyn 20080909 */ |
| /* Lanslo 20050215: for selecting GPRS or EGPRS capability */ |
| #ifdef __EGPRS_MODE__ |
| kal_uint8 egprs_multi_slot_class_present; |
| kal_uint8 egprs_multi_slot_class; |
| kal_uint8 egprs_ext_dynamic_cap; |
| //Jelly 20090602 Use __EPSK_TX__ |
| /* Evelyn 20090422: set difference power class of 8PSK */ |
| #ifdef __EPSK_TX__ |
| kal_uint8 power_cap_8psk[16]; |
| #endif /* __EPSK_TX__ */ |
| #endif /* __EGPRS_MODE__ */ |
| |
| /* Evelyn 20090905: Modify for High multislot class */ |
| #if defined (__MULTISLOT_CLASS_34__) || defined (__MULTISLOT_CLASS_45__) |
| kal_uint8 high_multi_slot_class_present; |
| kal_uint8 high_multi_slot_class; |
| #endif |
| /* eo Lanslo */ |
| |
| kal_uint8 gmsk_multislot_power_profile; |
| kal_uint8 eightpsk_multislot_power_profile; |
| kal_uint8 downlink_advanced_receiver_performance; |
| |
| #ifdef __GERAN_R11__ |
| kal_uint8 extended_earfcn; |
| kal_uint8 eutran_wb_rsrq; |
| kal_uint8 umts_mfbi; |
| kal_uint8 eutra_mfbi; |
| #endif /* __GERAN_R11__ */ |
| |
| #ifdef __A5_3_AND_GEA_WHILTE_LIST__ |
| kal_uint8 a5_default_supported; |
| kal_uint8 gea_default_supported; |
| #endif /* __A5_3_AND_GEA_WHILTE_LIST__ */ |
| #ifdef __VAMOS_CUSTOM_CONFIG__ |
| kal_uint8 vamos_level_from_custom_config; |
| #endif |
| |
| } fdd_ms_capability_from_mrs_struct; |
| |
| /* The structure is defined here, but the variables are stored in rr_cntx_info. |
| Because they are obtained from RATCM initialization procedure, not MRS .*/ |
| typedef struct { |
| kal_uint8 non_drx_timer; |
| kal_uint8 split_on_ccch; |
| kal_uint16 split_pg_cycle; |
| } fdd_ms_capability_from_nas_struct; |
| |
| typedef struct { |
| access_technology_type_enum serving_band; |
| kal_uint8 band_indicator; |
| kal_uint16 arfcn; |
| kal_uint8 bsic; |
| kal_uint8 msc_r; |
| rr_mm_sgsnr_flag_enum sgsn_r; |
| } fdd_gas_serving_cell_info_struct; |
| |
| typedef struct { |
| mrs_gsm_power_class_enum pow_class_band450; |
| mrs_gsm_power_class_enum pow_class_band480; |
| mrs_gsm_power_class_enum pow_class_band710; |
| mrs_gsm_power_class_enum pow_class_band750; |
| mrs_gsm_power_class_enum pow_class_band810; |
| mrs_gsm_power_class_enum pow_class_band850; |
| mrs_gsm_power_class_enum pow_class_band900P; |
| mrs_gsm_power_class_enum pow_class_band900E; |
| mrs_gsm_power_class_enum pow_class_band900R; |
| mrs_gsm_power_class_enum pow_class_band1800; |
| mrs_gsm_power_class_enum pow_class_band1900; |
| } fdd_mrs_gsm_power_class_struct; |
| |
| |
| typedef struct { |
| fdd_ms_capability_from_mrs_struct ms_capability; |
| kal_uint8 ms_classmark3_len; /* The bit length of Classmark3 */ |
| kal_uint8 ms_classmark3_R98_len; /* The bit length of Classmark3 when MS supports Release 98 */ |
| kal_uint8 ms_default_classmark2[FDD_RR_NVRAM_CLK2_LEN]; /* read from nvram and has been decoded as power on */ |
| kal_uint8 ms_classmark2[FDD_RR_NVRAM_CLK2_LEN]; |
| kal_uint8 ms_full_classmark2[FDD_RR_FULL_CLK2_LEN]; |
| kal_uint8 ms_classmark3[FDD_RR_NVRAM_CLK3_LEN]; |
| rat_enum rat_mode; |
| /* GSM supported band */ |
| kal_uint8 gsm_supported_band; |
| kal_bool is_test_sim; |
| fdd_gas_serving_cell_info_struct serving_cell_info; |
| #ifdef __UMTS_RAT__ |
| capability_switch_enum umts_cap; |
| #endif /* __UMTS_RAT__ */ |
| capability_switch_enum gsm_cap; |
| |
| #ifdef __LTE_RAT__ |
| capability_switch_enum eutran_cap; |
| #endif /* __LTE_RAT__ */ |
| |
| #ifdef __UMTS_FDD_MODE__ |
| /* record the bit location for UMTS FDD RAT Capibility; this bit |
| * is set to 1 only when the MS is in GSM+UMTS dual mode |
| */ |
| kal_uint8 cm3_umts_fdd_bit_location; |
| #endif /* __UMTS_FDD_MODE__ */ |
| |
| /* record the bit location for VAMOS level setting. */ |
| kal_uint8 cm3_vamos_bit_location; |
| kal_uint8 inject_vamos; |
| kal_uint8 vamos_level_from_nvram; |
| |
| #ifdef __GERAN_R8__ |
| /* record the bit location for R8 Capibility; |
| * this bit is set to 1 only when the MS is in GSM+LTE |
| * dual mode or GSM+UMTS+LTE triple mode |
| */ |
| kal_uint8 cm3_r8_bit_location; |
| #endif /* __GERAN_R8__ */ |
| |
| #ifdef __GERAN_R9__ |
| kal_uint8 cm3_r9_csg_bit_location; |
| #endif /* __GERAN_R9__ */ |
| |
| /* Extended EARFCN is late addition to Rel 11 also 44.018 and 44.060 spec has this feature in REL11, */ |
| /*So right now keep code change under __GERAN_R11__, if needed in future, change to __GERAN_R12__*/ |
| #ifdef __GERAN_R11__ |
| kal_uint8 cm3_r12_extended_earfcn_bit_location; |
| kal_uint8 cm3_r11_eutra_wb_rsrq_location; |
| kal_uint8 cm3_r12_umts_mfbi_bit_location; |
| kal_uint8 cm3_r12_eutra_mfbi_bit_location; |
| #endif /* __GERAN_R11__ */ |
| |
| #if defined(__EGPRS_MODE__) |
| kal_bool is_epsk_tx_enabled; |
| #endif |
| |
| #ifdef __AGPS_CONTROL_PLANE__ |
| kal_bool agps_supported_in_clk; |
| #endif /* __AGPS_CONTROL_PLANE__ */ |
| |
| #ifdef __PS_SERVICE__ |
| kal_bool inject_ra_cap_normal_coding; |
| /* Katie 20130304: add inject to turn off R8R9 capability for CRTUG 44.2.10 */ |
| /* TangTe 20140929 change inject_ra_cap_turn_R8R9_off into inject_ra_cap_support_rel, |
| default value:255, the value will represent the release version*/ |
| kal_uint8 inject_ra_cap_support_rel; |
| /* TangTe 02150313 add for report 2G capability(Access technology tepe and RF power Capability) when 3G only*/ |
| kal_bool inject_2g_cap_in_3gonly; |
| #endif /* __PS_SERVICE__ */ |
| |
| /* store the nvram CLK in context to allow set gas band without reboot */ |
| kal_uint8 *ms_classmark_in_nvram_ptr; |
| kal_uint8 ms_classmark_in_nvram_len; |
| |
| #ifdef __NR_RAT__ |
| capability_switch_enum nr_cap; |
| #endif /* __NR_RAT__ */ |
| |
| /* This Context variable will contain gsm AS and HW supported band */ |
| kal_uint8 gsm_all_supported_band; |
| |
| /* This variable hold enable or disable of MT SMS capability set through AT cmd */ |
| gsm_sms_cap_enum gsm_sms_capability; |
| |
| } fdd_gas_capability_context_struct; |
| |
| /***************************************************************************** |
| * Declarations Of Exported Globals |
| *****************************************************************************/ |
| #ifdef __GSM_RAT__ |
| void fdd_mrs_gas_init_contx_default_value(void); |
| |
| extern void fdd_mrs_gas_reset(void); |
| |
| extern void fdd_mrs_gas_get_ms_capability(MRS_SIM_INDEX sim_index, fdd_gas_capability_context_struct *gas_ms_cap_ptr); |
| |
| extern kal_uint8 *fdd_mrs_gas_get_classmark1 (MRS_SIM_INDEX sim_index, MRS_RAT_MODE_TYPE required_rat); |
| |
| extern void fdd_mrs_gas_get_classmark3 (MRS_SIM_INDEX sim_index, bit_stream *bs_ptr); |
| |
| extern kal_uint8 fdd_mrs_gas_get_classmark3msg_len(MRS_SIM_INDEX sim_index); |
| |
| extern kal_bool fdd_mrs_gas_get_ucs2_support(MRS_SIM_INDEX sim_index); |
| |
| extern void fdd_mrs_gas_set_sim_type(MRS_SIM_INDEX sim_index, kal_bool is_test_sim); |
| |
| extern kal_uint8 fdd_mrs_gas_get_gsm_algo_support(MRS_SIM_INDEX sim_index); |
| |
| #ifdef __PS_SERVICE__ |
| extern kal_uint16 fdd_mrs_gas_get_radio_access_cap (MRS_SIM_INDEX sim_index, kal_uint8 support_band, kal_uint8 **ra_cap); |
| extern kal_uint16 fdd_mrs_mac_get_radio_access_cap(MRS_SIM_INDEX sim_index, kal_uint8 support_band, kal_uint8 **ra_cap, kal_bool *is_truncated, const kal_bool is_exclude_A5, const kal_uint8 bit_len_limit); |
| #endif /* __PS_SERVICE__ */ |
| |
| extern kal_bool fdd_mrs_gas_get_2g3_ps_ho_cap (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| extern kal_bool fdd_mrs_gas_get_2g4_ps_ho_cap (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| extern kal_bool fdd_mrs_gas_get_ir_srvcc_cap (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| extern void fdd_mrs_gas_update_serving_cell_info(MRS_SIM_INDEX sim_index, fdd_gas_serving_cell_info_struct serving_cell_info); |
| |
| extern void fdd_mrs_gas_update_current_rat_mode(MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| extern kal_bool fdd_mrs_gas_validate_arfcn(MRS_SIM_INDEX sim_index, kal_uint16 arfcn, te_gsm_band_indicator band_indicator); |
| |
| extern kal_bool fdd_mrs_gas_band_setting_update(MRS_SIM_INDEX sim_index, kal_uint8 * gsm_band_ptr); |
| |
| extern gsm_nw_band_enum fdd_mrs_gas_get_l4c_band_bitmap_from_arfcn (MRS_SIM_INDEX sim_index, kal_uint16 arfcn, te_gsm_band_indicator band_indicator); |
| |
| extern gsm_nw_band_enum rr_mrs_get_l4c_gsm_bandbitmap_from_arfcn(MRS_SIM_INDEX sim_index, kal_uint16 arfcn); |
| |
| #endif /* __GSM_RAT__ */ |
| |
| #ifdef __LTE_RAT__ |
| |
| extern void fdd_mrs_gas_update_disable_eutran_cap(MRS_SIM_INDEX sim_index, capability_switch_enum eutran_cap); |
| extern void fdd_mrs_setLTEBand(kal_uint32 lte_band, kal_uint16* lte_nbr_band_list); |
| |
| #endif /* __LTE_RAT__ */ |
| |
| void fdd_mrs_gas_read_nvram_cnf_handler(kal_uint16 nvram_file_id, kal_uint8* data, kal_uint16 len); |
| |
| extern void fdd_mrs_gas_decode_mscap_from_nvram(MRS_SIM_INDEX sim_index, kal_uint8 *bit_ptr); |
| |
| extern void fdd_mrs_gas_decode_ms_capability(MRS_SIM_INDEX sim_index, bit_stream *bit_stream_ptr, kal_bool is_dynmc_cfg); |
| |
| extern kal_bool fdd_mrs_gas_is_R99_supported_in_CS(MRS_SIM_INDEX sim_index); |
| |
| extern kal_bool fdd_mrs_gas_is_R99_supported_in_PS(MRS_SIM_INDEX sim_index); |
| extern kal_uint8 *fdd_mrs_gas_get_classmark2 (MRS_SIM_INDEX sim_index, MRS_RAT_MODE_TYPE required_rat, kal_bool get_full_ie); |
| |
| |
| extern void fdd_mrs_gas_get_powerclass(MRS_SIM_INDEX sim_index, fdd_mrs_gsm_power_class_struct *gsm_pow_class); |
| |
| extern kal_bool fdd_mrs_gas_retrieve_arfcn_band(MRS_SIM_INDEX sim_index,kal_uint16 arfcn, kal_uint8 *band_ptr); |
| #ifdef __A5_3_AND_GEA_WHILTE_LIST__ |
| extern void fdd_mrs_set_a5_and_gea_algo(MRS_SIM_INDEX sim_index, const kal_uint8 *a5,const kal_uint8 *gea, plmn_match_enum plmn_match); |
| #endif /* __A5_3_AND_GEA_WHILTE_LIST__ */ |
| |
| extern void fdd_mrs_gas_add_black_cell_list_notification(void); |
| |
| extern void fdd_mrs_gas_clear_black_cell_list_notification(void); |
| |
| extern void fdd_mrs_set_current_camped_plmn(MRS_SIM_INDEX sim_index,plmn_id_struct plmn_id); |
| |
| #ifdef __VAMOS_CUSTOM_CONFIG__ |
| extern void fdd_mrs_set_custom_vamos(MRS_SIM_INDEX sim_index, kal_uint8 *vamos, kal_bool plmn_match); |
| extern kal_uint8 fdd_mrs_get_custom_vamos(MRS_SIM_INDEX sim_index); |
| |
| #endif /* __VAMOS_CUSTOM_CONFIG__ */ |
| |
| extern void fdd_mrs_print_classmark(kal_uint8 *bs_ptr, kal_uint16 line_num); |
| |
| extern kal_bool mrs_gas_is_supported_band(MRS_SIM_INDEX sim_index, kal_uint16 lte_band_idx); |
| |
| #ifdef __NR_RAT__ |
| extern void fdd_mrs_gas_update_disable_nr_cap(MRS_SIM_INDEX sim_index, capability_switch_enum nr_cap); |
| #endif /* __NR_RAT__ */ |
| |
| extern kal_bool fdd_mrs_update_gsm_band_setting(MRS_SIM_INDEX sim_index, kal_uint8 *band_setting); |
| extern kal_bool fdd_mrs_gas_band_setting_update_by_plmn(MRS_SIM_INDEX sim_index, mrs_plmn_id cplmn); |
| extern void fdd_mrs_gas_get_gsm_all_supported_band(MRS_SIM_INDEX sim_index, kal_uint8 *gsmbandmask); |
| extern kal_bool fdd_mrs_gas_mcc_band_setting_update(MRS_SIM_INDEX sim_index, kal_uint8 * gsm_band_ptr); |
| |
| extern void fdd_mrs_set_gsm_sms_capability(MRS_SIM_INDEX sim_index, kal_bool gsm_sms_cap); |
| extern void fdd_mrs_gas_set_gsm_cap_update(MRS_SIM_INDEX sim_index, capability_switch_enum gsm_cap); |
| extern capability_switch_enum fdd_mrs_gas_get_gsm_cap_update(MRS_SIM_INDEX sim_index); |
| extern kal_bool fdd_mrs_gas_gsm_enabled (MRS_SIM_INDEX sim_index, rat_enum rat_mode); |
| |
| |
| |
| |
| |
| #ifdef __UMTS_RAT__ |
| extern void fdd_mrs_gas_update_disable_umts_cap(MRS_SIM_INDEX sim_index, capability_switch_enum umts_cap); |
| #endif /* __UMTS_RAT__ */ |
| |
| /************************************************** End of FDD's part **************************************************/ |
| |
| #endif /* _MRS_GAS_CAPABILITY_H */ |
| |