diff src/g23m-fad/l2r/l2r_mgts.c @ 1:fa8dc04885d8

src/g23m-*: import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:25:50 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/g23m-fad/l2r/l2r_mgts.c	Fri Oct 16 06:25:50 2020 +0000
@@ -0,0 +1,182 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  CSD (8411)
+|  Modul   :  L2r_mgts.c
++----------------------------------------------------------------------------- 
+|  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 defines the functions for processing 
+|             of incomming signals for the component
+|             L2R of the base station
++----------------------------------------------------------------------------- 
+*/ 
+
+#ifndef L2R_MGTS_C
+#define L2R_MGTS_C
+#endif
+
+#define ENTITY_L2R
+
+/*==== INCLUDES ===================================================*/
+
+#include <string.h>
+#include "typedefs.h"
+#include "pconst.cdg"
+#include "vsi.h"
+#include "macdef.h"
+#include "custom.h"
+#include "gsm.h"
+#include "cus_l2r.h"
+#include "cnf_l2r.h"
+#include "mon_l2r.h"
+#include "prim.h"
+#include "pei.h"
+#include "tok.h"
+#include "dti.h"      /* functionality of the dti library */
+
+#include "cl_ribu.h"
+#include "l2r.h"
+
+/*==== CONST =======================================================*/
+
+/*==== TYPES =======================================================*/
+
+/*==== VAR EXPORT ==================================================*/
+
+/*==== VAR LOCAL ===================================================*/
+
+/*==== FUNCTIONS ===================================================*/
+
+/*
++------------------------------------------------------------------------------
+|  Function    : sig_dn_mgt_break_ind
++------------------------------------------------------------------------------
+|  Description : Process signal SIG_DN_MGT_BREAK_IND received from process DN. 
+|
+|  Parameters  : sa   - 
+|                sb
+|                flow            
+|
+|  Return      : 
++------------------------------------------------------------------------------
+*/
+
+GLOBAL void sig_dn_mgt_break_ind(T_BIT sa, T_BIT sb, T_FLOW flow)
+{
+  TRACE_FUNCTION ("sig_dn_mgt_break_ind()");
+  {
+    PALLOC (dti_data_ind, DTI2_DATA_IND);
+
+    dti_data_ind->parameters.st_lines.st_line_sa = sa;
+    dti_data_ind->parameters.st_lines.st_line_sb = sb;
+
+    switch (flow)
+    {
+    case FL_ACTIVE:
+      dti_data_ind->parameters.st_lines.st_flow = DTI_FLOW_OFF;
+      break;
+    case FL_INACTIVE:
+      dti_data_ind->parameters.st_lines.st_flow = DTI_FLOW_ON;
+      break;
+    }
+    dti_data_ind->desc_list2.first                  = 0;
+    dti_data_ind->desc_list2.list_len               = 0;
+    dti_data_ind->parameters.st_lines.st_break_len  = L2R_BREAK_LEN;
+    dti_data_ind->link_id                           = l2r_data->mgt.link_id;
+    dti_data_ind->parameters.p_id                   = DTI_PID_UOS;
+
+    l2r_data->dn.Brk_dti_data_ind = dti_data_ind;
+    sig_mgt_dn_send_break_req();
+  }
+  sig_mgt_up_clear_req();
+}
+
+/*
++----------------------------------------------------------------------------------
+|  Function    : sig_dn_mgt_first_data_ind
++----------------------------------------------------------------------------------
+|  Description : Process signal SIG_DN_MGT_FIRST_DATA_IND received from process DN.
+|
+|  Parameters  : -
+|                 
+|
+|  Return      : -
++----------------------------------------------------------------------------------
+*/
+
+GLOBAL void sig_dn_mgt_first_data_ind(void)
+{
+  TRACE_FUNCTION ("sig_dn_mgt_first_data_ind()");
+
+  if (GET_STATE (MGT) EQ MGT_CONNECTED)
+  {
+    if (l2r_data->mgt.ConnectPrimType EQ L2R_CONNECT_IND)
+    {
+      PALLOC (l2r_connect_ind, L2R_CONNECT_IND);
+      PSENDX (CTRL, l2r_connect_ind);
+    }
+    else
+    {    
+      mgt_l2r_connect_cnf(L2R_ACK);
+    }
+  }
+}
+
+/*
++------------------------------------------------------------------------------
+|  Function    : sig_up_mgt_break_ind
++------------------------------------------------------------------------------
+|  Description : Process signal SIG_UP_MGT_BREAK_IND received from process DN.
+|
+|  Parameters  : T_DTI2_DATA_REQ  *dti_data_req
+|                 
+|
+|  Return      : -
++------------------------------------------------------------------------------
+*/
+
+GLOBAL void sig_up_mgt_break_ind(T_DTI2_DATA_REQ *dti_data_req)
+{
+  T_FLOW flow = FL_INVALID;
+
+  TRACE_FUNCTION ("sig_up_mgt_break_ind()");
+
+  PACCESS (dti_data_req);
+
+  if (GET_STATE (MGT) EQ MGT_CONNECTED)
+  {
+    switch (GET_STATE (BREAK))
+    {
+    case IW_WAIT:
+      break;
+    case IW_IDLE:
+      switch (dti_data_req->parameters.st_lines.st_flow)
+      {
+      case DTI_FLOW_ON:
+        flow = FL_INACTIVE;
+        break;
+      case DTI_FLOW_OFF:
+        flow = FL_ACTIVE;
+        break;
+      }
+      sig_mgt_dn_break_req();
+
+      sig_mgt_up_break_req
+        (
+        (UBYTE)(dti_data_req->parameters.st_lines.st_line_sa EQ DTI_SA_ON ? DTI_SA_ON : DTI_SA_OFF),
+        (UBYTE)(dti_data_req->parameters.st_lines.st_line_sb EQ DTI_SB_ON ? DTI_SB_ON : DTI_SB_OFF),
+        flow);
+
+      SET_STATE (BREAK, IW_WAIT);
+    }
+  }
+}