diff gsm-fw/g23m-gsm/sim/sim_em.h @ 673:2f7df7a314f8

gsm-fw/g23m-gsm subtree: initial import from LoCosto source
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sun, 28 Sep 2014 23:20:04 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gsm-fw/g23m-gsm/sim/sim_em.h	Sun Sep 28 23:20:04 2014 +0000
@@ -0,0 +1,317 @@
+/*
++-----------------------------------------------------------------------------
+|  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 SIM_EM_H
+#define SIM_EM_H
+
+#ifdef FF_EM_MODE
+
+/* ------------ data declarations for EM ---------------- */
+/*
+ *  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_SIM_BUFFER_SIZE            67
+
+/*
+*   EM_MAX_SIM_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_SIM_EVENTS           26
+
+/*
+*  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 SIM_OFFSET                0xE1
+
+/*
+*  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 SIM_V_1              (1 + SIM_OFFSET)
+#define SIM_V_2              (2 + SIM_OFFSET)
+#define SIM_V_3              (3 + SIM_OFFSET)
+#define SIM_V_4              (4 + SIM_OFFSET)
+#define SIM_V_5              (5 + SIM_OFFSET)
+#define SIM_V_6              (6 + SIM_OFFSET)
+#define SIM_V_7              (7 + SIM_OFFSET)
+#define SIM_V_8              (8 + SIM_OFFSET)
+#define SIM_V_9              (9 + SIM_OFFSET)
+#define SIM_V_10             (10+ SIM_OFFSET)
+#define SIM_V_11             (11+ SIM_OFFSET)
+#define SIM_V_12             (12+ SIM_OFFSET)
+#define SIM_V_13             (13+ SIM_OFFSET)
+#define SIM_V_14             (14+ SIM_OFFSET)
+#define SIM_V_15             (15+ SIM_OFFSET)
+#define SIM_V_16             (16+ SIM_OFFSET)
+#define SIM_V_17             (17+ SIM_OFFSET)
+#define SIM_V_18             (18+ SIM_OFFSET)
+#define SIM_V_19             (19+ SIM_OFFSET)
+#define SIM_V_20             (20+ SIM_OFFSET)
+#define SIM_V_21             (21+ SIM_OFFSET)
+#define SIM_V_22             (22+ SIM_OFFSET)
+#define SIM_V_23             (23+ SIM_OFFSET)
+#define SIM_V_24             (24+ SIM_OFFSET)
+#define SIM_V_25             (25+ SIM_OFFSET)
+
+
+/* Event tracing flags for EM */
+EXTERN BOOL sim_v[EM_MAX_SIM_EVENTS];
+
+/*---------Functions ---------*/
+
+/*
+ *  SIM primitives Engineering Mode
+ *  Bitmask for the event tracing
+ */
+
+EXTERN void sim_em_sim_event_req      (T_EM_SIM_EVENT_REQ *em_sim_event_req);
+EXTERN void em_init_sim_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_2        _ENTITY_PREFIXED(em_write_buffer_2)
+  #define em_write_buffer_3        _ENTITY_PREFIXED(em_write_buffer_3)
+  #define em_write_buffer_3a       _ENTITY_PREFIXED(em_write_buffer_3a)
+  #define check_write_index   _ENTITY_PREFIXED(check_write_index)
+#endif
+
+EXTERN UBYTE em_write_buffer_2       (UBYTE event_no);
+EXTERN UBYTE em_write_buffer_3       (UBYTE event_no, UBYTE value);
+EXTERN UBYTE em_write_buffer_3a      (UBYTE event_no, USHORT value);
+static UBYTE check_write_index  (UBYTE n);
+
+/*-----------------------Event Macro Definition -----------*/
+
+#define SIM_EM_READ_BINARY_FILE\
+  /* Read binary file */\
+  if (sim_v[1])\
+  {\
+    sim_v[1] = em_write_buffer_3a (SIM_V_1, sim_read_req->datafield);\
+  }  /* sim_v[1] */
+
+#define SIM_EM_READ_RECORD_FILE\
+    /* Read record file */\
+  if (sim_v[2])\
+  {\
+    sim_v[2] = em_write_buffer_3a (SIM_V_2, sim_read_record_req->datafield);\
+  }  /* sim_v[2] */
+
+#define SIM_EM_UPDATE_BINARY_FILE\
+ /* Update binary file */\
+  if (sim_v[3])\
+  {\
+    sim_v[3] = em_write_buffer_3a (SIM_V_3, sim_update_req->datafield);\
+  }  /* sim_v[3] */
+
+#define SIM_EM_UPDATE_RECORD\
+ /* Update record */\
+  if (sim_v[4])\
+  {\
+    sim_v[4] = em_write_buffer_3a (SIM_V_4, sim_update_record_req->datafield);\
+  }  /* sim_v[4] */
+
+#define SIM_EM_INCREMENT_FILE\
+    /* Increment file */\
+  if (sim_v[5])\
+  {\
+    sim_v[5] = em_write_buffer_3a (SIM_V_5, sim_increment_req->datafield);\
+  }  /* sim_v[5] */
+
+#define SIM_EM_VERIFY_PIN\
+    /* Verify PIN */\
+  if (sim_v[6])\
+  {\
+    sim_v[6] = em_write_buffer_3 (SIM_V_6, sim_verify_pin_req->pin_id);\
+  }  /* sim_v[6] */
+
+#define SIM_EM_CHANGE_PIN\
+   /* Change PIN */\
+  if (sim_v[7])\
+  {\
+    sim_v[7] = em_write_buffer_3 (SIM_V_7, sim_change_pin_req->pin_id);\
+  }  /* sim_v[7] */
+
+#define SIM_EM_DISABLE_PIN\
+   /* Disable PIN */\
+  if (sim_v[8])\
+  {\
+    sim_v[8] = em_write_buffer_3 (SIM_V_8, NOT_PRESENT_8BIT);\
+  }  /* sim_v[8] */
+
+#define SIM_EM_ENABLE_PIN\
+   /* Enable PIN */\
+  if (sim_v[9])\
+  {\
+    sim_v[9] = em_write_buffer_3 (SIM_V_9, NOT_PRESENT_8BIT);\
+  }  /* sim_v[9] */
+
+#define SIM_EM_UNBLOCK_PIN\
+    /* Unblock PIN */\
+  if (sim_v[10])\
+  {\
+    sim_v[10] = em_write_buffer_3 (SIM_V_10, sim_unblock_req->pin_id);\
+  }  /* sim_v[10] */
+
+#define SIM_EM_AUTHENTICATION\
+   /* Authentication */\
+  if (sim_v[11])\
+  {\
+    sim_v[11] = em_write_buffer_2 (SIM_V_11);\
+  }  /* sim_v[11] */
+
+#define SIM_EM_SIM_ACTIVATION_STARTED\
+        /* SIM activation started */\
+      if (sim_v[12])\
+      {\
+        sim_v[12] = em_write_buffer_2 (SIM_V_12);\
+      }  /* sim_v[12] */
+
+#define SIM_EM_SIM_ACTIVATION_RESULT\
+       /* SIM activation result */\
+        if (sim_v[13])\
+        {\
+          sim_v[13] = em_write_buffer_3a (SIM_V_13, sim_activate_cnf->cause);\
+        }  /* sim_v[13] */
+
+#define SIM_EM_READ_MMI_PARAMETER\
+   /* Read MMI parameters */\
+  if (sim_v[14])\
+  {\
+    sim_v[14] = em_write_buffer_2 (SIM_V_14);\
+  }  /* sim_v[14] */
+
+#define SIM_EM_READ_MM_PARAMETER\
+ /* Read MM parameters */\
+  if (sim_v[15])\
+  {\
+    sim_v[15] = em_write_buffer_2 (SIM_V_15);\
+  }  /* sim_v[15] */
+
+#define SIM_EM_READ_SMS_PARAMETER\
+   /* Read SMS parameters */\
+  if (sim_v[16])\
+  {\
+    sim_v[16] = em_write_buffer_2 (SIM_V_16);\
+  }  /* sim_v[16] */
+
+#define SIM_EM_SIM_REMOVE\
+     /* SIM removing */\
+    if (sim_v[17])\
+    {\
+      sim_v[17] = em_write_buffer_2 (SIM_V_17);\
+    }  /* sim_v[17] */
+
+#define SIM_EM_PARAMETER_UPDATE\
+   /* Parameter update */\
+  if (sim_v[18])\
+  {\
+    sim_v[18] = em_write_buffer_2 (SIM_V_18);\
+  }  /* sim_v[18] */
+
+#define SIM_EM_PARAMETER_SYNCHRONISATION\
+   /* Parameter synchronisation */\
+  if (sim_v[19])\
+  {\
+    sim_v[19] = em_write_buffer_2 (SIM_V_19);\
+  }  /* sim_v[19] */
+
+#define SIM_EM_FDN_ENABLE\
+              /* FDN enable */\
+            if (sim_v[20])\
+            {\
+              sim_v[20] = em_write_buffer_2 (SIM_V_20);\
+            }  /* sim_v[20] */
+
+#define SIM_EM_ADN_ENABLE\
+             /* ADN enable */\
+            if (sim_v[21])\
+            {\
+              sim_v[21] = em_write_buffer_2 (SIM_V_21);\
+            }  /* sim_v[21] */
+
+#define SIM_EM_SIM_TOOLKIT_ACTIVATION\
+       /* SIM Toolkit activation */\
+      if (sim_v[22])\
+      {\
+        sim_v[22] = em_write_buffer_2 (SIM_V_22);\
+      }  /* sim_v[22] */
+
+#define SIM_EM_PROACTIVE_COMMAND\
+              /* Proactive cmd */\
+            if (sim_v[23])\
+            {\
+              sim_v[23] = em_write_buffer_3 (SIM_V_23, cmd_type);\
+            }  /* sim_v[23] */
+
+#define SIM_EM_TERMINAL_RESPONSE\
+  /* Terminal Response */\
+  if (sim_v[24])\
+  {\
+    sim_v[24] = em_write_buffer_3a (SIM_V_24, sw1sw2);\
+  }  /* sim_v[24] */
+
+#define SIM_EM_ENVELOPE\
+ /* Envelope */\
+  if (sim_v[24])\
+  {\
+    sim_v[24] = em_write_buffer_3a (SIM_V_24, sw1sw2);\
+  }  /* sim_v[24] */
+
+#else /*FF_EM_MODE not defined*/
+
+#define SIM_EM_READ_BINARY_FILE           /*Event  1*/
+#define SIM_EM_READ_RECORD_FILE           /*Event  2*/
+#define SIM_EM_UPDATE_BINARY_FILE         /*Event  3*/
+#define SIM_EM_UPDATE_RECORD              /*Event  4*/
+#define SIM_EM_INCREMENT_FILE             /*Event  5*/
+#define SIM_EM_VERIFY_PIN                 /*Event  6*/
+#define SIM_EM_CHANGE_PIN                 /*Event  7*/
+#define SIM_EM_DISABLE_PIN                /*Event  8*/
+#define SIM_EM_ENABLE_PIN                 /*Event  9*/
+#define SIM_EM_UNBLOCK_PIN                /*Event 10*/
+#define SIM_EM_AUTHENTICATION             /*Event 11*/ 
+#define SIM_EM_SIM_ACTIVATION_STARTED     /*Event 12*/
+#define SIM_EM_SIM_ACTIVATION_RESULT      /*Event 13*/
+#define SIM_EM_READ_MMI_PARAMETER         /*Event 14*/
+#define SIM_EM_READ_MM_PARAMETER          /*Event 15*/
+#define SIM_EM_READ_SMS_PARAMETER         /*Event 16*/
+#define SIM_EM_SIM_REMOVE                 /*Event 17*/
+#define SIM_EM_PARAMETER_UPDATE           /*Event 18*/
+#define SIM_EM_PARAMETER_SYNCHRONISATION  /*Event 19*/
+#define SIM_EM_FDN_ENABLE                 /*Event 20*/
+#define SIM_EM_ADN_ENABLE                 /*Event 21*/
+#define SIM_EM_SIM_TOOLKIT_ACTIVATION     /*Event 22*/
+#define SIM_EM_PROACTIVE_COMMAND          /*Event 23*/
+#define SIM_EM_TERMINAL_RESPONSE          /*Event 24*/
+#define SIM_EM_ENVELOPE                   /*Event 25*/
+
+#endif /*FF_EM_MODE*/
+#endif /* SIM_EM_H */