view src/cs/riviera/rvm/rvm_swe.c @ 303:f76436d19a7a default tip

!GPRS config: fix long-standing AT+COPS chance hanging bug There has been a long-standing bug in FreeCalypso going back years: sometimes in the AT command bring-up sequence of an ACI-only MS, the AT+COPS command would produce only a power scan followed by cessation of protocol stack activity (only L1 ADC traces), instead of the expected network search sequence. This behaviour was seen in different FC firmware versions going back to Citrine, and seemed to follow some law of chance, not reliably repeatable. This bug has been tracked down and found to be specific to !GPRS configuration, stemming from our TCS2/TCS3 hybrid and reconstruction of !GPRS support that was bitrotten in TCS3.2/LoCosto version. ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3 version and had to be pulled from TCS2 - but as it turns out, there is a new field in the MMR_REG_REQ primitive that needs to be set correctly, and that psa_mms.c module is the place where this initialization needed to be added.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 08 Jun 2023 08:23:37 +0000
parents b1935a9ee04e
children
line wrap: on
line source

/*
 * AUTOMATICALLY GENERATED FILE - DO NOT EDIT
 *
 * This file was generated by ./Scripts/gen_files.pl
 * See Tools/swe_builder/Readme.txt
* xrashmic Manually edited to fix the MMS bug 
 */

#include "rvm/rvm_gen.h"
#include "rv/rv_defined_swe.h"
#include "rvm/rvm_use_id_list.h"
#include "rvm/rvm_ext_use_id_list.h"



/* Extern definition of all get_info functions. */
T_RVM_RETURN btu_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN gki_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN bth_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN btui_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rpc_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rvm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rvt_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN ti_prf_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN r2d_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rtc_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN ffs_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN kpd_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN spi_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN pwr_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN lcc_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN fchg_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN fcbm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rgui_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN hci_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN l2cap_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN btctrl_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rfc_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN spp_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN hs_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN hsg_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN sdp_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN dun_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN fax_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN obx_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN opp_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN ftp_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN syn_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN expl_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN audio_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN buzm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN vibr_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN etm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN dar_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN mks_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN mpm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN lls_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN atp_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN atp_uart_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN mdc_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN tty_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN dcm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN dcfg_get_info(T_RVM_INFO_SWE *);
//xrashmic 11 Apr, 2004 MMI-SPR-29099
//Added mms swe.
T_RVM_RETURN mms_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN mfw_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN smbs_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN audio_bgd_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN img_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN mdl_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rtest_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN tut_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN kil_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN kgc_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN kcl_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN kmm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN knm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN uvm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN kzp_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN kpg_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN jtm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rnet_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rnet_ws_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rnet_rt_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN rnet_br_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN condat_frm_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN msme_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN msfe_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN stke_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN brse_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN brae_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN phse_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN mmse_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN slse_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN smae_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN meae_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN sece_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN sele_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN prse_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN jaae_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN jase_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN emae_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN emse_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN it1e_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN it2e_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN it0e_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN uise_get_info(T_RVM_INFO_SWE *);
T_RVM_RETURN uiae_get_info(T_RVM_INFO_SWE *);



/* RVM_SWE_GET_INFO_ARRAY defines the correspondance between
 * SWE USE_ID and get_info function.
 */
