view src/aci2/aci/aci.h @ 600:8f50b202e81f

board preprocessor conditionals: prep for more FC hw in the future This change eliminates the CONFIG_TARGET_FCDEV3B preprocessor symbol and all preprocessor conditionals throughout the code base that tested for it, replacing them with CONFIG_TARGET_FCFAM or CONFIG_TARGET_FCMODEM. These new symbols are specified as follows: CONFIG_TARGET_FCFAM is intended to cover all hardware designs created by Mother Mychaela under the FreeCalypso trademark. This family will include modem products (repackagings of the FCDEV3B, possibly with RFFE or even RF transceiver changes), and also my desired FreeCalypso handset product. CONFIG_TARGET_FCMODEM is intended to cover all FreeCalypso modem products (which will be firmware-compatible with the FCDEV3B if they use TI Rita transceiver, or will require a different fw build if we switch to one of Silabs Aero transceivers), but not the handset product. Right now this CONFIG_TARGET_FCMODEM preprocessor symbol is used to conditionalize everything dealing with MCSI. At the present moment the future of FC hardware evolution is still unknown: it is not known whether we will ever have any beyond-FCDEV3B hardware at all (contingent on uncertain funding), and if we do produce further FC hardware designs, it is not known whether they will retain the same FIC modem core (triband), if we are going to have a quadband design that still retains the classic Rita transceiver, or if we are going to switch to Silabs Aero II or some other transceiver. If we produce a quadband modem that still uses Rita, it will run exactly the same fw as the FCDEV3B thanks to the way we define TSPACT signals for the RF_FAM=12 && CONFIG_TARGET_FCFAM combination, and the current fcdev3b build target will be renamed to fcmodem. OTOH, if that putative quadband modem will be Aero-based, then it will require a different fw build target, the fcdev3b target will stay as it is, and the two targets will both define CONFIG_TARGET_FCFAM and CONFIG_TARGET_FCMODEM, but will have different RF_FAM numbers. But no matter which way we are going to evolve, it is not right to have conditionals on CONFIG_TARGET_FCDEV3B in places like ACI, and the present change clears the way for future evolution.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 01 Apr 2019 01:05:24 +0000
parents 93999a60b835
children
line wrap: on
line source

/*
+-----------------------------------------------------------------------------
|  Project :  GSM-F&D (8411)
|  Modul   :  ACI
+-----------------------------------------------------------------------------
|  Copyright 2002 Texas Instruments Berlin, AG
|                 All rights reserved.
|
|                 This file is confidential and a trade secret of Texas
|                 Instruments Berlin, AG
|                 The receipt of or possession of this file does not convey
|                 any rights to reproduce or disclose its contents or to
|                 manufacture, use, or sell anything it may describe, in
|                 whole, or in part, without the specific written consent of
|                 Texas Instruments Berlin, AG.
+-----------------------------------------------------------------------------
|  Purpose :  Definitions for the AT Command Interpreter
+-----------------------------------------------------------------------------
*/

#ifndef ACI_H
#define ACI_H

/*
 * Definition whether a shared CCD buffer shall be used
 */
#define SHARED_CCD_BUF
#define MAX_FIE_CODE_BUF_LEN 220  /* FIE code buffer length */

/*==== TEST =====================================================*/
/*
 * instance management
 */

#define ACI_INSTANCES         6  /* is the same as UART_MAX_NUMBER_OF_CHANNELS in UART entity */

/*
 * PALLOC_SDU
 */

#define ENCODE_OFFSET             0

/*
 * Dynamic Configuration Numbers
 */

#define ACI_RESET                 0

#ifndef NO_ASCIIZ
#define NO_ASCIIZ
#endif

/*
 * Configuration Parameter
 */

/*
 * Dynamic Configuration Numbers
 */
#define RESET                     0
#define TIMER_SET                 1
#define TIMER_RESET               2
#define TIMER_SPEED_UP            3
#define TIMER_SLOW_DOWN           4
#define TIMER_SUPPRESS            5
#define KEY_SEQUENCE              6
#define START_AOC                 7
#define KEY_PRESS                 8
#define KEY_RELEASE               9
#define CPOL_MODE                10
#define CPOL_IDX2                11
#define ATI_VIA_TIF              12
#ifdef WIN32
#define DATA_INPUT               13
#endif /* WIN32 */
#define DATA_INPUT               13


/*
 * Timer Names
 */
#ifdef FF_ATI
#define TRING                "TRING"
#endif

#define TECT                 "TECT"
#define TMPTY                "TMPTY"
#define TFIT                 "TFIT"
#define TDTMF                "TDTMF"

#define ONE_FRAME     5
#define TEN_FRAMES    47

/*==== bit field manipulation macros ==============================*/

#define BITFIELD_CHECK(x, y)  (x & y)
#define BITFIELD_SET(x, y)    (x |= y)
#define BITFIELD_CLEAR(x, y)  (x &= (~y))

/*==== TYPES ======================================================*/

typedef struct
{
  UBYTE                 t_mode;
  ULONG                 t_val;
} T_TIMER_CONFIG;

/*
*   ACI types
*/

typedef struct
{
  UBYTE dummy;
} T_ACI_DATA;

typedef struct
{
  USHORT l_buf;
  USHORT o_buf;
  UBYTE  buf[MAX_FIE_CODE_BUF_LEN];     /* buffer for FIE coding */
} T_ACI_FIE_BUF;

#define TIMERSTART(v,h) vsi_t_start (VSI_CALLER h, v)
#define PTIMERSTART(v0,v1,h) vsi_t_pstart (VSI_CALLER h, v0, v1)
#define TIMERSTOP(h) vsi_t_stop(VSI_CALLER h)
/*==== EXPORT =====================================================*/
/*
 * CCD decode buffer
 */
#ifdef OPTION_MULTITHREAD
  #define _decodedMsg   _ENTITY_PREFIXED(_decodedMsg)
#endif

#if !defined SHARED_CCD_BUF
#define CCD_START
#define CCD_END
#else
#define CCD_START if(!CCDbuf){_decodedMsg = ccd_begin();CCDbuf=TRUE;}
#define CCD_END   if(CCDbuf){ccd_end();CCDbuf=FALSE;}
#endif

#ifdef PSA_SSF_C

GLOBAL T_ACI_FIE_BUF ssFIECodeBuf;
GLOBAL UBYTE * ssFIEDecodeBuf;

#if !defined SHARED_CCD_BUF
#ifdef SIM_TOOLKIT
GLOBAL UBYTE _decodedMsg[MAXIMUM(MAXIMUM(MAX_MSTRUCT_LEN_FAC,
                                         MAX_MSTRUCT_LEN_SAT),
                                 MAX_MSTRUCT_LEN_CC)];
#else
GLOBAL UBYTE _decodedMsg[MAXIMUM(MAX_MSTRUCT_LEN_FAC,
                                 MAX_MSTRUCT_LEN_CC)];
#endif  /* SIM_TOOLKIT */
#else
GLOBAL UBYTE* _decodedMsg;
GLOBAL UBYTE  CCDbuf = FALSE;
#endif  /* SHARED_CCD_BUF */
#else /* PSA_SSF_C */

EXTERN T_ACI_FIE_BUF ssFIECodeBuf;
EXTERN UBYTE * ssFIEDecodeBuf;

#if !defined SHARED_CCD_BUF
#ifdef SIM_TOOLKIT
EXTERN UBYTE _decodedMsg[MAXIMUM(MAXIMUM(MAX_MSTRUCT_LEN_FAC,
                                         MAX_MSTRUCT_LEN_SAT),
                                 MAX_MSTRUCT_LEN_CC)];
#else
EXTERN UBYTE _decodedMsg[MAXIMUM(MAX_MSTRUCT_LEN_FAC,
                                 MAX_MSTRUCT_LEN_CC)];
#endif  /* SIM_TOOLKIT */
#else
EXTERN UBYTE* _decodedMsg;
EXTERN UBYTE  CCDbuf;
#endif  /* SHARED_CCD_BUF */

#endif /* PSA_SSF_C */

/*
 * Prototypes Timer Modul
 */

/*
 * If all entities are linked into one module this definitions
 * prefixes all this functions with the entity name
 */
EXTERN BOOL smi_timeout                 (USHORT              handle);

/*
 * If all entities are linked into one module this definitions
 * prefixes the global data with the entity name
 */

#ifdef OPTION_MULTITHREAD
  #define hCommACI        _ENTITY_PREFIXED(hCommACI)
