FreeCalypso > hg > fc-selenite
diff src/g23m-gsm/sim/sim_em.h @ 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-gsm/sim/sim_em.h Sun Jul 15 04:40:46 2018 +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 */