FreeCalypso > hg > fc-magnetite
view src/g23m-aci/aci/aci_em.h @ 700:800bf29abf31
audio mode load change from Tourmaline
Our FreeCalypso universe now has two kinds of audio mode config files:
the old 164 byte kind and the new 176 byte kind. We are not enabling
L1_NEW_AEC in Magnetite, only in Tourmaline, thus 164 byte audio mode
files are still native to Magnetite. But we still desire graceful
handling of the situation when a running Magnetite fw may load a
176 byte audio mode file (presumably with new AEC config), thus we
incorporate the same audio mode loading change which we implemented
in Tourmaline: if the loaded audio mode file is of the wrong kind,
the AEC config is cleared to default disabled state.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 30 Jul 2021 03:55:52 +0000 |
parents | 53929b40109c |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | 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 +++++++++++++++++++++++++++++++++++++++++*/