diff src/g23m-gsm/ss/ss_em.h @ 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-gsm/ss/ss_em.h	Fri Oct 16 06:25:50 2020 +0000
@@ -0,0 +1,178 @@
+/*
++-----------------------------------------------------------------------------
+|  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 : Engineering Mode (EM) Declarations + Macros
+|
++-----------------------------------------------------------------------------
+*/
+#ifndef SS_EM_H
+#define SS_EM_H
+
+#ifdef FF_EM_MODE
+
+
+/*
+ *  Ring buffer is by one bigger than max. number of prims, because it
+ *  needs always one termination entry.
+ *  To optimize the buffersize, the data is packed in the buffer as follows:
+ *  type, length, value
+ *  Value is the combination of the additional parameters as defined in 8443.601, coded as UBYTE.
+ */
+#define EM_SS_BUFFER_SIZE             31
+
+/*
+*   EM_MAX_SS_EVENTS defines maximum number of event traces for the engineering mode.
+*   The number is increased by one to ensure that the event numbers defined in the
+*   corresponding document are the same as in the sources.
+*/
+#define EM_MAX_SS_EVENTS            11
+
+/*
+*  The offset is used to indicate the source entity the event trace is from. 
+*  L1/ALR = 0x00, DL = 0x2D, RR = 0x37, MM = 0x5F, CC = 0x78, SS = 0xAF, SMS = 0xBE, SIM = E1
+*/
+#define SS_OFFSET                   0xAF
+ 
+/*
+*  Type is combination of entity index(upper nibble) plus event number(lower nibble). 
+*  Bit 8  7  6  5  4  3  2  1
+*  |    entity    |  event number |  
+*/
+#define SS_V_1            (1 + SS_OFFSET)
+#define SS_V_2            (2 + SS_OFFSET)
+#define SS_V_3            (3 + SS_OFFSET)
+#define SS_V_4            (4 + SS_OFFSET)
+#define SS_V_5            (5 + SS_OFFSET)
+#define SS_V_6            (6 + SS_OFFSET)
+#define SS_V_7            (7 + SS_OFFSET)
+#define SS_V_8            (8 + SS_OFFSET)
+#define SS_V_9            (9 + SS_OFFSET)
+#define SS_V_10           (10+ SS_OFFSET)
+
+/* Event tracing flags for EM */
+EXTERN BOOL ss_v[EM_MAX_SS_EVENTS];
+
+
+/* -- Functions ----*/
+/*
+ *  suppl. services primitives Engineering Mode
+ *  Bitmask for the event tracing
+ */
+
+EXTERN void ss_em_ss_event_req      (T_EM_SS_EVENT_REQ *em_ss_event_req);
+GLOBAL void em_init_ss_event_trace  (void);
+
+/*
+ * If all entities are linked into one module this definitions
+ * prefixes all this functions with the enity name
+ */
+#ifdef OPTION_MULTITHREAD
+  #define em_write_buffer_3          _ENTITY_PREFIXED(em_write_buffer_3)  
+  #define check_write_index     _ENTITY_PREFIXED(check_write_index)
+#endif
+
+EXTERN UBYTE em_write_buffer_3      (UBYTE event_no, UBYTE value);
+EXTERN UBYTE check_write_index (UBYTE n);
+
+/*---------------Event Macros ----------*/
+
+#define MM_EM_MM_CONNECTION_STARTED\
+           /* MM connection started */\
+          if (ss_v[1])\
+          {\
+           ss_v[1]  = em_write_buffer_3 (SS_V_1 , ss_data->ti);\
+          }  /* ss_v[1]  */
+
+#define MM_EM_MM_CONNECTION_ESTABLISHED\
+          /* MM connection established */\
+        if (ss_v[2])\
+        {\
+         ss_v[2] = em_write_buffer_3 (SS_V_2 , ss_data->ti);\
+        }  /* ss_v[2]  */
+
+#define MM_EM_MM_CONNECTION_FAILED\
+        /* MM connection failed */\
+      if (ss_v[3])\
+      {\
+       ss_v[3] = em_write_buffer_3 (SS_V_3 , ss_data->ti);\
+      }  /* ss_v[3]  */
+
+#define MM_EM_MM_CONNECTION_ABORTED\
+      /* MM connection aborted */\
+      if (ss_v[4])\
+      {\
+       ss_v[4] = em_write_buffer_3 (SS_V_4 , ss_data->ti);\
+      } /* ss_v[4]  */
+
+#define MM_EM_MM_CONNECTION_RELEASED\
+        /* MM connection released */\
+      if (ss_v[5])\
+      {\
+       ss_v[5] = em_write_buffer_3 (SS_V_5 , ss_data->ti);\
+      }  /* ss_v[5]  */
+
+#define MM_EM_REGISTER_MESSAGE_RECEIVED\
+          /* Register message received */\
+        if (ss_v[6])\
+        {\
+          ss_v[6] = em_write_buffer_3 (SS_V_6 , ss_data->ti);\
+        } /* ss_v[6] */
+
+
+#define MM_EM_FACILITY_MESSAGE_SENT\
+          /* Facility message send */\
+        if (ss_v[7])\
+        {\
+         ss_v[7] = em_write_buffer_3 (SS_V_7 , ss_data->ti);\
+        }  /* ss_v[7]  */
+
+#define MM_EM_FACILITY_MESSAGE_RECEIVED\
+            /* Facility message received */\
+          if (ss_v[8])\
+          {\
+           ss_v[8] = em_write_buffer_3 (SS_V_8 , ss_data->ti);\
+          }  /* ss_v[8]  */
+
+#define MM_EM_MM_RELEASE_COMPLETE_SENT\
+                /* Release complete sent */\
+      if (ss_v[9])\
+      {\
+       ss_v[9] = em_write_buffer_3 (SS_V_9 , ss_data->ti);\
+      }  /* ss_v[9] */
+
+#define MM_EM_MM_RELEASE_COMPLETE_RECEIVED\
+            /* Release complete received */\
+          if (ss_v[10])\
+          {\
+           ss_v[10] = em_write_buffer_3 (SS_V_10, ss_data->ti);\
+          }  /* ss_v[10] */
+
+#else /*FF_EM_MODE not defined*/
+
+#define MM_EM_MM_CONNECTION_STARTED         /*Event  1*/
+#define MM_EM_MM_CONNECTION_ESTABLISHED     /*Event  2*/
+#define MM_EM_MM_CONNECTION_FAILED          /*Event  3*/
+#define MM_EM_MM_CONNECTION_ABORTED         /*Event  4*/
+#define MM_EM_MM_CONNECTION_RELEASED        /*Event  5*/
+#define MM_EM_REGISTER_MESSAGE_RECEIVED     /*Event  6*/
+#define MM_EM_FACILITY_MESSAGE_SENT         /*Event  7*/
+#define MM_EM_FACILITY_MESSAGE_RECEIVED     /*Event  8*/
+#define MM_EM_MM_RELEASE_COMPLETE_SENT      /*Event  9*/
+#define MM_EM_MM_RELEASE_COMPLETE_RECEIVED  /*Event 10*/
+
+
+#endif /*FF_EM_MODE*/
+#endif /* SS_EM_H */