FreeCalypso > hg > fc-magnetite
view src/g23m-fad/ra/ra.h @ 639:026c98f757a6
tpudrv12.h & targets/gtm900.h: our current support is for MGC2GSMT version only
As it turns out, there exist two different Huawei-made hw platforms both
bearing the marketing name GTM900-B: one is MG01GSMT, the other is MGC2GSMT.
The two are NOT fw-compatible: aside from flash chip differences which
should be handled by autodetection, the two hw platforms are already known
to have different RFFEs with different control signals, and there may be
other differences not yet known. Our current gtm900 build target is for
MGC2GSMT only; we do not yet have a specimen of MG01GSMT on hand, hence
no support for that version will be possible until and unless someone
provides one.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 30 Jan 2020 18:19:01 +0000 |
parents | 90eb61ecd093 |
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 : Definitions for the Protocol Stack Entity Rate Adaption. +----------------------------------------------------------------------------- */ #ifndef RA_H #define RA_H #include "cl_ribu.h" /* * Conditional Compiling */ #define HO_WORKAROUND #undef V42BIS #undef TRACE_RA_TRA_STATUS #undef TRACE_RA_TRA_DATA #undef TRACE_RA_FAX_DL_FRAME_TYPE #undef TRACE_RA_FAX_UL_FRAME_TYPE #undef TRACE_RA_FAX_UL_SKIP #undef TRACE_RA_RLP #if defined TRACE_RA_TRA_STATUS \ || defined TRACE_RA_FAX_DL_FRAME_TYPE \ || defined TRACE_RA_FAX_UL_FRAME_TYPE \ || defined _SIMULATION_ #define BYTE2HEXSTR(B, H) {UBYTE b, *a = (UBYTE*)(H);\ b = (((UBYTE)(B)) >> 4) & 0x0F;\ if (b > 9) b += 'A'-10; else b += '0'; *a = b;\ b = ((UBYTE)(B)) & 0x0F;\ if (b > 9) b += 'A'-10; else b += '0'; *(a+1) = b;} #endif /* This constant gives the minimum number of frames, which have to be sent in a FR_TRAIN sequence. It is not derived from any protocol specfication, but found to be necessary to establish fax calls (MOC) at 2400bps on the D1 network */ #define MIN_FR_TRAIN_LEN 32 /* * Macros */ /* * instance management */ #ifndef NTRACE /* for trace purposes */ #define SERVICE_NAME_KER "KER" #endif #define KER ker. /* * States of the entity process TRANS */ #define TRA_NULL 0 #define TRA_INIT_L1 1 #define TRA_SYNCH_TCH_START 2 #define TRA_SYNCH_TCH_FOUND 3 #define TRA_WAIT_SYNC_LOST 4 #define TRA_DATA_TRANS_PRE1 5 #define TRA_DATA_TRANS_PRE2 6 #define TRA_DATA_TRANS_PRE3 7 #define TRA_DATA_TRANS 8 #define TRA_STATES 9 /* * States of the entity process RLP */ #define RLP_NULL 0 #define RLP_INIT_L1 1 #define RLP_DATA_TRANS 2 #define RLP_STATES 3 #ifdef FF_FAX /* * States of the entity process FAX */ #define FAX_NULL 0 #define FAX_INIT_L1 1 #define FAX_SYNCH_TCH_START 2 #define FAX_SYNCH_TCH_FOUND 3 #define FAX_WAIT_SYNC_LOST 4 #define FAX_DATA_TRANS_PRE 5 #define FAX_DATA_TRANS 6 #define FAX_MODIFY 7 #define FAX_STATES 8 #endif /* FF_FAX */ /* * Bitmask definitions: * msk_xxx bitmask left-justified value * pos_xxx bitposition of the Less Significant Bit * adr_xxx index into the shm_addr and cont_addr tables * wof_xxx word offset which is to be added to the address * in addr_shm table */ /* * Bitmask definitions for the d_ra_conf control word of the RADAP */ #define msk_conf_b_itc 0x0003 #define pos_conf_b_itc 0 #define adr_conf_b_itc d_ra_conf #define wof_conf_b_itc 0 /* #define V_ITC_SPEECH 0 */ #define V_ITC_DATA 1 #define V_ITC_FAX 2 #define msk_conf_b_nsb 0x0004 #define pos_conf_b_nsb 2 #define adr_conf_b_nsb d_ra_conf #define wof_conf_b_nsb 0 #define V_NSB_ONE_STOP 0 #define V_NSB_TWO_STOP 1 #define msk_conf_b_ndb 0x0008 #define pos_conf_b_ndb 3 #define adr_conf_b_ndb d_ra_conf #define wof_conf_b_ndb 0 #define V_NDMSK_B_7_DBITS 0 #define V_NDMSK_B_8_DBITS 1 #define msk_conf_b_ur 0x00f0 #define pos_conf_b_ur 4 #define adr_conf_b_ur d_ra_conf #define wof_conf_b_ur 0 #define V_UR_300 1 #define V_UR_1200 2 #define V_UR_2400 3 #define V_UR_4800 4 #define V_UR_9600 5 /* not used 6 */ #define V_UR_1200_75 7 #define V_UR_14400 8 #define msk_conf_b_ce 0x0100 #define pos_conf_b_ce 8 #define adr_conf_b_ce d_ra_conf #define wof_conf_b_ce 0 #define V_CE_TRANSP 0 #define V_CE_NON_TRANSP 1 #define msk_conf_b_ct 0x0200 #define pos_conf_b_ct 9 #define adr_conf_b_ct d_ra_conf #define wof_conf_b_ct 0 #define V_CT_FR 0 #define V_CT_HR 1 /* * Bitmask definitions for the d_ra_act control word of the RADAP */ #define msk_act_b_init 0x0001 #define pos_act_b_init 0 #define adr_act_b_init d_ra_act #define wof_act_b_init 0 #define msk_act_b_syncul 0x0002 #define pos_act_b_syncul 1 #define adr_act_b_syncul d_ra_act #define wof_act_b_syncul 0 #define msk_act_b_syncdl 0x0004 #define pos_act_b_syncdl 2 #define adr_act_b_syncdl d_ra_act #define wof_act_b_syncdl 0 #define msk_act_b_ovspul 0x0008 #define pos_act_b_ovspul 3 #define adr_act_b_ovspul d_ra_act #define wof_act_b_ovspul 0 #define msk_act_b_f48blk_ul 0x0020 #define pos_act_b_f48blk_ul 5 #define adr_act_b_f48blk_ul d_ra_act #define wof_act_b_f48blk_ul 0 #define msk_act_b_f48blk_dl 0x0040 #define pos_act_b_f48blk_dl 6 #define adr_act_b_f48blk_dl d_ra_act #define wof_act_b_f48blk_dl 0 /* * Bitmask definitions for the d_ra_test * control word of the RADAP */ /* #define msk_test_b_sul 0x0001 #define pos_test_b_sul 0 #define adr_test_b_sul d_ra_test #define wof_test_b_sul 0 #define msk_test_b_sdl 0x0002 #define pos_test_b_sdl 1 #define adr_test_b_sdl d_ra_test #define wof_test_b_sdl 0 #define msk_test_b_sched 0x0004 #define pos_test_b_sched 2 #define adr_test_b_sched d_ra_test #define wof_test_b_sched 0 */ #define msk_test_b_t_dl_debug 0x0010 #define pos_test_b_t_dl_debug 4 #define adr_test_b_t_dl_debug d_ra_test #define wof_test_b_t_dl_debug 0 /* * Bitmask definitions for the d_ra_statu * control word of the RADAP */ #define msk_statu_b_sa 0x0001 #define pos_statu_b_sa 0 #define adr_statu_b_sa d_ra_statu #define wof_statu_b_sa 0 #define msk_statu_b_sb 0x0002 #define pos_statu_b_sb 1 #define adr_statu_b_sb d_ra_statu #define wof_statu_b_sb 0 #define msk_statu_b_x 0x0004 #define pos_statu_b_x 2 #define adr_statu_b_x d_ra_statu #define wof_statu_b_x 0 #define msk_statu_b_fed_ul 0x0008 #define pos_statu_b_fed_ul 3 #define adr_statu_b_fed_ul d_ra_statu #define wof_statu_b_fed_ul 0 /* * Bitmask definitions for the d_ra_statd control word of the RADAP */ #define msk_statd_b_sa 0x0001 #define pos_statd_b_sa 0 #define adr_statd_b_sa d_ra_statd #define wof_statd_b_sa 0 #define msk_statd_b_sb 0x0002 #define pos_statd_b_sb 1 #define adr_statd_b_sb d_ra_statd #define wof_statd_b_sb 0 #define msk_statd_b_x 0x0004 #define pos_statd_b_x 2 #define adr_statd_b_x d_ra_statd #define wof_statd_b_x 0 /* * for d_ra_statd only */ #define msk_statd_b_syncdet 0x0008 #define pos_statd_b_syncdet 3 #define adr_statd_b_syncdet d_ra_statd #define wof_statd_b_syncdet 0 /* * Bitmask definitions for the d_fax control word of the RADAP */ #define msk_fax_b_status_stop 0x0001 #define pos_fax_b_status_stop 0 #define adr_fax_b_status_stop d_fax #define wof_fax_b_status_stop 0 #define msk_fax_b_status_detect 0x0002 #define pos_fax_b_status_detect 1 #define adr_fax_b_status_detect d_fax #define wof_fax_b_status_detect 0 #define msk_fax_b_ident_thres 0x007c #define pos_fax_b_ident_thres 2 #define adr_fax_b_ident_thres d_fax #define wof_fax_b_ident_thres 0 #define msk_fax_b_info_thres 0x0f80 #define pos_fax_b_info_thres 7 #define adr_fax_b_info_thres d_fax #define wof_fax_b_info_thres 0 #define msk_fax_b_status_receive 0x1000 #define pos_fax_b_status_receive 12 #define adr_fax_b_status_receive d_fax #define wof_fax_b_status_receive 0 #define msk_fax_b_data_receive 0x2000 #define pos_fax_b_data_receive 13 #define adr_fax_b_data_receive d_fax #define wof_fax_b_data_receive 0 #define msk_fax_b_byte_interface 0x4000 #define pos_fax_b_byte_interface 14 #define adr_fax_b_byte_interface d_fax #define wof_fax_b_byte_interface 0 /* * Bitmask definitions for the a_rau control field of the RADAP */ #define RAU_DATA_14400 36 #define RAU_DATA_9600 24 #define RAU_DATA_4800 12 #define RAU_DATA_2400 6 #define RAU_DATA_1200 3 #define msk_rau_byte_cnt 0x00ff #define pos_rau_byte_cnt 0 #define adr_rau_byte_cnt a_rau #define wof_rau_byte_cnt 0 #define msk_rau_break_len 0xff00 #define pos_rau_break_len 8 #define adr_rau_break_len a_rau #define wof_rau_break_len 1 #define msk_rau_break_pos 0x00ff #define pos_rau_break_pos 0 #define adr_rau_break_pos a_rau #define wof_rau_break_pos 1 /* #define msk_rau_data 0xffff #define pos_rau_data 0 */ #define adr_rau_data a_rau #define wof_rau_data 2 /* * Bitmask definitions for the a_rad control field of the RADAP */ /* #define MAX_RAD_DATA 36 */ #define msk_rad_byte_cnt 0x00ff #define pos_rad_byte_cnt 0 #define adr_rad_byte_cnt a_rad #define wof_rad_byte_cnt 0 #define msk_rad_break_len 0xff00 #define pos_rad_break_len 8 #define adr_rad_break_len a_rad #define wof_rad_break_len 1 #define msk_rad_break_pos 0x00ff #define pos_rad_break_pos 0 #define adr_rad_break_pos a_rad #define wof_rad_break_pos 1 /* #define msk_rad_data 0xffff #define pos_rad_data 0 */ #define adr_rad_data a_rad #define wof_rad_data 2 /* * Definitions of frame sizes for non transparent mode (in bytes, not including the FCC) */ #define NT_DATA_SIZE 27 /* Full frame at 9600 full rate and 4800 half rate */ #define NT_DATA_SIZE_14400_A 36 /* First half of frame at 14400 */ #define NT_DATA_SIZE_14400_B 33 /* Second half of frame at 14400 */ #define NT_DATA_SIZE_4800_FR_A 15 /* First half of frame at 4800 full rate */ #define NT_DATA_SIZE_4800_FR_B 12 /* Second half of frame at 4800 full rate */ /* * Bitmask definitions for the a_ntu control field of the RADAP */ #define msk_ntu_byte_cnt 0x00ff #define pos_ntu_byte_cnt 0 #define adr_ntu_byte_cnt a_ntu #define wof_ntu_byte_cnt 0 #define msk_ntu_M1 0x0001 #define pos_ntu_M1 0 #define adr_ntu_M1 a_ntu #define wof_ntu_M1 1 #define msk_ntu_M2 0x0002 #define pos_ntu_M2 1 #define adr_ntu_M2 a_ntu #define wof_ntu_M2 1 #define msk_ntu_empty 0x0004 #define pos_ntu_empty 2 #define adr_ntu_empty a_ntu #define wof_ntu_empty 1 /* #define msk_ntu_data 0xffff #define pos_ntu_data 0 */ #define adr_ntu_data a_ntu #define wof_ntu_data 2 /* * Bitmask definitions for the a_ntd control word of the RADAP */ #define msk_ntd_byte_cnt 0x00ff #define pos_ntd_byte_cnt 0 #define adr_ntd_byte_cnt a_ntd #define wof_ntd_byte_cnt 0 #define msk_ntd_M1 0x0001 #define pos_ntd_M1 0 #define adr_ntd_M1 a_ntd #define wof_ntd_M1 1 /* #define msk_ntd_M2 0x0002 #define pos_ntd_M2 1 #define adr_ntd_M2 a_ntd #define wof_ntd_M2 1 */ #define msk_ntd_fcs_ok 0x0008 #define pos_ntd_fcs_ok 3 #define adr_ntd_fcs_ok a_ntd #define wof_ntd_fcs_ok 1 /* #define msk_ntd_data 0x00ff #define pos_ntd_data 0 */ #define adr_ntd_data a_ntd #define wof_ntd_data 2 /* * Bitmask definitions for the a_faxu control word of the RADAP */ #define msk_faxu_byte_cnt 0x00ff #define pos_faxu_byte_cnt 0 #define adr_faxu_byte_cnt a_faxu #define wof_faxu_byte_cnt 0 /* #define msk_faxu_sync_cnt 0x00ff #define pos_faxu_sync_cnt 0 #define adr_faxu_sync_cnt a_faxu #define wof_faxu_sync_cnt 0 */ #define msk_faxu_control 0xff00 #define pos_faxu_control 8 #define adr_faxu_control a_faxu #define wof_faxu_control 0 /* #define msk_faxu_data 0xffff #define pos_faxu_data 0 */ #define adr_faxu_data a_faxu #define wof_faxu_data 1 /* * Bitmask definitions for the a_faxd control word of the RADAP */ #define msk_faxd_byte_cnt 0x00ff #define pos_faxd_byte_cnt 0 #define adr_faxd_byte_cnt a_faxd #define wof_faxd_byte_cnt 0 /* #define msk_faxd_sync_cnt 0x00ff #define pos_faxd_sync_cnt 0 #define adr_faxd_sync_cnt a_faxd #define wof_faxd_sync_cnt 0 */ #define msk_faxd_control 0xff00 #define pos_faxd_control 8 #define adr_faxd_control a_faxd #define wof_faxd_control 0 #define V_CTRL_DATA 0 #define V_CTRL_STATUS 1 #define V_CTRL_SYNC 2 #define V_CTRL_TRAIN 3 /* #define msk_faxd_data 0xffff #define pos_faxd_data 0 */ #define adr_faxd_data a_faxd #define wof_faxd_data 1 /* * index for the address array */ #define d_ra_conf 0 #define d_ra_act 1 #define d_ra_test 2 #define d_ra_statu 3 #define d_ra_statd 4 #define d_fax 5 #define a_rau 6 #define a_rad 7 #define a_ntu 8 #define a_ntd 9 #define a_faxu 10 #define a_faxd 11 /* must be the last in the list */ #define RA_FIFO_DEPTH 4 #define MAX_TRANS_BUFFER 36 #define MAX_FAX_BUFFER_UL 72 #define FAD_DESCBUF_LEN MAX_FAX_BUFFER_UL /* for simulation */ #ifdef _SIMULATION_ #define MAX_NTRANS_BUFFER 36 #define MAX_FAX_BUFFER_DL 72 #endif #define MODEL_RLP 1 #define MODEL_TRANS 2 #ifdef FF_FAX #define MODEL_FAX 3 #endif /*==== TYPES ======================================================*/ typedef struct { USHORT *shm_addr[a_faxd+1]; } T_SHARED_MEM; typedef struct { USHORT timer; USHORT delay_OFF_ON; USHORT delay_ON_OFF; UBYTE pos; UBYTE current; UBYTE last; } T_STATUS_BIT; typedef struct { BOOL ul_data_pending; BOOL ul_signals_pending; BOOL ul_break_pending; UBYTE overspeed; UBYTE ready_ind_idx; BOOL data_req_rec; /* flag, if RA_DATA_REQ received */ UBYTE ul_sa; UBYTE ul_sb; UBYTE ul_x; UBYTE ul_status; T_STATUS_BIT dl_sa; T_STATUS_BIT dl_sb; T_STATUS_BIT dl_x; UBYTE break_pos; USHORT break_len; #ifndef HO_WORKAROUND T_RA_BREAK_IND ra_break_ind; #endif T_FD *dl_pFD; T_FRAME_DESC ul_frame_desc; } T_TRA; typedef struct { UBYTE const skip_seq_same[8]; UBYTE const skip_seq_other[8]; } T_SKIP; #ifdef FF_FAX typedef struct { BOOL CMM_flag; UBYTE ul_frame_type; UBYTE ul_frame_type_last; UBYTE train_seq[2]; UBYTE train_len; UBYTE seq_idx; UBYTE req_idx; T_RIBU_FD *ul_ribu; T_FD *ul_pFD; T_FD ul_train_FD; #if defined TRACE_RA_FAX_DL_FRAME_TYPE || defined _SIMULATION_ UBYTE dl_frame_type_last; UBYTE dl_state_last; #endif T_FD *dl_pFD; const T_SKIP *skip_seq; const UBYTE *req_seq; } T_FAX; #endif /* FF_FAX */ #define RLP_UL_QSIZE 16 typedef struct { BOOL ul_data_pending; BOOL ul_48_first_half_sent; UBYTE m1; T_RIBU ulq; T_FRAME_DESC ul_frame_desc[RLP_UL_QSIZE]; T_FRAME_DESC dl_frame_desc; #ifdef _SIMULATION_ UBYTE dl_buf[MAX_FAX_BUFFER_DL]; /* maximum is MAX_FAX_BUFFER_DL */ #endif #ifdef TRACE_RA_RLP ULONG fcs_error; #endif } T_RLP; typedef struct { UBYTE state; #ifndef NTRACE char *name; char *state_name; #endif } T_STATE; typedef struct { T_STATE ker; T_SHARED_MEM shm; BOOL activated; UBYTE model; UBYTE nsb; UBYTE ndb; UBYTE user_rate; UBYTE tra_rate; USHORT sync_timer; USHORT cycle_time; T_TRA *tra; T_RLP *rlp; #ifdef FF_FAX T_FAX *fax; #endif T_RA_DATA_IND ra_data_ind; T_RA_READY_IND ra_ready_ind[2]; #ifdef _SIMULATION_ T_RIBU_FD *dl_ribu; T_FD ul_FD; UBYTE ul_buf[MAX_TRANS_BUFFER]; #else T_RA_BREAK_IND ra_break_ind; T_RA_DEACTIVATE_CNF ra_deactivate_cnf; #endif } T_RA_DATA; /*==== EXPORT =====================================================*/ #ifdef OPTION_MULTITHREAD #define hCommMMI _ENTITY_PREFIXED(hCommMMI) #define hCommRLP _ENTITY_PREFIXED(hCommRLP) #ifdef FF_FAX #define hCommFAD _ENTITY_PREFIXED(hCommFAD) #endif #define hCommTRA _ENTITY_PREFIXED(hCommTRA) /* for trans mode */ #endif #define ENTITY_DATA ra_data #ifdef RA_DLL_C GLOBAL T_RA_DATA *ra_data; GLOBAL T_HANDLE ra_handle; GLOBAL T_HANDLE hCommMMI = VSI_ERROR; /* MMI Communication */ GLOBAL T_HANDLE hCommTRA = VSI_ERROR; /* Transp Communication */ GLOBAL T_HANDLE hCommRLP = VSI_ERROR; /* RLP Communication */ #ifdef FF_FAX GLOBAL T_HANDLE hCommFAD = VSI_ERROR; /* FAD Communication */ #endif #ifdef HO_WORKAROUND GLOBAL USHORT _act_d_ra_conf; #endif #else /* !RA_DLL_C */ EXTERN T_RA_DATA *ra_data; EXTERN T_HANDLE ra_handle; EXTERN T_HANDLE hCommMMI; /* MMI Communication */ EXTERN T_HANDLE hCommTRA; /* Transp. Communication */ EXTERN T_HANDLE hCommRLP; /* RLP Communication */ #ifdef FF_FAX EXTERN T_HANDLE hCommFAD; /* FAD Communication */ #endif #ifdef HO_WORKAROUND EXTERN USHORT _act_d_ra_conf; #endif #endif /* !RA_DLL_C */ /* * function prototypes for process TRA */ #ifdef OPTION_MULTITHREAD #define tra_init _ENTITY_PREFIXED(tra_init) #define tra_idle _ENTITY_PREFIXED(tra_idle) #define tra_ul_null _ENTITY_PREFIXED(tra_ul_null) #define tra_ul_init_l1 _ENTITY_PREFIXED(tra_ul_init_l1) #define tra_dl_sync_tch_start _ENTITY_PREFIXED(tra_dl_sync_tch_start) #define tra_ul_sync_tch_found _ENTITY_PREFIXED(tra_ul_sync_tch_found) #define tra_dl_wait_sync_lost _ENTITY_PREFIXED(tra_dl_wait_sync_lost) #define tra_dl_wait_for_connect _ENTITY_PREFIXED(tra_dl_wait_for_connect) #define tra_dl_wait_for_uart _ENTITY_PREFIXED(tra_dl_wait_for_uart) #define tra_dl_got_uart _ENTITY_PREFIXED(tra_dl_got_uart) #define tra_ul_data_trans _ENTITY_PREFIXED(tra_ul_data_trans) #define tra_dl_data_trans _ENTITY_PREFIXED(tra_dl_data_trans) #endif EXTERN void tra_init(UBYTE); EXTERN void tra_idle(void); EXTERN void tra_ul_null(void); EXTERN void tra_ul_init_l1(void); EXTERN void tra_dl_sync_tch_start(void); EXTERN void tra_ul_data_trans(void); EXTERN void tra_ul_sync_tch_found(void); EXTERN void tra_dl_wait_sync_lost(void); EXTERN void tra_dl_wait_for_connect(void); EXTERN void tra_dl_wait_for_uart(void); EXTERN void tra_dl_got_uart(void); EXTERN void tra_dl_data_trans(void); #ifdef FF_FAX /* * function prototypes for process FAX */ #ifdef OPTION_MULTITHREAD #define fax_init _ENTITY_PREFIXED(fax_init) #define fax_idle _ENTITY_PREFIXED(fax_idle) #define fax_ul_null _ENTITY_PREFIXED(fax_ul_null) #define fax_ul_init_l1 _ENTITY_PREFIXED(fax_ul_init_l1) #define fax_dl_sync_tch_start _ENTITY_PREFIXED(fax_dl_sync_tch_start) #define fax_ul_sync_tch_found _ENTITY_PREFIXED(fax_ul_sync_tch_found) #define fax_dl_wait_sync_lost _ENTITY_PREFIXED(fax_dl_wait_sync_lost) #define fax_ul_data_trans _ENTITY_PREFIXED(fax_ul_data_trans) #define fax_dl_data_trans _ENTITY_PREFIXED(fax_dl_data_trans) #define fax_ul_modify _ENTITY_PREFIXED(fax_ul_modify) #endif EXTERN void fax_init(void); EXTERN void fax_idle(void); EXTERN void fax_ul_null(void); EXTERN void fax_ul_init_l1(void); EXTERN void fax_dl_sync_tch_start(void); EXTERN void fax_ul_data_trans(void); EXTERN void fax_ul_sync_tch_found(void); EXTERN void fax_dl_wait_sync_lost(void); EXTERN void fax_dl_data_trans(void); EXTERN void fax_ul_modify(void); #endif /* FF_FAX */ /* * function prototypes for process RLP */ #ifdef OPTION_MULTITHREAD #define rlp_init _ENTITY_PREFIXED(rlp_init) #define rlp_idle _ENTITY_PREFIXED(rlp_idle) #define rlp_ul_null _ENTITY_PREFIXED(rlp_ul_null) #define rlp_ul_init_l1 _ENTITY_PREFIXED(rlp_ul_init_l1) #define rlp_ul_data_trans _ENTITY_PREFIXED(rlp_ul_data_trans) #define rlp_dl_data_trans _ENTITY_PREFIXED(rlp_dl_data_trans) #endif EXTERN void rlp_init(void); EXTERN void rlp_idle(void); EXTERN void rlp_ul_null(void); EXTERN void rlp_ul_init_l1(void); EXTERN void rlp_ul_data_trans(void); EXTERN void rlp_dl_data_trans(void); /* * macros for setting/getting the bitpattern values * of the control words in the shared memory. */ #define shm_get_dsp_value(var)\ (((*(ra_data->shm.shm_addr[adr_##var]+wof_##var)) & msk_##var) >> pos_##var) #define shm_set_dsp_value(var,val)\ { USHORT sv = val;\ USHORT sc = ra_data->shm.shm_addr[adr_##var][wof_##var];\ sv <<= pos_##var;\ sv &= msk_##var;\ sc &= ~msk_##var;\ sc |= sv;\ ra_data->shm.shm_addr[adr_##var][wof_##var] = sc;} EXTERN U16 shm_set_dsp_buffer(T_FRAME_DESC *data, USHORT *buffer, USHORT offs, USHORT free); EXTERN U8 shm_set_dsp_buffer_new(T_FD *data, USHORT *buffer, U8 offs, U8 free); EXTERN U16 shm_get_dsp_buffer(T_FRAME_DESC *data, USHORT *buffer, USHORT bytes_to_read); EXTERN U8 shm_get_dsp_buffer_new(USHORT *buffer, U8 bytes_to_read, T_FD *pFD); #ifdef _SIMULATION_ /* * for layer 1 simulation only *==================================================================== * Bitoffset for encoding/decoding */ #define ENCODE_OFFSET 0 /* * Dynamic Configuration Numbers */ #define RA_CNF 9 #define RA_DEACT 10 #endif /* _SIMULATION_ */ /* * L1 prototypes */ EXTERN void l1i_ra_activate_cnf(void); EXTERN void l1i_ra_data_ind(T_HANDLE); EXTERN void l1i_ra_modify_cnf(void); EXTERN void l1i_ra_ready_ind(T_HANDLE, UBYTE); #ifndef HO_WORKAROUND EXTERN void l1i_ra_break_ind(void); #endif /* * DLL functions */ EXTERN void dll_init(void); EXTERN void dll_data_ul ( USHORT *_ul_buffer_address, USHORT *_d_ra_conf, USHORT *_d_ra_act, USHORT *_d_ra_test, USHORT *_d_ra_statu, USHORT *_d_fax ); EXTERN void dll_data_dl ( USHORT *_dl_buffer_address, USHORT *_d_ra_act, USHORT *_d_ra_statd ); /* * miscellaneous function prototypes */ #ifdef OPTION_MULTITHREAD #define TimeOut _ENTITY_PREFIXED(TimeOut) #endif EXTERN BOOL TimeOut(USHORT*); #ifdef _TARGET_ /*lint -e752 : local declarator not referenced */ EXTERN T_FD *fad_rbm_get_next_FrameDesc(void); /* in entity FAD referenced */ EXTERN T_FD *tra_get_next_FrameDesc(void); /* in entity L2R referenced */ EXTERN void rlp_rbm_get_next_buffer(T_FRAME_DESC *frameDesc); /* in entity RLP referenced */ #endif #endif /* RA_H */