#if defined FF_TRACE_OVER_MTST
  #define hCommMTST       _ENTITY_PREFIXED(hCommMTST)
#endif
  #define hCommSIM        _ENTITY_PREFIXED(hCommSIM)
  #define hCommMM         _ENTITY_PREFIXED(hCommMM)
  #define hCommCC         _ENTITY_PREFIXED(hCommCC)
#ifdef FF_ESIM
  #define hCommESIM         _ENTITY_PREFIXED(hCommESIM)
#endif
#ifdef UART
  #define hCommUART       _ENTITY_PREFIXED(hCommUART)
  #define hCommDTI        _ENTITY_PREFIXED(hCommDTI)
#endif
#ifdef FF_PSI
    #define hCommPSI          _ENTITY_PREFIXED(hCommPSI)
#endif /*FF_PSI*/
  #define hCommSS         _ENTITY_PREFIXED(hCommSS)
  #define hCommSMS        _ENTITY_PREFIXED(hCommSMS)
  #define hCommPL         _ENTITY_PREFIXED(hCommPL)
#if defined FF_EOTD
  #define hCommLC         _ENTITY_PREFIXED(hCommLC)
#endif
#ifdef FF_TCP_IP
  #define hCommAAA        _ENTITY_PREFIXED(hCommAAA)  /* SKA 11.Dec2002 */
#endif

#ifdef FAX_AND_DATA
  #define hCommL2R        _ENTITY_PREFIXED(hCommL2R)
  #define hCommTRA        _ENTITY_PREFIXED(hCommTRA)
#ifdef FF_FAX
  #define hCommT30        _ENTITY_PREFIXED(hCommT30)
#endif
#ifndef USE_L1FD_FUNC_INTERFACE
  #define hCommRA         _ENTITY_PREFIXED(hCommRA)
#endif
#ifdef FF_EOTD
  #define hCommLC         _ENTITY_PREFIXED(hCommLC)
#endif
#endif /* FAX_AND_DATA */

#ifdef FF_GPF_TCPIP
  #define hCommTCPIP      _ENTITY_PREFIXED(hCommTCPIP)
  #define hCommDCM       _ENTITY_PREFIXED(hCommDCM)
#endif

#if defined (CO_TCPIP_TESTAPP) || defined  (CO_BAT_TESTAPP)
  #define hCommAPP        _ENTITY_PREFIXED(hCommAPP)
#endif

#ifdef CO_UDP_IP
  #define hCommUDP        _ENTITY_PREFIXED(hCommUDP)
  #define hCommIP         _ENTITY_PREFIXED(hCommIP)
#endif

#ifdef FF_WAP
  #define hCommWAP       _ENTITY_PREFIXED(hCommWAP)
#endif /* FF_WAP */

#if defined (FF_WAP) || defined (GPRS) || defined (FF_TCP_IP) || defined(FF_GPF_TCPIP) || defined (FF_SAT_E)
  #define hCommPPP        _ENTITY_PREFIXED(hCommPPP)
#endif /* (FF_WAP) || (GPRS) || (FF_TCP_IP) || (FF_GPF_TCPIP) || defined (FF_SAT_E) */

/* used only for the EM to reduce primitive sending. Otherwise all primitives from
   ACI to RR have to be passed through MM.
*/
#ifdef FF_EM_MODE
  #define hCommRR         _ENTITY_PREFIXED(hCommRR)
#endif /* FF_EM_MODE */

#ifdef GPRS
  #define hCommGMM        _ENTITY_PREFIXED(hCommGMM)
  #define hCommSM         _ENTITY_PREFIXED(hCommSM)
  #define hCommSNDCP      _ENTITY_PREFIXED(hCommSNDCP)
#ifdef FF_PKTIO
  #define hCommPKTIO      _ENTITY_PREFIXED(hCommPKTIO)
#endif
#endif /* GPRS */
#if defined(FF_ATI) && defined(BT_ADAPTER)
  #define hCommBTI        _ENTITY_PREFIXED(hCommBTI)
#endif /* FF_ATI && BT_ADAPTER */
#define hCommL1 _ENTITY_PREFIXED(hCommL1)  
#endif


#ifdef ACI_PEI_C

GLOBAL T_HANDLE         hCommACI = VSI_ERROR; /* ACI  Communication */
#ifdef FF_TRACE_OVER_MTST
GLOBAL T_HANDLE         hCommMTST = VSI_ERROR;/* MTST  Communication */
#endif
GLOBAL T_HANDLE         hCommSIM = VSI_ERROR; /* SIM  Communication */
GLOBAL T_HANDLE         hCommMM  = VSI_ERROR; /* MM   Communication */
GLOBAL T_HANDLE         hCommCC  = VSI_ERROR; /* CC   Communication */
#ifdef UART
GLOBAL T_HANDLE         hCommUART= VSI_ERROR; /* UART   Communication */
GLOBAL T_HANDLE         hCommDTI = VSI_ERROR; /* SMS  Communication */
#endif
GLOBAL T_HANDLE         hCommSS  = VSI_ERROR; /* SS   Communication */
#ifdef FF_ESIM
GLOBAL T_HANDLE         hCommESIM  = VSI_ERROR; /* ESIM   Communication */
#endif
GLOBAL T_HANDLE         hCommSMS = VSI_ERROR; /* SMS  Communication */
GLOBAL T_HANDLE         hCommPL  = VSI_ERROR; /* PL   Communication */
#if defined FF_EOTD
GLOBAL T_HANDLE         hCommLC  = VSI_ERROR; /* LC   Communication */
#endif
#ifdef FF_TCP_IP
GLOBAL T_HANDLE         hCommAAA = VSI_ERROR; /* AAA  Communication */ /* SKA 11.Dec2002 */
#endif

#ifdef FAX_AND_DATA
GLOBAL T_HANDLE         hCommL2R = VSI_ERROR; /* L2R  Communication */
GLOBAL T_HANDLE         hCommTRA = VSI_ERROR; /* TRA  Communication */
#ifdef FF_FAX
GLOBAL T_HANDLE         hCommT30 = VSI_ERROR; /* T30  Communication */
#endif
#ifndef USE_L1FD_FUNC_INTERFACE
GLOBAL T_HANDLE         hCommRA  = VSI_ERROR; /* RA   Communication */
#endif
#endif  /* FAX_AND_DATA */


#ifdef FF_GPF_TCPIP
GLOBAL T_HANDLE         hCommTCPIP = VSI_ERROR; /* TCPIP Communication */
#endif

#if defined (CO_TCPIP_TESTAPP) || defined  (CO_BAT_TESTAPP)
GLOBAL T_HANDLE         hCommAPP   = VSI_ERROR; /* APP Communication   */
#endif

#ifdef CO_UDP_IP 
GLOBAL T_HANDLE         hCommUDP = VSI_ERROR; /* UDP Communication */
GLOBAL T_HANDLE         hCommIP  = VSI_ERROR; /* IP  Communication */
#endif  /* defined CO_UDP_IP */

#ifdef FF_WAP
GLOBAL T_HANDLE         hCommWAP  = VSI_ERROR; /* WAP  Communication */
#endif /* FF_WAP */


#if defined (FF_WAP) || defined (GPRS) || defined (FF_TCP_IP) || defined(FF_GPF_TCPIP)
GLOBAL T_HANDLE         hCommPPP = VSI_ERROR; /* PPP Communication */
#endif /*  (FF_WAP) || (GPRS) || (FF_TCP_IP) || (FF_GPF_TCPIP) */

#ifdef FF_EM_MODE
GLOBAL T_HANDLE         hCommRR  = VSI_ERROR;   /* EM Communication */
#endif /* FF_EM_MODE */

#ifdef GPRS
GLOBAL T_HANDLE         hCommGMM   = VSI_ERROR; /* GMM    Communication */
GLOBAL T_HANDLE         hCommSM    = VSI_ERROR; /* SM     Communication */
GLOBAL T_HANDLE         hCommSNDCP = VSI_ERROR; /* SNDCP  Communication */
#ifdef FF_PKTIO
GLOBAL T_HANDLE         hCommPKTIO = VSI_ERROR; /* PKTIO  Communication */
#endif
#endif /* GPRS */
#ifdef FF_PSI
GLOBAL T_HANDLE         hCommPSI = VSI_ERROR; /* PSI Communication */
#endif /*FF_PSI*/
#if defined(FF_ATI) && defined(BT_ADAPTER)
GLOBAL T_HANDLE         hCommBTI   = VSI_ERROR; /* BTI    Communication */
#endif /* FF_ATI && BT_ADAPTER */

