view src/cs/riviera/rvm/rvm_swe.c @ 516:1ed9de6c90bd

src/g23m-gsm/sms/sms_for.c: bogus malloc removed The new error handling code that was not present in TCS211 blob version contains a malloc call that is bogus for 3 reasons: 1) The memory allocation in question is not needed in the first place; 2) libc malloc is used instead of one of the firmware's proper ways; 3) The memory allocation is made inside a function and then never freed, i.e., a memory leak. This bug was caught in gcc-built FreeCalypso fw projects (Citrine and Selenite) because our gcc environment does not allow any use of libc malloc (any reference to malloc produces a link failure), but this code from TCS3.2 is wrong even for Magnetite: if this code path is executed repeatedly over a long time, the many small allocations made by this malloc call without a subsequent free will eventually exhaust the malloc heap provided by the TMS470 environment, malloc will start returning NULL, and the bogus code will treat it as an error. Because the memory allocation in question is not needed at all, the fix entails simply removing it.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 22 Jul 2018 06:04:49 +0000
parents 3f3c98f8b85d
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 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 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_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_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}
};