FreeCalypso > hg > fc-magnetite
diff src/g23m-fad/l2r/tra_pei.h @ 174:90eb61ecd093
src/g23m-fad: initial import from TCS3.2/LoCosto
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 12 Oct 2016 05:40:46 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-fad/l2r/tra_pei.h Wed Oct 12 05:40:46 2016 +0000 @@ -0,0 +1,206 @@ +/* ++----------------------------------------------------------------------------- +| Project : CSD (8411) +| Modul : tra_pei.h ++----------------------------------------------------------------------------- +| 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 : Definitions for the TRA Entity, for l2r_pei exclusively! +| TRA ++----------------------------------------------------------------------------- +*/ + +#ifndef TRA_PEI_H +#define TRA_PEI_H + +#define ENTITY_L2R + +/* + * Constants + */ + +/* + * information for dti library + */ +#define TRA_DTI_UP_INSTANCE 0 +#define TRA_DTI_UP_INTERFACE 1 +#define TRA_DTI_UP_CHANNEL 0 + +#define TRA_DTI_BUF_SIZE 400 /* UL buffer size for max dti_data_ind */ +#define MAX_SDU_SIZE 36 /* 14400/8/50 */ + +/**********************************************************************************/ +/* + * process global data + */ + +#ifndef NTRACE + +/* for trace purposes */ + +#define SERVICE_NAME_DTI "DTI" +#define SERVICE_NAME_MGT "MGT" +#define SERVICE_NAME_UP "UP" +#define SERVICE_NAME_DN "DN" + +#endif + +#define DTI dti. +#define MGT mgt. +#define UP up. +#define DN dn. + +/**********************************************************************************/ +/* + * data for process downlink + */ + +#define TRA_DLR_DEPTH 6 /* ring buffer depth */ + +typedef struct +{ + UBYTE state; +#ifndef NTRACE + char *name; + char *state_name; +#endif + U8 sa; /* last sa bit in this primitive */ + U8 sb; /* last sb bit in this primitive */ + U8 x; /* last x bit in this primitive */ + T_DTI2_DATA_IND *prim; /* NULL if no DTI2_DATA_IND allocated */ + T_desc2 *list_end; /* NULL if no DTI2_DATA_IND allocated */ + T_RIBU_FD *ribu; + + T_DTI2_DATA_IND *Brk_dti_data_ind; /* data indication for relaying break indication */ + } T_TRA_DN; + +/**********************************************************************************/ +/* + * data for process uplink + */ + +typedef struct +{ + UBYTE state; +#ifndef NTRACE + char *name; + char *state_name; +#endif + U8 sa; /* last sa bit in this primitive */ + U8 sb; /* last sb bit in this primitive */ + U8 x; /* last x bit in this primitive */ + UBYTE req_frames; /* amount of data RA is able to handle at next RA_DATA_REQ*/ + T_DTI2_DATA_REQ *Prim; /* For DTI interface to hold last received primitive */ + USHORT List_off; /* offset to the remaining data to be sent */ + T_FD fd; + UBYTE to_ra[MAX_SDU_SIZE]; /* data field to be handed to RA*/ +} T_TRA_UP; + +/**********************************************************************************/ +/* + * data for process management + */ + +/**********************************************************************************/ + +typedef struct +{ + UBYTE state; +#ifndef NTRACE + char *name; + char *state_name; +#endif +} T_SUB_STATE_TRA; + +typedef struct +{ + T_SUB_STATE_TRA dti; /* state variable for DTI library */ + T_SUB_STATE_TRA mgt; /* process management */ + T_TRA_UP up; /* process uplink */ + T_TRA_DN dn; /* process downlink */ +} T_TRA_DATA; + +/*==== EXPORT =====================================================*/ +/* + * data base + */ + +EXTERN T_TRA_DATA *tra_data; +EXTERN T_TRA_DATA *tra_data_first_elem; /* always on element 0 of l2r_data_base */ + +/* + * Prototypes + * + * MANAGEMENT primitive processing + */ + +#ifdef OPTION_MULTITHREAD + #define mgt_tra_activate_req _ENTITY_PREFIXED(mgt_tra_activate_req) + #define mgt_tra_deactivate_req _ENTITY_PREFIXED(mgt_tra_deactivate_req) + #define mgt_tra_dti_req _ENTITY_PREFIXED(mgt_tra_dti_req) +#endif + +EXTERN void mgt_tra_activate_req (T_TRA_ACTIVATE_REQ *tra_activate_req); +EXTERN void mgt_tra_deactivate_req (T_TRA_DEACTIVATE_REQ *tra_deactivate_req); +EXTERN void mgt_tra_dti_req (T_TRA_DTI_REQ *tra_dti_req); + +#ifdef OPTION_MULTITHREAD + #define rcv_ra_ready_ind _ENTITY_PREFIXED(rcv_ra_ready_ind) + #define rcv_ra_data_ind _ENTITY_PREFIXED(rcv_ra_data_ind) + #define rcv_ra_break_ind _ENTITY_PREFIXED(rcv_ra_break_ind) +#endif + +EXTERN void rcv_ra_ready_ind (T_RA_READY_IND *ra_ready_ind); +EXTERN void rcv_ra_data_ind (T_RA_DATA_IND *ra_data_ind); +EXTERN void rcv_ra_break_ind (T_RA_BREAK_IND *ra_break_ind); + +#ifdef OPTION_MULTITHREAD +#define sig_dti_tra_mgt_connection_opened_ind \ + _ENTITY_PREFIXED(sig_dti_tra_mgt_connection_opened_ind) +#define sig_dti_tra_mgt_connection_closed_ind \ + _ENTITY_PREFIXED(sig_dti_tra_mgt_connection_closed_ind) +#define sig_dti_tra_dn_tx_buffer_full_ind \ + _ENTITY_PREFIXED(sig_dti_tra_dn_tx_buffer_full_ind ) +#define sig_dti_tra_dn_tx_buffer_ready_ind \ + _ENTITY_PREFIXED(sig_dti_tra_dn_tx_buffer_ready_ind ) +#define sig_dti_tra_up_data_received_ind \ + _ENTITY_PREFIXED(sig_dti_tra_up_data_received_ind ) +#endif + +/* + * these functions are called by pei_sig_callback + */ +EXTERN void sig_dti_tra_mgt_connection_opened_ind(); +EXTERN void sig_dti_tra_mgt_connection_closed_ind(); +EXTERN void sig_dti_tra_dn_tx_buffer_full_ind(); +EXTERN void sig_dti_tra_dn_tx_buffer_ready_ind(); +EXTERN void sig_dti_tra_up_data_received_ind(T_DTI2_DATA_REQ *dti_data_req); + +/* + * Communication handles + */ + +#ifdef OPTION_MULTITHREAD + #define hCommCTRL _ENTITY_PREFIXED(hCommCTRL) +#ifdef _SIMULATION_ + #define hCommRA _ENTITY_PREFIXED(hCommRA) +#endif +#endif + +EXTERN T_HANDLE l2r_handle; +EXTERN T_HANDLE hCommCTRL; /* Controller Communication */ + +#ifdef _SIMULATION_ +EXTERN T_HANDLE hCommRA; /* RA Communication */ +#endif + +#endif