GLOBAL T_HANDLE         hCommL1    = VSI_ERROR; /* Layer 1 Communication */

GLOBAL T_HANDLE         aci_handle;
#define hCommMMI        aci_handle
GLOBAL T_HANDLE         hCommDCM = VSI_ERROR;   /* DCM Communication */

#else   /* ACI_PEI_C */

EXTERN T_HANDLE         hCommACI;        /* ACI  Communication       */
#if defined FF_TRACE_OVER_MTST
EXTERN T_HANDLE         hCommMTST;       /* MTST  Communication */
#endif
EXTERN T_HANDLE         hCommSIM;        /* SIM  Communication       */
EXTERN T_HANDLE         hCommMM;         /* MM   Communication       */
EXTERN T_HANDLE         hCommCC;         /* CC   Communication       */
#ifdef UART
EXTERN T_HANDLE         hCommUART;       /* UART Communication       */
EXTERN T_HANDLE         hCommDTI;        /* DTI  Communication       */
#endif
EXTERN T_HANDLE         hCommSS;         /* SS   Communication       */
#ifdef FF_ESIM
EXTERN T_HANDLE         hCommESIM;         /* ESIM   Communication       */
#endif
EXTERN T_HANDLE         hCommSMS;        /* SMS  Communication       */
EXTERN T_HANDLE         hCommPL;         /* PL   Communication       */
#if defined FF_EOTD
EXTERN T_HANDLE         hCommLC;         /* LC   Communication       */
#endif
#ifdef FF_TCP_IP
EXTERN T_HANDLE         hCommAAA;        /* AAA  Communication */ /* SKA 11.Dec2002 */
#endif 

#ifdef FAX_AND_DATA
EXTERN T_HANDLE         hCommL2R;        /* L2R  Communication       */
EXTERN T_HANDLE         hCommTRA;        /* TRA  Communication       */
#ifdef FF_FAX
EXTERN T_HANDLE         hCommT30;        /* T30  Communication       */
#endif
#ifndef USE_L1FD_FUNC_INTERFACE
EXTERN T_HANDLE         hCommRA;         /* RA   Communication       */
#endif
#endif /* FAX_AND_DATA */

#ifdef FF_GPF_TCPIP
EXTERN T_HANDLE         hCommTCPIP;      /* TCPIP Communication      */
EXTERN T_HANDLE         hCommDCM;        /* DCM Communication        */
#endif

#if defined (CO_TCPIP_TESTAPP) || defined  (CO_BAT_TESTAPP)
EXTERN T_HANDLE         hCommAPP;        /* APP Communication        */
#endif

#ifdef CO_UDP_IP
EXTERN T_HANDLE         hCommUDP;        /* UDP Communication        */
EXTERN T_HANDLE         hCommIP;         /* IP  Communication        */
#endif

#ifdef FF_WAP
EXTERN T_HANDLE         hCommWAP;        /* WAP  Communication       */
#endif


#if defined (FF_WAP) || defined (GPRS) || defined (FF_TCP_IP) || defined(FF_GPF_TCPIP)
EXTERN T_HANDLE         hCommPPP;        /* PPP Communication        */
#endif /*  (FF_WAP) ||  (GPRS) ||  (FF_TCP_IP) || (FF_GPF_TCPIP) */

#ifdef FF_EM_MODE
EXTERN T_HANDLE         hCommRR;         /* EM Communication */
#endif /* FF_EM_MODE */

#ifdef GPRS
EXTERN T_HANDLE         hCommGMM;        /* GMM    Communication */
EXTERN T_HANDLE         hCommSM;         /* SM     Communication */
EXTERN T_HANDLE         hCommSNDCP;      /* SNDCP  Communication */
EXTERN T_HANDLE         hCommPKTIO;      /* PKTIO  Communication */
#endif /* GPRS */
#ifdef FF_PSI
EXTERN T_HANDLE         hCommPSI;      /* PSI  Communication */
#endif /*FF_PSI*/
#if defined(FF_ATI) && defined(BT_ADAPTER)
EXTERN T_HANDLE         hCommBTI;        /* BTI    Communication */
#endif /* FF_ATI && BT_ADAPTER */
EXTERN T_HANDLE      hcommDCM;    /*Application Commnunication */
EXTERN T_HANDLE      hCommL1; /* Layer 1 */


EXTERN T_HANDLE         aci_handle;
#define hCommMMI        aci_handle
#endif  /* ACI_PEI_C */

/*
 * function prototypes
 */
EXTERN void aci_aci_cmd_req (T_ACI_CMD_REQ *data);
EXTERN void aci_aci_abort_req (T_ACI_ABORT_REQ *data);
#ifdef BT_ADAPTER
EXTERN void aci_aci_cmd_res (T_ACI_CMD_RES *aci_cmd_res);
EXTERN void aci_aci_init_res (T_ACI_INIT_RES *aci_init_res);
EXTERN void aci_aci_deinit_req (T_ACI_DEINIT_REQ *aci_deinit_req);
EXTERN void aci_aci_open_port_req (T_ACI_OPEN_PORT_REQ *aci_open_port_req);
EXTERN void aci_aci_close_port_req (T_ACI_CLOSE_PORT_REQ *aci_close_port_req);
/* temporary solutions for BT. primitives contain src_id. this must be enabled for all ACI primitives */
EXTERN void aci_aci_cmd_req_bt (T_ACI_CMD_REQ_BT *cmd);
EXTERN void aci_aci_abort_req_bt (T_ACI_ABORT_REQ_BT *data);
EXTERN void aci_aci_cmd_res_bt (T_ACI_CMD_RES_BT *aci_cmd_res);
#endif
EXTERN void aci_aci_trc_ind (T_ACI_TRC_IND *trc_ind);
#ifdef FF_MMI_RIV
EXTERN void aci_aci_riv_cmd_req (T_ACI_RIV_CMD_REQ *cmd_ptr);
#endif
EXTERN void aci_aci_ext_ind (T_ACI_EXT_IND *aci_ext_ind);
/*
 * If all entities are linked into one module this definitions
 * prefixes all this functions with the enity name
 */
#ifdef OPTION_MULTITHREAD
  #define psa_sim_read_cnf          _ENTITY_PREFIXED(psa_sim_read_cnf)
  #define psa_sim_update_cnf        _ENTITY_PREFIXED(psa_sim_update_cnf)
  #define psa_sim_read_record_cnf   _ENTITY_PREFIXED(psa_sim_read_record_cnf)
  #define psa_sim_update_record_cnf _ENTITY_PREFIXED(psa_sim_update_record_cnf)
  #define psa_sim_increment_cnf     _ENTITY_PREFIXED(psa_sim_increment_cnf)
  #define psa_sim_verify_pin_cnf    _ENTITY_PREFIXED(psa_sim_verify_pin_cnf)
  #define psa_sim_change_pin_cnf    _ENTITY_PREFIXED(psa_sim_change_pin_cnf)
  #define psa_sim_disable_pin_cnf   _ENTITY_PREFIXED(psa_sim_disable_pin_cnf)
  #define psa_sim_enable_pin_cnf    _ENTITY_PREFIXED(psa_sim_enable_pin_cnf)
  #define psa_sim_unblock_cnf       _ENTITY_PREFIXED(psa_sim_unblock_cnf)
  #define psa_sim_mmi_insert_ind    _ENTITY_PREFIXED(psa_sim_mmi_insert_ind)
  #define psa_sim_remove_ind        _ENTITY_PREFIXED(psa_sim_remove_ind)
  #define psa_sim_sync_cnf          _ENTITY_PREFIXED(psa_sim_sync_cnf)
  #define psa_sim_activate_cnf      _ENTITY_PREFIXED(psa_sim_activate_cnf)
  #define psa_sim_activate_ind      _ENTITY_PREFIXED(psa_sim_activate_ind)
  #define psa_sim_access_cnf        _ENTITY_PREFIXED(psa_sim_access_cnf)
#ifdef SIM_TOOLKIT
  #define psa_sim_toolkit_ind       _ENTITY_PREFIXED(psa_sim_toolkit_ind)
  #define psa_sim_toolkit_cnf       _ENTITY_PREFIXED(psa_sim_toolkit_cnf)
  #define psa_sim_file_update_ind   _ENTITY_PREFIXED(psa_sim_file_update_ind)
