diff src/g23m-aci/uart/uart_drxf.c @ 1:d393cd9bb723

src/g23m-*: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:40:46 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/g23m-aci/uart/uart_drxf.c	Sun Jul 15 04:40:46 2018 +0000
@@ -0,0 +1,129 @@
+/* 
++----------------------------------------------------------------------------- 
+|  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 UART and implements all 
+|             procedures and functions as described in the 
+|             SDL-documentation (DRX-statemachine)
++----------------------------------------------------------------------------- 
+*/ 
+
+#ifndef UART_DRXF_C
+#define UART_DRXF_C
+#endif /* !UART_DRXF_C */
+
+#define ENTITY_UART
+
+/*==== INCLUDES =============================================================*/
+
+#ifdef WIN32
+#include "nucleus.h"
+#endif /* WIN32 */
+#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"
+#include "gsm.h"        /* to get a lot of macros */
+#include "cnf_uart.h"   /* to get cnf-definitions */
+#include "mon_uart.h"   /* to get mon-definitions */
+#include "prim.h"       /* to get the definitions of used SAP and directions */
+#include "dti.h"        /* to get dti lib */
+#include "pei.h"        /* to get PEI interface */
+#ifdef FF_MULTI_PORT
+#include "gsi.h"        /* to get definitions of serial driver */
+#else /* FF_MULTI_PORT */
+#ifdef _TARGET_
+#include "uart/serialswitch.h"
+#include "uart/traceswitch.h"
+#else /* _TARGET_ */
+#include "serial_dat.h" /* to get definitions of serial driver */
+#endif /* _TARGET_ */
+#endif /* FF_MULTI_PORT */
+#include "uart.h"       /* to get the global entity definitions */
+
+/*==== CONST ================================================================*/
+
+/*==== LOCAL VARS ===========================================================*/
+
+/*==== PRIVATE FUNCTIONS ====================================================*/
+
+/*==== PUBLIC FUNCTIONS =====================================================*/
+
+
+
+/*
++------------------------------------------------------------------------------
+     Function    : drx_init
++------------------------------------------------------------------------------
+     Description : The function drx_init() initializes the service DRX
+    
+     Parameters  : none
+    
++------------------------------------------------------------------------------
+*/
+GLOBAL void drx_init ()
+{ 
+  UBYTE i;
+
+  TRACE_FUNCTION( "drx_init" );
+
+  for( i = 0; i < UART_MAX_NUMBER_OF_CHANNELS; i++ )
+  {
+    /*
+     * select next instance of service DRX
+     */
+    uart_data->drx = &uart_data->drx_base[i];
+
+    /*
+     * initialize service instance specific variables
+     */
+    uart_data->drx->sending_state    = UART_DRX_NOT_SENDING;
+    uart_data->drx->data_flow        = UART_FLOW_ENABLED;
+
+    uart_data->drx->dlc_instance     = i;
+
+    uart_data->drx->received_data    = NULL;
+    uart_data->drx->read_pos         = 0;
+
+    uart_data->drx->dti_drx_state = DTI_CLOSED;
+
+    INIT_STATE( UART_SERVICE_DRX , DRX_DEAD );
+  }
+} /* drx_init() */
+
+
+
+/*
++------------------------------------------------------------------------------
+     Function    : drx_free_resources
++------------------------------------------------------------------------------
+     Description : The function drx_free_resources() frees all resources of the 
+                   service DRX
+    
+     Parameters  : none
+    
++------------------------------------------------------------------------------
+*/
+GLOBAL void drx_free_resources ()
+{
+  TRACE_FUNCTION( "drx_free_resources" );
+
+  if(uart_data->drx->received_data)
+  {
+    MFREE_DESC2( uart_data->drx->received_data );
+  }
+  uart_data->drx->received_data = NULL;
+  uart_data->drx->read_pos = 0;
+} /* drx_free_resources() */