FreeCalypso > hg > fc-tourmaline
view src/g23m-fad/ra/ra.h @ 52:6d77f6e1670a
bug in the last commit
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 19 Oct 2020 05:27:40 +0000 |
parents | fa8dc04885d8 |
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 */