#endif /* SIM_TOOLKIT */
#ifdef FF_EM_MODE
  #define psa_em_sc_info_cnf          _ENTITY_PREFIXED(psa_em_sc_info_cnf)
  #define psa_em_sc_gprs_info_cnf     _ENTITY_PREFIXED(psa_em_sc_gprs_info_cnf)
  #define psa_em_nc_info_cnf          _ENTITY_PREFIXED(psa_em_nc_info_cnf)
  #define psa_em_loc_pag_info_cnf     _ENTITY_PREFIXED(psa_em_loc_pag_info_cnf)
  #define psa_em_plmn_info_cnf        _ENTITY_PREFIXED(psa_em_plmn_info_cnf)
  #define psa_em_cip_hop_dtx_info_cnf _ENTITY_PREFIXED(psa_em_cip_hop_dtx_info_cnf)
  #define psa_em_power_info_cnf       _ENTITY_PREFIXED(psa_em_power_info_cnf)
  #define psa_em_identity_info_cnf    _ENTITY_PREFIXED(psa_em_identity_info_cnf)
  #define psa_em_sw_version_info_cnf  _ENTITY_PREFIXED(psa_em_sw_version_info_cnf)
  #define psa_em_gmm_info_cnf         _ENTITY_PREFIXED(psa_em_gmm_info_cnf)
  #define psa_em_grlc_info_cnf        _ENTITY_PREFIXED(psa_em_grlc_info_cnf)
  #define psa_em_amr_info_cnf         _ENTITY_PREFIXED(psa_em_amr_info_cnf)
#endif /* FF_EM_MODE */
  #define psa_mmr_reg_cnf           _ENTITY_PREFIXED(psa_mmr_reg_cnf)
  #define psa_mmr_nreg_ind          _ENTITY_PREFIXED(psa_mmr_nreg_ind)
  #define psa_mmr_nreg_cnf          _ENTITY_PREFIXED(psa_mmr_nreg_cnf)
  #define psa_mmr_plmn_ind          _ENTITY_PREFIXED(psa_mmr_plmn_ind)
  #define psa_mmr_info_ind          _ENTITY_PREFIXED(psa_mmr_info_ind)
  #define psa_mmr_ciphering_ind     _ENTITY_PREFIXED(psa_mmr_ciphering_ind)
  #define psa_mmr_ahplmn_ind        _ENTITY_PREFIXED(psa_mmr_ahplmn_ind)
  #define psa_mncc_alert_ind        _ENTITY_PREFIXED(psa_mncc_alert_ind)
  #define psa_mncc_call_proceed_ind _ENTITY_PREFIXED(psa_mncc_call_proceed_ind)
  #define psa_mncc_disconnect_ind   _ENTITY_PREFIXED(psa_mncc_disconnect_ind)
  #define psa_mncc_hold_cnf         _ENTITY_PREFIXED(psa_mncc_hold_cnf)
  #define psa_mncc_progress_ind     _ENTITY_PREFIXED(psa_mncc_progress_ind)
  #define psa_mncc_reject_ind       _ENTITY_PREFIXED(psa_mncc_reject_ind)
  #define psa_mncc_release_cnf      _ENTITY_PREFIXED(psa_mncc_release_cnf)
  #define psa_mncc_release_ind      _ENTITY_PREFIXED(psa_mncc_release_ind)
  #define psa_mncc_setup_cnf        _ENTITY_PREFIXED(psa_mncc_setup_cnf)
  #define psa_mncc_setup_compl_ind  _ENTITY_PREFIXED(psa_mncc_setup_compl_ind)
  #define psa_mncc_setup_ind        _ENTITY_PREFIXED(psa_mncc_setup_ind)
  #define psa_mncc_start_dtmf_cnf   _ENTITY_PREFIXED(psa_mncc_start_dtmf_cnf)
  #define psa_mncc_sync_ind         _ENTITY_PREFIXED(psa_mncc_sync_ind)
  #define psa_mncc_bearer_cap_cnf   _ENTITY_PREFIXED(psa_mncc_bearer_cap_cnf)
  #define psa_mncc_prompt_ind       _ENTITY_PREFIXED(psa_mncc_prompt_ind)
  #define psa_mncc_recall_ind       _ENTITY_PREFIXED(psa_mncc_recall_ind)
  #define psa_mncc_status_ind       _ENTITY_PREFIXED(psa_mncc_status_ind)
#if defined FF_EOTD
  #define psa_mnlc_sms_meas_cnf       _ENTITY_PREFIXED(psa_mnlc_sms_meas_cnf)
#endif
  #define psa_mnss_begin_ind        _ENTITY_PREFIXED(psa_mnss_begin_ind)
  #define psa_mnss_facility_ind     _ENTITY_PREFIXED(psa_mnss_facility_ind)
  #define psa_mnss_end_ind          _ENTITY_PREFIXED(psa_mnss_end_ind)

  #define psa_mnsms_delete_cnf      _ENTITY_PREFIXED(psa_mnsms_delete_cnf)
  #define psa_mnsms_read_cnf        _ENTITY_PREFIXED(psa_mnsms_read_cnf)
  #define psa_mnsms_store_cnf       _ENTITY_PREFIXED(psa_mnsms_store_cnf)
  #define psa_mnsms_submit_cnf      _ENTITY_PREFIXED(psa_mnsms_submit_cnf)
  #define psa_mnsms_command_cnf     _ENTITY_PREFIXED(psa_mnsms_command_cnf)
  #define psa_mnsms_report_ind      _ENTITY_PREFIXED(psa_mnsms_report_ind)
  #define psa_mnsms_status_ind      _ENTITY_PREFIXED(psa_mnsms_status_ind)
  #define psa_mnsms_message_ind     _ENTITY_PREFIXED(psa_mnsms_message_ind)
  #define psa_mnsms_error_ind       _ENTITY_PREFIXED(psa_mnsms_error_ind)
  #define psa_mnsms_resume_cnf      _ENTITY_PREFIXED(psa_mnsms_resume_cnf)
  #define psa_mnsms_query_cnf       _ENTITY_PREFIXED(psa_mnsms_query_cnf)
#ifdef GPRS
  #define psa_mnsms_mo_serv_cnf     _ENTITY_PREFIXED(psa_mnsms_mo_serv_cnf)
#endif  /* GPRS */
#ifdef SIM_PERS_OTA
  #define psa_mnsms_OTA_decode_ind  _ENTITY_PREFIXED(psa_mnsms_OTA_decode_ind)
#endif
  #define psa_mmi_keypad_ind        _ENTITY_PREFIXED(psa_mmi_keypad_ind)
  #define psa_mmi_rxlev_ind         _ENTITY_PREFIXED(psa_mmi_rxlev_ind)
  #define psa_mmi_battery_ind       _ENTITY_PREFIXED(psa_mmi_battery_ind)
  #define psa_mmi_cbch_ind          _ENTITY_PREFIXED(psa_mmi_cbch_ind)
#ifdef BTE_MOBILE
  #define psa_mmi_bt_cb_notify_ind        _ENTITY_PREFIXED(psa_mmi_bt_cb_notify_ind)
#endif
#ifndef VOCODER_FUNC_INTERFACE
#define psa_mmi_tch_vocoder_cfg_cnf  _ENTITY_PREFIXED(psa_mmi_tch_vocoder_cfg_cnf) 
#endif /* VOCODER_FUNC_INTERFACE */

#ifdef SIM_TOOLKIT
  #define psa_sat_cbch_dnl_ind      _ENTITY_PREFIXED(psa_mmi_cbch_dnl_ind)
#endif /* SIM_TOOLKIT */

  #define psa_ra_activate_cnf       _ENTITY_PREFIXED(psa_ra_activate_cnf)
  #define psa_ra_deactivate_cnf     _ENTITY_PREFIXED(psa_ra_deactivate_cnf)
#ifdef FF_FAX
  #define psa_ra_modify_cnf         _ENTITY_PREFIXED(psa_ra_modify_cnf)
  #define psa_t30_cap_ind           _ENTITY_PREFIXED(psa_t30_cap_ind)
  #define psa_t30_dti_cnf           _ENTITY_PREFIXED(psa_t30_dti_cnf)
  #define psa_t30_dti_ind           _ENTITY_PREFIXED(psa_t30_dti_ind)
  #define psa_t30_phase_ind         _ENTITY_PREFIXED(psa_t30_phase_ind)
  #define psa_t30_sgn_ind           _ENTITY_PREFIXED(psa_t30_sgn_ind)
  #define psa_t30_cmpl_ind          _ENTITY_PREFIXED(psa_t30_cmpl_ind)
  #define psa_t30_report_ind        _ENTITY_PREFIXED(psa_t30_report_ind)
  #define psa_t30_error_ind         _ENTITY_PREFIXED(psa_t30_error_ind)
  #define psa_t30_eol_ind           _ENTITY_PREFIXED(psa_t30_eol_ind)
  #define psa_t30_deactivate_cnf    _ENTITY_PREFIXED(psa_t30_deactivate_cnf)
  #define psa_t30_activate_cnf      _ENTITY_PREFIXED(psa_t30_activate_cnf)
  #define psa_t30_preamble_ind      _ENTITY_PREFIXED(psa_t30_preamble_ind)