const T_RVM_CONST_SWE_INFO RVM_SWE_GET_INFO_ARRAY[] =
{
#ifdef RVM_BTU_SWE
   { BTU_USE_ID,    btu_get_info},
#endif

#ifdef RVM_GKI_SWE
   { GKI_USE_ID,    gki_get_info},
#endif

#ifdef RVM_BTH_SWE
   { BTH_USE_ID,    bth_get_info},
#endif

#ifdef RVM_BTUI_SWE
   { BTUI_USE_ID,    btui_get_info},
#endif

#ifdef RVM_RPC_SWE
   { RPC_USE_ID,    rpc_get_info},
#endif

#ifdef RVM_RVM_SWE
   { RVM_USE_ID,    rvm_get_info},
#endif

#ifdef RVM_RVT_SWE
   { RVT_USE_ID,    rvt_get_info},
#endif

#ifdef RVM_TI_PRF_SWE
   { TI_PRF_USE_ID,    ti_prf_get_info},
#endif

#ifdef RVM_R2D_SWE
   { R2D_USE_ID,    r2d_get_info},
#endif

#ifdef RVM_RTC_SWE
   { RTC_USE_ID,    rtc_get_info},
#endif

#ifdef RVM_FFS_SWE
   { FFS_USE_ID,    ffs_get_info},
#endif

#ifdef RVM_KPD_SWE
   { KPD_USE_ID,    kpd_get_info},
#endif

#ifdef RVM_SPI_SWE
   { SPI_USE_ID,    spi_get_info},
#endif

#ifdef RVM_PWR_SWE
   { PWR_USE_ID,    pwr_get_info},
#endif

#ifdef RVM_LCC_SWE
   { LCC_USE_ID,    lcc_get_info},
#endif

#ifdef RVM_FCHG_SWE
   { FCHG_USE_ID,    fchg_get_info},
#endif

#ifdef RVM_FCBM_SWE
   { FCBM_USE_ID,    fcbm_get_info},
#endif

#ifdef RVM_RGUI_SWE
   { RGUI_USE_ID,    rgui_get_info},
#endif

#ifdef RVM_HCI_SWE
   { HCI_USE_ID,    hci_get_info},
#endif

#ifdef RVM_L2CAP_SWE
   { L2CAP_USE_ID,    l2cap_get_info},
#endif

#ifdef RVM_BTCTRL_SWE
   { BTCTRL_USE_ID,    btctrl_get_info},
#endif

#ifdef RVM_RFC_SWE
   { RFC_USE_ID,    rfc_get_info},
#endif

#ifdef RVM_SPP_SWE
   { SPP_USE_ID,    spp_get_info},
#endif

#ifdef RVM_HS_SWE
   { HS_USE_ID,    hs_get_info},
#endif

#ifdef RVM_HSG_SWE
   { HSG_USE_ID,    hsg_get_info},
#endif

#ifdef RVM_SDP_SWE
   { SDP_USE_ID,    sdp_get_info},
#endif

#ifdef RVM_DUN_SWE
   { DUN_USE_ID,    dun_get_info},
#endif

#ifdef RVM_FAX_SWE
   { FAX_USE_ID,    fax_get_info},
#endif

#ifdef RVM_OBX_SWE
   { OBX_USE_ID,    obx_get_info},
#endif

#ifdef RVM_OPP_SWE
   { OPP_USE_ID,    opp_get_info},
#endif

#ifdef RVM_FTP_SWE
   { FTP_USE_ID,    ftp_get_info},
#endif

#ifdef RVM_SYN_SWE
   { SYN_USE_ID,    syn_get_info},
#endif

#ifdef RVM_EXPL_SWE
   { EXPL_USE_ID,    expl_get_info},
#endif

#ifdef RVM_AUDIO_SWE
   { AUDIO_USE_ID,    audio_get_info},
#endif

#ifdef RVM_BUZM_SWE
   { BUZM_USE_ID,    buzm_get_info},
#endif

#ifdef RVM_VIBR_SWE
   { VIBR_USE_ID,    vibr_get_info},
#endif

#ifdef RVM_ETM_SWE
   { ETM_USE_ID,    etm_get_info},
#endif

#ifdef RVM_DAR_SWE
   { DAR_USE_ID,    dar_get_info},
#endif

#ifdef RVM_MKS_SWE
   { MKS_USE_ID,    mks_get_info},
#endif

#ifdef RVM_MPM_SWE
   { MPM_USE_ID,    mpm_get_info},
#endif

#ifdef RVM_LLS_SWE
   { LLS_USE_ID,    lls_get_info},
#endif

#ifdef RVM_ATP_SWE
   { ATP_USE_ID,    atp_get_info},
#endif

#ifdef RVM_ATP_UART_SWE
   { ATP_UART_USE_ID,    atp_uart_get_info},
#endif

#ifdef RVM_MDC_SWE
   { MDC_USE_ID,    mdc_get_info},
#endif

#ifdef RVM_TTY_SWE
   { TTY_USE_ID,    tty_get_info},
#endif

#ifdef RVM_DCM_SWE
   { DCM_USE_ID,    dcm_get_info},
#endif

#ifdef RVM_DCFG_SWE
   { DCFG_USE_ID,    dcfg_get_info},
#endif
//xrashmic 11 Apr, 2004 MMI-SPR-29099
//Added mms swe.
#ifdef RVM_MMS_SWE
   { MMS_USE_ID,    mms_get_info},
#endif

#ifdef RVM_MFW_SWE
   { MFW_USE_ID,    mfw_get_info},
#endif

#ifdef RVM_SMBS_SWE
   { SMBS_USE_ID,    smbs_get_info},
#endif

#ifdef RVM_AUDIO_BGD_SWE
   { AUDIO_BGD_USE_ID,    audio_bgd_get_info},
#endif

#ifdef RVM_IMG_SWE
   { IMG_USE_ID,    img_get_info},
#endif

#ifdef RVM_MDL_SWE
   { MDL_USE_ID,    mdl_get_info},
#endif

#ifdef RVM_RTEST_SWE
   { RTEST_USE_ID,    rtest_get_info},
#endif

#ifdef RVM_TUT_SWE
   { TUT_USE_ID,    tut_get_info},
#endif

#ifdef RVM_KIL_SWE
   { KIL_USE_ID,    kil_get_info},
#endif

#ifdef RVM_KGC_SWE
   { KGC_USE_ID,    kgc_get_info},
#endif

#ifdef RVM_KCL_SWE
   { KCL_USE_ID,    kcl_get_info},
#endif

#ifdef RVM_KMM_SWE
   { KMM_USE_ID,    kmm_get_info},
#endif

#ifdef RVM_KNM_SWE
   { KNM_USE_ID,    knm_get_info},
#endif

#ifdef RVM_UVM_SWE
   { UVM_USE_ID,    uvm_get_info},
#endif

#ifdef RVM_KZP_SWE
   { KZP_USE_ID,    kzp_get_info},
#endif

#ifdef RVM_KPG_SWE
   { KPG_USE_ID,    kpg_get_info},
#endif

#ifdef RVM_JTM_SWE
   { JTM_USE_ID,    jtm_get_info},
#endif

#ifdef RVM_RNET_SWE
   { RNET_USE_ID,    rnet_get_info},
#endif

#ifdef RVM_RNET_WS_SWE
   { RNET_WS_USE_ID,    rnet_ws_get_info},
#endif

#ifdef RVM_RNET_RT_SWE
   { RNET_RT_USE_ID,    rnet_rt_get_info},
#endif

#ifdef RVM_RNET_BR_SWE
   { RNET_BR_USE_ID,    rnet_br_get_info},
#endif

#ifdef RVM_CONDAT_FRM_SWE
   { CONDAT_FRM_USE_ID,    condat_frm_get_info},
#endif

#ifdef RVM_MSME_SWE
   { MSME_USE_ID,    msme_get_info},
#endif

#ifdef RVM_MSFE_SWE
   { MSFE_USE_ID,    msfe_get_info},
#endif

#ifdef RVM_STKE_SWE
   { STKE_USE_ID,    stke_get_info},
#endif

#ifdef RVM_BRSE_SWE
   { BRSE_USE_ID,    brse_get_info},
#endif

#ifdef RVM_BRAE_SWE
   { BRAE_USE_ID,    brae_get_info},
#endif

#ifdef RVM_PHSE_SWE
   { PHSE_USE_ID,    phse_get_info},
#endif

#ifdef RVM_MMSE_SWE
   { MMSE_USE_ID,    mmse_get_info},
#endif

#ifdef RVM_SLSE_SWE
   { SLSE_USE_ID,    slse_get_info},
#endif

#ifdef RVM_SMAE_SWE
   { SMAE_USE_ID,    smae_get_info},
#endif

#ifdef RVM_MEAE_SWE
   { MEAE_USE_ID,    meae_get_info},
#endif

#ifdef RVM_SECE_SWE
   { SECE_USE_ID,    sece_get_info},
#endif

#ifdef RVM_SELE_SWE
   { SELE_USE_ID,    sele_get_info},
#endif

#ifdef RVM_PRSE_SWE
   { PRSE_USE_ID,    prse_get_info},
#endif

#ifdef RVM_JAAE_SWE
   { JAAE_USE_ID,    jaae_get_info},
#endif

#ifdef RVM_JASE_SWE
   { JASE_USE_ID,    jase_get_info},
#endif

#ifdef RVM_EMAE_SWE
   { EMAE_USE_ID,    emae_get_info},
#endif

#ifdef RVM_EMSE_SWE
   { EMSE_USE_ID,    emse_get_info},
#endif

#ifdef RVM_IT1E_SWE
   { IT1E_USE_ID,    it1e_get_info},
#endif

#ifdef RVM_IT2E_SWE
   { IT2E_USE_ID,    it2e_get_info},
#endif

#ifdef RVM_IT0E_SWE
   { IT0E_USE_ID,    it0e_get_info},
#endif

#ifdef RVM_UISE_SWE
   { UISE_USE_ID,    uise_get_info},
#endif

#ifdef RVM_UIAE_SWE
   { UIAE_USE_ID,    uiae_get_info},
#endif

   { RVM_INVALID_USE_ID, NULL}
};