view src/g23m-gprs/llc/llc_t200p.c @ 426:2d1cf296fd16
src/ui3/bmi/mmiMain.c: fix to compile without BT
author
Mychaela Falconia <falcon@freecalypso.org>
date
Sun, 21 Jan 2018 04:51:16 +0000 (2018-01-21)
parents
219afcfc6250
children
line source
+ − /*
+ − +-----------------------------------------------------------------------------
+ − | 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 LLC and implements all
+ − | functions to handles the incoming primitives as described in
+ − | the SDL-documentation (T200-statemachine)
+ − +-----------------------------------------------------------------------------
+ − */
+ −
+ − #ifndef LLC_T200P_C
+ − #define LLC_T200P_C
+ − #endif
+ −
+ − #define ENTITY_LLC
+ −
+ − /*==== INCLUDES =============================================================*/
+ −
+ − #include "typedefs.h" /* to get Condat data types */
+ − #include "vsi.h" /* to get a lot of macros */
+ − #include "macdef.h"
+ − #include "gprs.h"
+ − #include "gsm.h" /* to get a lot of macros */
+ − #include "cnf_llc.h" /* to get cnf-definitions */
+ − #include "mon_llc.h" /* to get mon-definitions */
+ − #include "prim.h" /* to get the definitions of used SAP and directions */
+ − #include "llc.h" /* to get the global entity definitions */
+ −
+ − #include "llc_t200f.h" /* to get local T200 functions */
+ − #include "llc_us.h" /* to get signal interface to U */
+ − #include "llc_f.h" /* to get llc functions */
+ −
+ − /*==== CONST ================================================================*/
+ −
+ − /*==== LOCAL VARS ===========================================================*/
+ −
+ − /*==== PRIVATE FUNCTIONS ====================================================*/
+ −
+ − /*==== PUBLIC FUNCTIONS =====================================================*/
+ −
+ −
+ −
+ − /*
+ − +------------------------------------------------------------------------------
+ − | Function : t200_timer_t200
+ − +------------------------------------------------------------------------------
+ − | Description : Handles expiry of timer T200. This function is called from
+ − | pei_primitive().
+ − |
+ − | Parameters : sapi - indicates the SAPI for which the timer has expired
+ − |
+ − +------------------------------------------------------------------------------
+ − */
+ − GLOBAL void t200_timer_t200 (UBYTE sapi)
+ − {
+ − #ifndef LL_DESC
+ − T_LL_UNITDATA_REQ *frame;
+ − #else
+ − T_LL_UNITDESC_REQ *frame;
+ − #endif
+ − UBYTE cause;
+ − T_SERVICE originator;
+ −
+ − TRACE_FUNCTION( "t200_timer_t200" );
+ −
+ − /*
+ − * Switch all service incarnations of LLC according to sapi.
+ − */
+ − SWITCH_LLC (sapi);
+ −
+ − switch (GET_STATE(T200))
+ − {
+ − case T200_RUNNING:
+ − SET_STATE (T200, T200_RESET);
+ −
+ − /*
+ − * No frame with P bit set to 1 is currently outstanding
+ − */
+ − llc_data->sapi->pbit_outstanding = FALSE;
+ −
+ − /*
+ − * Get associated timer data (frame, cause, originating service)
+ − * and send T200 expired signal, if originator is set. Otherwise
+ − * just PFREE the frame.
+ − */
+ − t200_get_timer_data (&frame, &cause, &originator);
+ − if (originator EQ SERVICE_U)
+ − {
+ − TRACE_0_INFO("T200 expired");
+ − sig_t200_u_expired_ind (frame, cause, EXPIRY_TIMED);
+ − }
+ − else
+ − {
+ − TRACE_0_INFO("T200 expired, no service associated, frame discarded");
+ − #ifdef LL_DESC
+ − /*
+ − * The descriptor contents of the primitive structure
+ − * must be freed as well.
+ − */
+ − llc_cl_desc3_free((T_desc3*)llc_data->t200->frame->desc_list3.first);
+ − #endif /* LL_DESC */
+ − PFREE (frame);
+ − }
+ − break;
+ −
+ − default:
+ − t200_get_timer_data (&frame, &cause, &originator);
+ − if (frame != NULL)
+ − {
+ − #ifdef LL_DESC
+ − /*
+ − * The descriptor contents of the primitive structure
+ − * must be freed as well.
+ − */
+ − llc_cl_desc3_free((T_desc3*)llc_data->t200->frame->desc_list3.first);
+ − #endif /* LL_DESC */
+ − PFREE (frame);
+ − }
+ − TRACE_ERROR( "T200 unexpected" );
+ − break;
+ − }
+ −
+ − } /* t200_timer_t200() */
+ −