#endif
  #define psa_l2r_activate_cnf      _ENTITY_PREFIXED(psa_l2r_activate_cnf)
  #define psa_l2r_deactivate_cnf    _ENTITY_PREFIXED(psa_l2r_deactivate_cnf)
  #define psa_l2r_connect_cnf       _ENTITY_PREFIXED(psa_l2r_connect_cnf)
  #define psa_l2r_connect_ind       _ENTITY_PREFIXED(psa_l2r_connect_ind)
  #define psa_l2r_disc_cnf          _ENTITY_PREFIXED(psa_l2r_disc_cnf)
  #define psa_l2r_disc_ind          _ENTITY_PREFIXED(psa_l2r_disc_ind)
  #define psa_l2r_xid_ind           _ENTITY_PREFIXED(psa_l2r_xid_ind)
  #define psa_l2r_error_ind         _ENTITY_PREFIXED(psa_l2r_error_ind)
  #define psa_l2r_reset_ind         _ENTITY_PREFIXED(psa_l2r_reset_ind)
  #define psa_l2r_statistic_ind     _ENTITY_PREFIXED(psa_l2r_statistic_ind)
  #define psa_l2r_dti_cnf           _ENTITY_PREFIXED(psa_l2r_dti_cnf)
  #define psa_l2r_dti_ind           _ENTITY_PREFIXED(psa_l2r_dti_ind)
  #define psa_tra_activate_cnf      _ENTITY_PREFIXED(psa_tra_activate_cnf)
  #define psa_tra_deactivate_cnf    _ENTITY_PREFIXED(psa_tra_deactivate_cnf)
  #define psa_tra_dti_cnf           _ENTITY_PREFIXED(psa_tra_dti_cnf)
  #define psa_tra_dti_ind           _ENTITY_PREFIXED(psa_tra_dti_ind)

#ifdef UART
/* UART */
  #define psa_uart_parameters_cnf    _ENTITY_PREFIXED(psa_uart_parameters_cnf)
  #define psa_uart_parameters_ind    _ENTITY_PREFIXED(psa_uart_parameters_ind)
  #define psa_uart_dti_cnf           _ENTITY_PREFIXED(psa_uart_dti_cnf)
  #define psa_uart_dti_ind           _ENTITY_PREFIXED(psa_uart_dti_ind)
  #define psa_uart_disable_cnf           _ENTITY_PREFIXED(psa_uart_disable_cnf)
  #define psa_uart_ring_cnf              _ENTITY_PREFIXED(psa_uart_ring_cnf)
  #define psa_uart_dcd_cnf               _ENTITY_PREFIXED(psa_uart_dcd_cnf)
  #define psa_uart_break_cnf             _ENTITY_PREFIXED(psa_uart_break_cnf)
  #define psa_uart_break_ind             _ENTITY_PREFIXED(psa_uart_break_ind)
  #define psa_uart_error_ind             _ENTITY_PREFIXED(psa_uart_error_ind)
  #define psa_uart_mux_start_cnf         _ENTITY_PREFIXED(psa_uart_mux_start_cnf)
  #define psa_uart_mux_dlc_establish_ind _ENTITY_PREFIXED(psa_uart_mux_dlc_establish_ind)
  #define psa_uart_mux_dlc_release_ind   _ENTITY_PREFIXED(psa_uart_mux_dlc_release_ind)
  #define psa_uart_mux_close_ind         _ENTITY_PREFIXED(psa_uart_mux_close_ind)
#endif

#if defined(FF_TCP_IP) || defined(FF_ESIM)
/* AAA */
  #define psa_aaa_cmd_req              _ENTITY_PREFIXED(psa_aaa_cmd_req)
  #define psa_aaa_open_port_req      _ENTITY_PREFIXED(psa_aaa_open_port_req)
  #define psa_aaa_close_port_req       _ENTITY_PREFIXED(psa_aaa_close_port_req)
  #define psa_aaa_dti_rsp            _ENTITY_PREFIXED(psa_aaa_dti_rsp)
  #define psa_aaa_disconnect_rsp     _ENTITY_PREFIXED(psa_aaa_disconnect_rsp)
#endif

#ifdef GPRS
/* GMMREG */
  #define psa_gmmreg_attach_cnf     _ENTITY_PREFIXED(psa_gmmreg_attach_cnf)
  #define psa_gmmreg_attach_rej     _ENTITY_PREFIXED(psa_gmmreg_attach_rej)
  #define psa_gmmreg_detach_cnf     _ENTITY_PREFIXED(psa_gmmreg_detach_cnf)
  #define psa_gmmreg_detach_ind     _ENTITY_PREFIXED(psa_gmmreg_detach_ind)
  #define psa_gmmreg_plmn_ind       _ENTITY_PREFIXED(psa_gmmreg_plmn_ind)
  #define psa_gmmreg_suspend_ind    _ENTITY_PREFIXED(psa_gmmreg_suspend_ind)
  #define psa_gmmreg_resume_ind     _ENTITY_PREFIXED(psa_gmmreg_resume_ind)
  #define psa_gmmreg_info_ind       _ENTITY_PREFIXED(psa_gmmreg_info_ind)
  #define psa_gmmreg_ciphering_ind  _ENTITY_PREFIXED(psa_gmmreg_ciphering_ind)
  #define psa_gmmreg_ahplmn_ind     _ENTITY_PREFIXED(psa_gmmreg_ahplmn_ind)

/* SMREG */
  #define psa_smreg_pdp_activate_cnf    _ENTITY_PREFIXED(psa_smreg_pdp_activate_cnf)
  #define psa_smreg_pdp_activate_rej    _ENTITY_PREFIXED(psa_smreg_pdp_activate_rej)
  #define psa_smreg_pdp_activate_ind    _ENTITY_PREFIXED(psa_smreg_pdp_activate_ind)
  #define psa_smreg_pdp_deactivate_cnf  _ENTITY_PREFIXED(psa_smreg_pdp_deactivate_cnf)
  #define psa_smreg_pdp_deactivate_ind  _ENTITY_PREFIXED(psa_smreg_pdp_deactivate_ind)
  #define psa_smreg_pdp_modify_ind      _ENTITY_PREFIXED(psa_smreg_pdp_modify_ind)

/* SN */
  #define psa_sn_count_cnf          _ENTITY_PREFIXED(psa_sn_count_cnf)
  #define psa_sn_switch_cnf         _ENTITY_PREFIXED(psa_sn_switch_cnf)

/* PPP */
/*  #define psa_ppp_establish_cnf         _ENTITY_PREFIXED(psa_ppp_establish_cnf) */
/*  #define psa_ppp_terminate_ind         _ENTITY_PREFIXED(psa_ppp_terminate_ind) */
/*  #define psa_ppp_pdp_activate_ind      _ENTITY_PREFIXED(psa_ppp_pdp_activate_ind) */
/*  #define psa_ppp_modification_cnf      _ENTITY_PREFIXED(psa_ppp_modification_cnf) */
/*  #define psa_ppp_dti_connected_ind     _ENTITY_PREFIXED(psa_ppp_dti_connected_ind) */

#ifdef FF_PKTIO
  #define psa_pkt_connect_ind         _ENTITY_PREFIXED(psa_pkt_connect_ind)
  #define psa_pkt_disconnect_ind      _ENTITY_PREFIXED(psa_pkt_disconnect_ind)
  #define psa_pkt_dti_open_cnf        _ENTITY_PREFIXED(psa_pkt_dti_open_cnf)
  #define psa_pkt_modify_cnf          _ENTITY_PREFIXED(psa_pkt_modify_cnf)
  #define psa_pkt_dti_close_cnf       _ENTITY_PREFIXED(psa_pkt_dti_close_cnf)
  #define psa_pkt_dti_close_ind       _ENTITY_PREFIXED(psa_pkt_dti_close_ind)
#endif

#endif  /* GPRS */

