FreeCalypso > hg > fc-magnetite
diff src/g23m-fad/ppp/ppp_prxf.c @ 174:90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 12 Oct 2016 05:40:46 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-fad/ppp/ppp_prxf.c Wed Oct 12 05:40:46 2016 +0000 @@ -0,0 +1,147 @@ +/* ++----------------------------------------------------------------------------- +| Project : +| Modul : ++----------------------------------------------------------------------------- +| 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 : This modul is part of the entity PPP and implements all +| procedures and functions as described in the +| SDL-documentation (PRX-statemachine) ++----------------------------------------------------------------------------- +*/ + +#define ENTITY_PPP + +/*==== INCLUDES =============================================================*/ + +#include "typedefs.h" /* to get Condat data types */ +#include "vsi.h" /* to get a lot of macros */ +#include "macdef.h" /* to get a lot of macros */ +#include "custom.h" /* to get a lot of macros */ +/*lint -efile(766,gsm.h) */ +#include "gsm.h" /* to get a lot of macros */ +/*lint -efile(766,cnf_ppp.h) */ +#include "cnf_ppp.h" /* to get cnf-definitions */ +/*lint -efile(766,mon_ppp.h) */ +#include "mon_ppp.h" /* to get mon-definitions */ +#include "prim.h" /* to get the definitions of used SAP and directions */ +#include "dti.h" /* to get the DTILIB definitions */ +#include "ppp.h" /* to get the global entity definitions */ + +#ifdef FF_STATUS_TE +#include "gdi.h" /* To include driver type-defines */ +#include "ste.h" /* To include function interface for TE status driver */ +#include "ppp_prxf.h" /* To include call-back function for TE status driver */ +#endif /* FF_STATUS_TE */ +/*==== CONST ================================================================*/ + +/*==== LOCAL VARS ===========================================================*/ + +/*==== PRIVATE FUNCTIONS ====================================================*/ + +/*==== PUBLIC FUNCTIONS =====================================================*/ + + + +/* ++------------------------------------------------------------------------------ +| Function : prx_init ++------------------------------------------------------------------------------ +| Description : The function prx_init() initializes Packet Receive (PRX) +| +| Parameters : no parameters +| ++------------------------------------------------------------------------------ +*/ +GLOBAL void prx_init () +{ + TRACE_FUNCTION( "prx_init" ); + +#if defined FF_STATUS_TE + /* + * Init of the TE status driver - the handle is unique inside PPP only, SMN + * PPP handle-management are placed in the end of ppp.h + */ + if (DRV_OK NEQ STE_Init( STE_HANDLE, cb_status_TE )) + { + /* + * Error during init of TE status driver - either it is already init or it has failed + */ + TRACE_ERROR( "STE driver init. error" ); + } + else + { + +#ifdef _SIMULATION_ + TRACE_EVENT( "Return DRV_OK from STE_Init()" ); +#endif /* _SIMULATION_ */ + + /* + * Setup of used signal-types for driver to trig a callback + */ + if (DRV_OK NEQ STE_SetSignal( DRV_SIGTYPE_READ )) + { + /* + * Error during signal-set - either signal illegal, not available or internal fail + */ + TRACE_ERROR( "STE driver setup error" ); + } +#ifdef _SIMULATION_ + else + { + TRACE_EVENT( "Return DRV_OK from STE_SetSignal()" ); + } +#endif /* _SIMULATION_ */ + } + /* + * initialize variables + */ + ppp_data->prx.TE_data_buffer_desc_list_first = NULL; + ppp_data->prx.TE_data_buffer_p_id = DTI_PID_UOS; + ppp_data->prx.TE_data_buffered = FALSE; +#endif /* FF_STATUS_TE */ + + INIT_STATE( PPP_SERVICE_PRX , PRX_DEAD ); +} /* prx_init() */ + + + +#ifdef FF_STATUS_TE +/* ++------------------------------------------------------------------------------ +| Function : cb_status_TE ++------------------------------------------------------------------------------ +| Description : Handles the call-back from the TE status driver and sends the +| NEW_POWER_STATUS signal to the PS +| +| Parameters : None +| ++------------------------------------------------------------------------------ +*/ +GLOBAL void cb_status_TE (T_DRV_SIGNAL * signal) +{ + + TRACE_FUNCTION( "cb_status_TE" ); + + if((signal->SignalType EQ DRV_SIGTYPE_READ) && + (signal->DrvHandle EQ STE_HANDLE) && + (*((USHORT*)signal->UserData) EQ STE_IDENTIFIER_POWER)) + { + PSIGNAL(hCommPPP, NEW_POWER_STATUS, NULL); + } + else + { + TRACE_ERROR( "STE driver: Signal not supported" ); + } +} /* cb_status_TE() */ +#endif /* FF_STATUS_TE */