FreeCalypso > hg > freecalypso-sw
diff gsm-fw/g23m-aci/aci/aci_em.h @ 775:eedbf248bac0
gsm-fw/g23m-aci subtree: initial import from LoCosto source
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 12 Oct 2014 01:45:14 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsm-fw/g23m-aci/aci/aci_em.h Sun Oct 12 01:45:14 2014 +0000 @@ -0,0 +1,282 @@ +/* ++----------------------------------------------------------------------------- +| 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 : Handles all instances for the Engineering mode (EM). ++----------------------------------------------------------------------------- +*/ + +#ifndef ACI_EM_H +#define ACI_EM_H + +/* +* Return Values +*/ +#define EM_INVALID_CLASS 10 +#define EM_INVALID_SUBCLASS 11 +#define EM_INVALID_TYPE 12 +#define EM_INVALID_ACCESS 13 +#define EM_NO_MORE_DATA 14 +#define EM_DATA_NOT_AVAIL 15 + +#define MAX_EM_LENGTH 80 + +/* + * EM classes + */ +#define EM_CLASS_EVENT_TRACING 1 +#define EM_CLASS_INFRA_DATA 3 +#define EM_CLASS_MOBILE_DATA 4 + +/* + * EM Subclasses Event Tracing / Counter + */ +#define EM_SUBCLASS_LAYER_1 1 +#define EM_SUBCLASS_DL 2 +#define EM_SUBCLASS_RR 3 +#define EM_SUBCLASS_MM 4 +#define EM_SUBCLASS_CC 5 +#define EM_SUBCLASS_SS 6 +#define EM_SUBCLASS_SMS 7 +#define EM_SUBCLASS_SIM 8 + +/* + * EM Subclasses Infrastructure data + */ +#define EM_SUBCLASS_SC 9 +#define EM_SUBCLASS_SC_GPRS 10 +#define EM_SUBCLASS_NC 11 +#define EM_SUBCLASS_LOC_PAG 12 +#define EM_SUBCLASS_PLMN 13 +#define EM_SUBCLASS_CIPH_HOP_DTX 14 +#define EM_SUBCLASS_GMM 15 +#define EM_SUBCLASS_GRLC 16 +#define EM_SUBCLASS_AMR 20 +#define EM_SUBCLASS_PDP 21 + + +/* + * EM Subclasses Mobile Data + */ +#define EM_SUBCLASS_POWER 17 +#define EM_SUBCLASS_ID 18 +#define EM_SUBCLASS_SW_VERSION 19 + +/* + * EM bitmask check +*/ + +#define EM_BITMASK_L1_H 0x007F /* 39 events */ +#define EM_BITMASK_L1_L 0xFFFFFFFFL +#define EM_BITMASK_DL 0x001F /* 5 events */ +#define EM_BITMASK_RR_H 0x001F /* 37 events */ +#define EM_BITMASK_RR_L 0xFFFFFFFFL +#define EM_BITMASK_MM 0x0003FFFFL /* 18 events */ +#define EM_BITMASK_CC_H 0x0001FFFFL /* 49 events */ +#define EM_BITMASK_CC_L 0xFFFFFFFFL +#define EM_BITMASK_SS 0x03FF /* 10 events */ +#define EM_BITMASK_SMS_H 0x00000001L /* 33 events */ +#define EM_BITMASK_SMS_L 0xFFFFFFFFL +#define EM_BITMASK_SIM 0x01FFFFFFL /* 25 events */ + +/* +#define EM_STARTED 1 +#define EM_ESTABLISHED 2 +#define EM_FAILED 3 +#define EM_SEND 4 +#define EM_RECEIVED 5 +#define EM_ABORTED 6 +#define EM_RELEASED 7 +*/ + +#define EM_DATA_IND_OPC 32267 + +#define EM_MM_BUFFER_SIZE 168 +#define EM_CC_BUFFER_SIZE 185 +#define EM_SS_BUFFER_SIZE 31 +#define EM_SMS_BUFFER_SIZE 110 +#define EM_SIM_BUFFER_SIZE 67 +#define EM_MAX_MA_CHANNELS 64 + +#define MAX_VER 50 + +#ifdef TRACE_PRIM + #define TRACE_PRIM_FROM(s) vsi_o_ttrace(VSI_CALLER TC_PRIM, "Pdir: " s) + #define TRACE_PRIM_TO(s) vsi_o_ttrace(VSI_CALLER TC_PRIM, "Pdir: " s) +#else + #define TRACE_PRIM_FROM(s) + #define TRACE_PRIM_TO(s) +#endif + + +#define TRACE_EVENT_EM_P1(s,a1) TRACE_USER_CLASS_P1(TC_USER8,s,a1) +#define TRACE_EVENT_EM_P4(s,a1,a2,a3,a4) TRACE_USER_CLASS_P4(TC_USER8,s,a1,a2,a3,a4) + +/* +/ ************************************************************************************* + * + * Structures according to EM Functional interface description (8443.601.01.002) + * + ************************************************************************************* + */ + +/* + * Unit ID + */ +typedef enum +{ + EM_UNIT_INVALID = -1, + EM_UNIT_L1 = 1, + EM_UNIT_DL, + EM_UNIT_RR, + EM_UNIT_MM, + EM_UNIT_CC, + EM_UNIT_SS, + EM_UNIT_SMS, + EM_UNIT_SIM +} T_EM_UNIT_ID; + +typedef struct +{ + UBYTE index; + UBYTE length; +} T_EVENT_PTR; + +typedef struct +{ + T_EVENT_PTR alr; + T_EVENT_PTR dl; + T_EVENT_PTR rr; + T_EVENT_PTR mm; + T_EVENT_PTR cc; + T_EVENT_PTR ss; + T_EVENT_PTR sms; + T_EVENT_PTR sim; +} T_EM_EVENT_BUF; + +typedef struct +{ + CHAR alr[MAX_VER]; + CHAR dl[MAX_VER]; + CHAR rr[MAX_VER]; + CHAR mm[MAX_VER]; + CHAR cc[MAX_VER]; + CHAR ss[MAX_VER]; + CHAR sms[MAX_VER]; + CHAR sim[MAX_VER]; +} T_EM_SW_VER; + + +/*------------------------------------------------------------------------ + drv_SignalID_Type - driver signal identification + + The type defines the signal information data used to identify a signal. + This data type is used to define and to report a signal. A signal is + defined by a process calling the driver function drv_SetSignal. An + event is signalled by driver by calling the pre-defined signal call- + back function. + -------------------------------------------------------------------------*/ +typedef struct +{ + UBYTE SignalType; + USHORT DataLength; + union + { + T_EM_SC_INFO_CNF sc; + T_EM_SC_GPRS_INFO_CNF sc_gprs; + T_EM_NC_INFO_CNF nc; + T_EM_LOC_PAG_INFO_CNF log_pag; + T_EM_PLMN_INFO_CNF plmn; + T_EM_CIP_HOP_DTX_INFO_CNF cip; + T_EM_POWER_INFO_CNF power; + T_EM_IDENTITY_INFO_CNF id; + T_EM_SW_VER version; + T_EM_GMM_INFO_CNF gmm; + T_EM_GRLC_INFO_CNF grlc; + T_EM_AMR_INFO_CNF amr; + UBYTE defaulT; + } UserData; +} T_DRV_SIGNAL_EM; + +typedef struct +{ + UBYTE * Pointer; + USHORT DataLength; + T_EM_EVENT_BUF Data; +} T_DRV_SIGNAL_EM_EVENT; + + +/*------------------------------------------------------------------------ + drv_SignalCB_Type - driver signal device control block + + This type defines a call-back function used to signal driver events, + e.g. driver is ready to accept data. The driver calls the signal + call-back function when a specific event occurs and the driver has + been instructed to signal the event to a specific process. A process + can set or reset event signalling by calling one of the driver + functions drv_SetSignal or drv_ResetSignal. Event signalling can only + be performed when a call-back function has been installed at driver + initialization. + -------------------------------------------------------------------------*/ +typedef void (*T_DRV_CB_FUNC_EM ) (T_DRV_SIGNAL_EM * Signal); +typedef void (*T_DRV_CB_FUNC_EM_EVENT) (T_DRV_SIGNAL_EM_EVENT * Event); + +/* +* callback functionality for em_Read_Data_Parameter +*/ +#define drv_SignalCB_Type_EM T_DRV_CB_FUNC_EM +#define drv_SignalID_Type_EM T_DRV_SIGNAL_EM + +/* +* callback functionality for em_Read_Event_Parameter +*/ +#define drv_SignalCB_Type_EM_EVENT T_DRV_CB_FUNC_EM_EVENT +#define drv_SignalID_Type_EM_EVENT T_DRV_SIGNAL_EM_EVENT + +#define T_VSI_THANDLE USHORT + +/* + * Prototypes + */ +EXTERN UBYTE em_Read_Data_Parameter (UBYTE em_class, UBYTE em_subclass, UBYTE em_type, + void (*cbfunc)(T_DRV_SIGNAL_EM * Signal)); +EXTERN UBYTE em_Read_Event_Parameter (UBYTE entity, + void (*cbfunc)(T_DRV_SIGNAL_EM_EVENT * Signal)); +EXTERN void em_Received_Data (void *data, UBYTE subclass); +EXTERN UBYTE em_Set_EventTrace (UBYTE em_subclass, ULONG bitmask_h, ULONG bitmask_l); + +EXTERN UBYTE em_Init (drv_SignalCB_Type_EM in_SignalCBPtr, + drv_SignalCB_Type_EM_EVENT in_SignalEventCBPtr); +EXTERN void em_Exit (void); + +EXTERN void em_aci_sem_clear (void); +EXTERN void em_aci_sem_init (void); +EXTERN void em_aci_sem_exit (void); + +EXTERN UBYTE em_subclass_pco_bitmap (U32 em_pco_bitmap); /* en- or disable PCO-trace*/ + +/* +EXTERN UBYTE em_SetSignal (drv_SignalID_Type * in_SignalIDPtr); +EXTERN UBYTE em_ResetSignal (drv_SignalID_Type * in_SignalIDPtr); +EXTERN UBYTE em_SetConfig (pwr_DCB_Type * in_DCBPtr); +EXTERN UBYTE em_GetConfig (pwr_DCB_Type * out_DCBPtr); +EXTERN UBYTE em_GetStatus (pwr_Status_Type * out_StatusPtr); +*/ + + + +#endif /* ACI_EM_H */ + +/*+++++++++++++++++++++++++++++++++++++++++ E O F +++++++++++++++++++++++++++++++++++++++++*/