#ifdef FF_PSI
  #define psa_psi_conn_ind         _ENTITY_PREFIXED(psa_psi_conn_ind)
  #define psa_psi_disconn_ind      _ENTITY_PREFIXED(psa_psi_disconn_ind)
  #define psa_psi_close_cnf      _ENTITY_PREFIXED(psa_psi_close_cnf)
  #define psa_psi_setconf_cnf   _ENTITY_PREFIXED(psa_psi_setconf_cnf)
  #define psa_psi_dti_open_cnf        _ENTITY_PREFIXED(psa_psi_dti_open_cnf)
  #define psa_psi_dti_close_cnf       _ENTITY_PREFIXED(psa_psi_dti_close_cnf)
  #define psa_psi_dti_close_ind       _ENTITY_PREFIXED(psa_psi_dti_close_ind)
  #define psa_psi_line_state_cnf       _ENTITY_PREFIXED(psa_psi_line_state_cnf)
  #define psa_psi_line_state_ind      _ENTITY_PREFIXED (psa_psi_line_state_ind)
#ifdef _SIMULATION_
  #define psa_psi_conn_ind_test       _ENTITY_PREFIXED(psa_psi_conn_ind_test)
#endif /* _SIMULATION_ */
#endif /*FF_PSI*/

/* PPP */
#if defined (FF_WAP) || defined (GPRS) || defined (FF_TCP_IP) || defined(FF_GPF_TCPIP) || defined (FF_SAT_E)
  #define psa_ppp_establish_cnf         _ENTITY_PREFIXED(psa_ppp_establish_cnf)
  #define psa_ppp_terminate_ind         _ENTITY_PREFIXED(psa_ppp_terminate_ind)
  #define psa_ppp_pdp_activate_ind      _ENTITY_PREFIXED(psa_ppp_pdp_activate_ind)
  #define psa_ppp_modification_cnf      _ENTITY_PREFIXED(psa_ppp_modification_cnf)
  #define psa_ppp_dti_connected_ind     _ENTITY_PREFIXED(psa_ppp_dti_connected_ind)
#endif /* FF_WAP OR GPRS OR FF_TCP_IP OR FF_GPF_TCPIP OR (FF_SAT_E)*/

#if defined FF_EOTD
  #define psa_mnlc_sms_meas_cnf           _ENTITY_PREFIXED(psa_mnlc_sms_meas_cnf)
#endif /* FF_EOTD */

#endif /* OPTIO_MULTITHREAD */

EXTERN const void psa_sim_read_cnf          ( T_SIM_READ_CNF * );
EXTERN const void psa_sim_update_cnf        ( T_SIM_UPDATE_CNF * );
EXTERN const void psa_sim_read_record_cnf   ( T_SIM_READ_RECORD_CNF * );
EXTERN const void psa_sim_update_record_cnf ( T_SIM_UPDATE_RECORD_CNF * );
EXTERN const void psa_sim_increment_cnf     ( T_SIM_INCREMENT_CNF * );
EXTERN const void psa_sim_verify_pin_cnf    ( T_SIM_VERIFY_PIN_CNF * );
EXTERN const void psa_sim_change_pin_cnf    ( T_SIM_CHANGE_PIN_CNF * );
EXTERN const void psa_sim_disable_pin_cnf   ( T_SIM_DISABLE_PIN_CNF * );
EXTERN const void psa_sim_enable_pin_cnf    ( T_SIM_ENABLE_PIN_CNF * );
EXTERN const void psa_sim_unblock_cnf       ( T_SIM_UNBLOCK_CNF * );
EXTERN const void psa_sim_sync_cnf          ( T_SIM_SYNC_CNF * );
EXTERN const void psa_sim_activate_cnf      ( T_SIM_ACTIVATE_CNF * );
EXTERN const void psa_sim_activate_ind      ( T_SIM_ACTIVATE_IND * );
EXTERN const void psa_sim_access_cnf        ( T_SIM_ACCESS_CNF * );
#ifdef SIM_TOOLKIT
EXTERN const void psa_sim_toolkit_ind       ( T_SIM_TOOLKIT_IND * );
EXTERN const void psa_sim_toolkit_cnf       ( T_SIM_TOOLKIT_CNF * );
EXTERN const void psa_sim_file_update_ind   ( T_SIM_FILE_UPDATE_IND * );
#ifdef FF_SAT_E
#ifdef UART
EXTERN const void psa_sim_bip_config_cnf    ( T_SIM_BIP_CONFIG_CNF * );
EXTERN const void psa_sim_bip_cnf           ( T_SIM_BIP_CNF * );
EXTERN const void psa_sim_dti_cnf           ( T_SIM_DTI_CNF * );
EXTERN const void psa_sim_dti_bip_ind       ( T_SIM_DTI_BIP_IND * );
#endif /* UART */
#endif /* FF_SAT_E */
EXTERN const void psa_sim_eventlist_cnf ( T_SIM_EVENTLIST_CNF *sim_eventlist_cnf );
#endif /* SIM_TOOKIT */
EXTERN const void psa_sim_mmi_insert_ind    ( T_SIM_MMI_INSERT_IND * );
EXTERN const void psa_sim_remove_ind        ( T_SIM_REMOVE_IND * );

EXTERN const void psa_mmr_reg_cnf           ( T_MMR_REG_CNF  * );
#ifdef FF_EM_MODE
EXTERN const void psa_em_sc_info_cnf          ( T_EM_SC_INFO_CNF  * );
EXTERN const void psa_em_sc_gprs_info_cnf     ( T_EM_SC_GPRS_INFO_CNF  * );
EXTERN const void psa_em_nc_info_cnf          ( T_EM_NC_INFO_CNF  * );
EXTERN const void psa_em_loc_pag_info_cnf     ( T_EM_LOC_PAG_INFO_CNF  * );
EXTERN const void psa_em_plmn_info_cnf        ( T_EM_PLMN_INFO_CNF  * );
EXTERN const void psa_em_cip_hop_dtx_info_cnf ( T_EM_CIP_HOP_DTX_INFO_CNF  * );
EXTERN const void psa_em_power_info_cnf       ( T_EM_POWER_INFO_CNF  * );
EXTERN const void psa_em_identity_info_cnf    ( T_EM_IDENTITY_INFO_CNF  * );
EXTERN const void psa_em_sw_version_info_cnf  ( T_EM_SW_VERSION_INFO_CNF  * );
EXTERN const void em_event_trace_ind          ( T_EM_DATA_IND * em_data_ind);
EXTERN const void psa_em_gmm_info_cnf         ( T_EM_GMM_INFO_CNF  * );
EXTERN const void psa_em_grlc_info_cnf        ( T_EM_GRLC_INFO_CNF  * );
EXTERN const void psa_em_amr_info_cnf         ( T_EM_AMR_INFO_CNF  * );
#endif /* FF_EM_MODE */
EXTERN const void psa_mmr_nreg_cnf          ( T_MMR_NREG_CNF * );
EXTERN const void psa_mmr_nreg_ind          ( T_MMR_NREG_IND * );
EXTERN const void psa_mmr_plmn_ind          ( T_MMR_PLMN_IND * );
EXTERN const void psa_mmr_info_ind          ( T_MMR_INFO_IND * );
EXTERN const void psa_mmr_ciphering_ind     ( T_MMR_CIPHERING_IND * );
EXTERN const void psa_mmr_ahplmn_ind        ( T_MMR_AHPLMN_IND * );

EXTERN const void psa_mncc_setup_ind        ( T_MNCC_SETUP_IND * );
EXTERN const void psa_mncc_setup_cnf        ( T_MNCC_SETUP_CNF * );
EXTERN const void psa_mncc_setup_compl_ind  ( T_MNCC_SETUP_COMPL_IND * );
EXTERN const void psa_mncc_reject_ind       ( T_MNCC_REJECT_IND * );
EXTERN const void psa_mncc_release_ind      ( T_MNCC_RELEASE_IND * );
EXTERN const void psa_mncc_release_cnf      ( T_MNCC_RELEASE_CNF * );
EXTERN const void psa_mncc_disconnect_ind   ( T_MNCC_DISCONNECT_IND * );
EXTERN const void psa_mncc_alert_ind        ( T_MNCC_ALERT_IND * );
EXTERN const void psa_mncc_call_proceed_ind ( T_MNCC_CALL_PROCEED_IND * );
EXTERN const void psa_mncc_progress_ind     ( T_MNCC_PROGRESS_IND * );
EXTERN const void psa_mncc_hold_cnf         ( T_MNCC_HOLD_CNF * );
EXTERN const void psa_mncc_retrieve_cnf     ( T_MNCC_RETRIEVE_CNF * );
EXTERN const void psa_mncc_sync_ind         ( T_MNCC_SYNC_IND * );
EXTERN const void psa_mncc_user_ind         ( T_MNCC_USER_IND * );
EXTERN const void psa_mncc_start_dtmf_cnf   ( T_MNCC_START_DTMF_CNF * );
EXTERN const void psa_mncc_facility_ind     ( T_MNCC_FACILITY_IND * );
EXTERN const void psa_mncc_modify_ind       ( T_MNCC_MODIFY_IND * );
EXTERN const void psa_mncc_modify_cnf       ( T_MNCC_MODIFY_CNF * );
EXTERN const void psa_mncc_bearer_cap_cnf   ( T_MNCC_BEARER_CAP_CNF * );
EXTERN const void psa_mncc_prompt_ind       ( T_MNCC_PROMPT_IND * );
EXTERN const void psa_mncc_recall_ind       ( T_MNCC_RECALL_IND * );
EXTERN const void psa_mncc_status_ind       ( T_MNCC_STATUS_IND * );

#if defined FF_EOTD
EXTERN const void psa_mnlc_sms_meas_cnf       ( T_MNLC_SMS_MEAS_CNF * );
#endif

EXTERN const void psa_mnss_begin_ind        (T_MNSS_BEGIN_IND *);
EXTERN const void psa_mnss_facility_ind     (T_MNSS_FACILITY_IND *);
EXTERN const void psa_mnss_end_ind          (T_MNSS_END_IND *);

EXTERN const void psa_mnsms_delete_cnf      (T_MNSMS_DELETE_CNF *);
EXTERN const void psa_mnsms_read_cnf        (T_MNSMS_READ_CNF *);
EXTERN const void psa_mnsms_store_cnf       (T_MNSMS_STORE_CNF *);
EXTERN const void psa_mnsms_submit_cnf      (T_MNSMS_SUBMIT_CNF *);
EXTERN const void psa_mnsms_command_cnf     (T_MNSMS_COMMAND_CNF *);
EXTERN const void psa_mnsms_report_ind      (T_MNSMS_REPORT_IND *);
EXTERN const void psa_mnsms_status_ind      (T_MNSMS_STATUS_IND *);
EXTERN const void psa_mnsms_message_ind     (T_MNSMS_MESSAGE_IND *);
EXTERN const void psa_mnsms_error_ind       (T_MNSMS_ERROR_IND *);
EXTERN const void psa_mnsms_resume_cnf      (T_MNSMS_RESUME_CNF *);
EXTERN const void psa_mnsms_query_cnf       (T_MNSMS_QUERY_CNF *);
#ifdef GPRS
  EXTERN const void psa_mnsms_mo_serv_cnf   (T_MNSMS_MO_SERV_CNF *);
#endif  /* GPRS */
#ifdef SIM_PERS_OTA
EXTERN const void psa_mnsms_OTA_decode_ind ( T_MNSMS_OTA_DECODE_IND * );
#endif

EXTERN const void psa_mmi_keypad_ind        (T_MMI_KEYPAD_IND *);
EXTERN const void psa_mmi_rxlev_ind         (T_MMI_RXLEV_IND *);
EXTERN const void psa_mmi_battery_ind       (T_MMI_BATTERY_IND *);
EXTERN const void psa_mmi_cbch_ind          (T_MMI_CBCH_IND *);
#ifdef BTE_MOBILE
EXTERN const void psa_mmi_bt_cb_notify_ind        (T_MMI_BT_CB_NOTIFY_IND *);
#endif
#ifndef VOCODER_FUNC_INTERFACE
EXTERN const void psa_mmi_tch_vocoder_cfg_con(T_MMI_TCH_VOCODER_CFG_CON *);
#endif

#ifdef SIM_TOOLKIT
EXTERN const void psa_sat_cbch_dnl_ind      (T_MMI_SAT_CBCH_DWNLD_IND *);
#endif

#ifdef FAX_AND_DATA
EXTERN const void psa_ra_activate_cnf       (T_RA_ACTIVATE_CNF *);
EXTERN const void psa_ra_deactivate_cnf     (T_RA_DEACTIVATE_CNF *);

#ifdef FF_FAX
EXTERN const void psa_ra_modify_cnf         (T_RA_MODIFY_CNF *);

EXTERN const void psa_t30_cap_ind           (T_T30_CAP_IND *);
EXTERN const void psa_t30_dti_cnf           (T_T30_DTI_CNF *);
EXTERN const void psa_t30_dti_ind           (T_T30_DTI_IND *);
EXTERN const void psa_t30_phase_ind         (T_T30_PHASE_IND *);
EXTERN const void psa_t30_sgn_ind           (T_T30_SGN_IND *);
EXTERN const void psa_t30_cmpl_ind          (T_T30_CMPL_IND *);
EXTERN const void psa_t30_report_ind        (T_T30_REPORT_IND *);
EXTERN const void psa_t30_error_ind         (T_T30_ERROR_IND *);
EXTERN const void psa_t30_eol_ind           (T_T30_EOL_IND *);
EXTERN const void psa_t30_deactivate_cnf    (T_T30_DEACTIVATE_CNF *);
EXTERN const void psa_t30_activate_cnf      (T_T30_ACTIVATE_CNF *);
EXTERN const void psa_t30_preamble_ind      (T_T30_PREAMBLE_IND *);
#endif /* FF_FAX */

#ifdef BT_ADAPTER
EXTERN const void psa_btp_dti_ind( T_BTP_DTI_IND *);
EXTERN const void psa_btp_dti_cnf( T_BTP_DTI_IND *);
#endif /* BT_ADAPTER */

EXTERN const void psa_l2r_activate_cnf      (T_L2R_ACTIVATE_CNF   *);
EXTERN const void psa_l2r_deactivate_cnf    (T_L2R_DEACTIVATE_CNF *);
EXTERN const void psa_l2r_connect_cnf       (T_L2R_CONNECT_CNF *);
EXTERN const void psa_l2r_connect_ind       (T_L2R_CONNECT_IND *);
EXTERN const void psa_l2r_disc_cnf          (T_L2R_DISC_CNF *);
EXTERN const void psa_l2r_disc_ind          (T_L2R_DISC_IND *);
EXTERN const void psa_l2r_xid_ind           (T_L2R_XID_IND *);
EXTERN const void psa_l2r_error_ind         (T_L2R_ERROR_IND *);
EXTERN const void psa_l2r_reset_ind         (T_L2R_RESET_IND *);
EXTERN const void psa_l2r_statistic_ind     (T_L2R_STATISTIC_IND *);
EXTERN const void psa_l2r_dti_cnf           (T_L2R_DTI_CNF *);
EXTERN const void psa_l2r_dti_ind           (T_L2R_DTI_IND *);

EXTERN const void psa_tra_activate_cnf      (T_TRA_ACTIVATE_CNF   *);
EXTERN const void psa_tra_deactivate_cnf    (T_TRA_DEACTIVATE_CNF *);
EXTERN const void psa_tra_dti_cnf           (T_TRA_DTI_CNF *);
EXTERN const void psa_tra_dti_ind           (T_TRA_DTI_IND *);
#endif /* FAX_AND_DATA */

#ifdef FF_GPF_TCPIP
EXTERN const void psa_tcpip_dti_cnf          (T_TCPIP_DTI_CNF    *);
EXTERN const void psa_tcpip_ifconfig_cnf     (T_TCPIP_IFCONFIG_CNF *);
EXTERN const void psa_tcpip_initialize_cnf     (T_TCPIP_INITIALIZE_CNF *);
EXTERN const void psa_tcpip_shutdown_cnf  (T_TCPIP_SHUTDOWN_CNF * );
#endif

#ifdef CO_UDP_IP
EXTERN const void psa_udpa_dti_cnf           (T_UDPA_DTI_CNF    *);
EXTERN const void psa_udpa_dti_ind           (T_UDPA_DTI_IND    *);
EXTERN const void psa_udpa_config_cnf        (T_UDPA_CONFIG_CNF *);
EXTERN const void psa_ipa_dti_cnf            (T_IPA_DTI_CNF     *);
EXTERN const void psa_ipa_dti_ind            (T_IPA_DTI_IND     *);
EXTERN const void psa_ipa_config_cnf         (T_IPA_CONFIG_CNF  *);
#endif

#ifdef FF_WAP
EXTERN const void psa_wap_mmi_ind   (T_WAP_MMI_IND *);
EXTERN const void psa_wap_mmi_req   (T_WAP_MMI_REQ *);
EXTERN const void psa_wap_mmi_cnf   (T_WAP_MMI_CNF *);
EXTERN const void psa_wap_dti_cnf   (T_WAP_DTI_CNF *);
EXTERN const void psa_wap_dti_ind   (T_WAP_DTI_IND *);
#endif

#ifdef UART
/* UART */
  EXTERN const void psa_uart_parameters_cnf       (T_UART_PARAMETERS_CNF   *);
  EXTERN const void psa_uart_parameters_ind       (T_UART_PARAMETERS_IND   *);
  EXTERN const void psa_uart_escape_cnf           (T_UART_ESCAPE_CNF       *);
  EXTERN const void psa_uart_dti_cnf              (T_UART_DTI_CNF          *);
  EXTERN const void psa_uart_dti_ind              (T_UART_DTI_IND          *);
  EXTERN const void psa_uart_detected_ind         (T_UART_DETECTED_IND     *);
  EXTERN const void psa_uart_disable_cnf          (T_UART_DISABLE_CNF      *);
  EXTERN const void psa_uart_ring_cnf             (T_UART_RING_CNF         *);
  EXTERN const void psa_uart_dcd_cnf              (T_UART_DCD_CNF          *);
  EXTERN const void psa_uart_mux_start_cnf        (T_UART_MUX_START_CNF    *);
  EXTERN const void psa_uart_error_ind            (T_UART_ERROR_IND        *);
  EXTERN const void psa_uart_mux_dlc_establish_ind   (T_UART_MUX_DLC_ESTABLISH_IND *);
  EXTERN const void psa_uart_mux_dlc_release_ind  (T_UART_MUX_DLC_RELEASE_IND *);
  EXTERN const void psa_uart_mux_close_ind        (T_UART_MUX_CLOSE_IND    *);
#endif

#if defined(FF_TCP_IP) || defined (FF_ESIM)
/* AAA */
  EXTERN const void  psa_aaa_cmd_req            (T_AAA_CMD_REQ         *);
  EXTERN const void  psa_aaa_open_port_req    (T_AAA_OPEN_PORT_REQ   *);
  EXTERN const void  psa_aaa_close_port_req   (T_AAA_CLOSE_PORT_REQ  *);
  EXTERN const void  psa_aaa_dti_rsp          (T_AAA_DTI_RES         *);
  EXTERN const void  psa_aaa_disconnect_rsp   (T_AAA_DISCONNECT_RES  *);
#endif

#ifdef GPRS
/* GMMREG */
  EXTERN const void psa_gmmreg_attach_cnf         (T_GMMREG_ATTACH_CNF    *);
  EXTERN const void psa_gmmreg_attach_rej         (T_GMMREG_ATTACH_REJ    *);
  EXTERN const void psa_gmmreg_detach_cnf         (T_GMMREG_DETACH_CNF    *);
  EXTERN const void psa_gmmreg_detach_ind         (T_GMMREG_DETACH_IND    *);
  EXTERN const void psa_gmmreg_plmn_ind           (T_GMMREG_PLMN_IND      *);
  EXTERN const void psa_gmmreg_suspend_ind        (T_GMMREG_SUSPEND_IND   *);
  EXTERN const void psa_gmmreg_resume_ind         (T_GMMREG_RESUME_IND    *);
  EXTERN const void psa_gmmreg_info_ind           (T_GMMREG_INFO_IND      *);
  EXTERN const void psa_gmmreg_ciphering_ind      (T_GMMREG_CIPHERING_IND *);
  EXTERN const void psa_gmmreg_ahplmn_ind         (T_GMMREG_AHPLMN_IND    *);

/* SMREG */
  EXTERN const void psa_smreg_pdp_activate_cnf    (T_SMREG_PDP_ACTIVATE_CNF   *);
  EXTERN const void psa_smreg_pdp_activate_rej    (T_SMREG_PDP_ACTIVATE_REJ   *);
  EXTERN const void psa_smreg_pdp_activate_ind    (T_SMREG_PDP_ACTIVATE_IND   *);
  EXTERN const void psa_smreg_pdp_deactivate_cnf  (T_SMREG_PDP_DEACTIVATE_CNF *);
  EXTERN const void psa_smreg_pdp_deactivate_ind  (T_SMREG_PDP_DEACTIVATE_IND *);
  EXTERN const void psa_smreg_pdp_modify_ind      (T_SMREG_PDP_MODIFY_IND     *);

/* SN */
  EXTERN const void psa_sn_count_cnf    (T_SN_COUNT_CNF   *);
  EXTERN const void psa_sn_switch_cnf   (T_SN_SWITCH_CNF   *);

#ifdef FF_PKTIO
  EXTERN  const void psa_pkt_connect_ind    ( T_PKT_CONNECT_IND *);
  EXTERN  const void psa_pkt_disconnect_ind ( T_PKT_DISCONNECT_IND *);
  EXTERN  const void psa_pkt_dti_close_cnf  ( T_PKT_DTI_CLOSE_CNF *);
  EXTERN  const void psa_pkt_dti_close_ind  ( T_PKT_DTI_CLOSE_IND *);
  EXTERN  const void psa_pkt_dti_open_cnf   ( T_PKT_DTI_OPEN_CNF *);
  EXTERN  const void psa_pkt_modify_cnf     ( T_PKT_MODIFY_CNF *);
#endif
#endif  /* GPRS */

#ifdef FF_PSI
  EXTERN  const void psa_psi_conn_ind    ( T_PSI_CONN_IND *);
  EXTERN  const void psa_psi_disconn_ind ( T_PSI_DISCONN_IND *);
  EXTERN  const void psa_psi_dti_close_cnf  ( T_PSI_DTI_CLOSE_CNF *);
  EXTERN  const void psa_psi_dti_close_ind  ( T_PSI_DTI_CLOSE_IND *);
  EXTERN  const void psa_psi_dti_open_cnf   ( T_PSI_DTI_OPEN_CNF *);
  EXTERN  const void psa_psi_close_cnf  (T_PSI_CLOSE_CNF *);
  EXTERN const void psa_psi_setconf_cnf (T_PSI_SETCONF_CNF *);
  EXTERN  const void psa_psi_line_state_cnf  (T_PSI_LINE_STATE_CNF *);
  EXTERN  const void psa_psi_line_state_ind  (T_PSI_LINE_STATE_IND *);
#ifdef _SIMULATION_
  EXTERN  const void psa_psi_conn_ind_test   ( T_PSI_CONN_IND_TEST *);
#endif /* _SIMULATION_ */
#endif /*FF_PSI*/

/* PPP */
#if defined (FF_WAP) || defined (GPRS) || defined (FF_TCP_IP) || defined(FF_GPF_TCPIP) || defined (FF_SAT_E) 
  EXTERN const void psa_ppp_establish_cnf         (T_PPP_ESTABLISH_CNF     *);
  EXTERN const void psa_ppp_terminate_ind         (T_PPP_TERMINATE_IND     *);
  EXTERN const void psa_ppp_dti_connected_ind     (T_PPP_DTI_CONNECTED_IND *);
  EXTERN const void psa_ppp_pdp_activate_ind      (T_PPP_PDP_ACTIVATE_IND  *);
  EXTERN const void psa_ppp_modification_cnf      (T_PPP_MODIFICATION_CNF  *);
#endif /* FF_WAP or GPRS OR FF_TCP_IP OR FF_GPF_TCPIP OR || (FF_SAT_E) */

/*DCM*/
#ifdef FF_GPF_TCPIP
  EXTERN const void psa_dcm_open_conn_req(T_DCM_OPEN_CONN_REQ    *);
  EXTERN const void psa_dcm_close_conn_req(T_DCM_CLOSE_CONN_REQ  *);
  EXTERN const void psa_dcm_get_current_conn_req(T_DCM_GET_CURRENT_CONN_REQ *);
#endif

#if defined FF_EOTD
EXTERN const void psa_mnlc_sms_meas_cnf           (T_MNLC_SMS_MEAS_CNF *);
#endif /* FF_EOTD */
/*
 * UTILITY module
 */

/*
 * Prototypes Customer Specific Functions
 */

/*
 * If all entities are linked into one module this definitions
 * prefixes all this functions with the enity name
 */

#define PSENDX(A,B) PSEND(hComm##A,B)

#endif