FreeCalypso > hg > fc-magnetite
comparison src/g23m-fad/t30/t30.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 |
comparison
equal
deleted
inserted
replaced
173:bf64d785238a | 174:90eb61ecd093 |
---|---|
1 /* | |
2 +----------------------------------------------------------------------------- | |
3 | Project : GSM-F&D (8411) | |
4 | Modul : T30 | |
5 +----------------------------------------------------------------------------- | |
6 | Copyright 2002 Texas Instruments Berlin, AG | |
7 | All rights reserved. | |
8 | | |
9 | This file is confidential and a trade secret of Texas | |
10 | Instruments Berlin, AG | |
11 | The receipt of or possession of this file does not convey | |
12 | any rights to reproduce or disclose its contents or to | |
13 | manufacture, use, or sell anything it may describe, in | |
14 | whole, or in part, without the specific written consent of | |
15 | Texas Instruments Berlin, AG. | |
16 +----------------------------------------------------------------------------- | |
17 | Purpose : Definitions for the Protocol Stack Entity T30 | |
18 +----------------------------------------------------------------------------- | |
19 */ | |
20 | |
21 | |
22 #ifndef T30_H | |
23 #define T30_H | |
24 | |
25 #define SHARED_FAX_DATA_RAM | |
26 | |
27 #define KER_DEBUG_BCS | |
28 #undef KER_DEBUG_MSG | |
29 #undef SW_FLOW_CTRL | |
30 | |
31 /* | |
32 * instance management | |
33 */ | |
34 #define GET_INSTANCE(p) &t30_data_base[0] | |
35 #define T30_INSTANCES 1 | |
36 | |
37 /* | |
38 * Constants | |
39 */ | |
40 | |
41 #define HDLC_FLAG 0x7E | |
42 | |
43 /* | |
44 * number of HDLC_FLAGs between HDLC fields | |
45 */ | |
46 #ifdef _SIMULATION_ | |
47 #define HDLC_FLAGS 1 | |
48 #else | |
49 #define HDLC_FLAGS 3 | |
50 #endif | |
51 | |
52 #define HDLC_ADDR 0xFF | |
53 | |
54 /****** Transparent Data Commands T.32 ******/ | |
55 | |
56 /* DLE transparency */ | |
57 | |
58 #define TDC_DLE 0x10 /* substitute one 0x10 pattern */ | |
59 #define TDC_SUB 0x1a /* substitute two 0x10 patterns */ | |
60 | |
61 /* transmitter commands */ | |
62 | |
63 #define TDC_ETX 0x03 /* acknowledge <CAN> */ | |
64 #define TDC_PRI 0x21 /* request Procedure Interrupt */ | |
65 #define TDC_MPS 0x2c /* end of page, more to follow */ | |
66 #define TDC_EOP 0x2e /* end of document and session */ | |
67 #define TDC_EOM 0x3b /* end of document */ | |
68 #define TDC_BCR 0x3f /* check Buffer Credit */ | |
69 | |
70 /* receiver commands */ | |
71 | |
72 #define TDC_SOH 0x41 /* <SOH> in packet data */ | |
73 #define TDC_ETB 0x57 /* <ETB> in packet data */ | |
74 #define TDC_OVR 0x4f /* overrun error marker */ | |
75 | |
76 #ifdef SW_FLOW_CTRL | |
77 #define TDC_DC1 0x11 /* XON */ | |
78 #endif | |
79 | |
80 #define TDC_DC2 0x12 /* receive buffer status: buffer is empty */ | |
81 #ifdef SW_FLOW_CTRL | |
82 #define TDC_DC3 0x13 /* XOFF */ | |
83 #endif | |
84 | |
85 #define TDC_CAN 0x18 /* Requests DCE/DTE to stop delivering Phase C data */ | |
86 | |
87 #define MSG_SIZE_BITS 2880 /* value taken from former psa_t30.h */ | |
88 | |
89 /* | |
90 * information for dti library | |
91 */ | |
92 #define T30_DTI_UP_INTERFACE 0 | |
93 #define T30_DTI_UP_CHANNEL 0 | |
94 #define T30_DTI_UP_DEF_INSTANCE 0 | |
95 #define T30_DTI_UPLINK_QUEUE_SIZE 0 | |
96 | |
97 #define READY_UPLI_PAGE 1 | |
98 #define READY_UPLI_SDU 2 | |
99 | |
100 #define BCS_FRM_FILLED 0 | |
101 #define BCS_FRM_FILLING 1 | |
102 #define BCS_FRM_FULL 2 | |
103 #define BCS_FRM_SIZE 300 | |
104 #define BCS_FRM_SIZE_BITS (BCS_FRM_SIZE << 3) | |
105 | |
106 #define CCD_OK 0 | |
107 #define CCD_ERR 1 | |
108 | |
109 #define CHK_OK 0 | |
110 #define CHK_FCS_ERR 1 | |
111 #define CHK_FIN_ERR 2 | |
112 | |
113 #define CTL_C0 0xC0 | |
114 #define CTL_C8 0xC8 | |
115 | |
116 #define ERR_BUF_FULL 1 | |
117 #define ERR_CCD_DEC 2 | |
118 /* | |
119 #define ERR_CCD_ENC 3 | |
120 */ | |
121 #define ERR_FCS 4 | |
122 #define ERR_FINAL 5 | |
123 #define ERR_FRAME_NO_FLAG 6 | |
124 #define ERR_FRAME_TOO_MANY_FRAMES 7 | |
125 | |
126 #define FINAL_NO 0 | |
127 #define FINAL_YES 1 | |
128 | |
129 #define FMOD_IDLE 0 | |
130 #define FMOD_SND 1 | |
131 #define FMOD_RCV 2 | |
132 #define FMOD_POLL 3 | |
133 | |
134 #define FRAMES_MAX 10 | |
135 | |
136 #define FRM_OK 0 | |
137 #define FRM_ERR_NO_FLAG 1 | |
138 #define FRM_ERR_TOO_MANY_FRAMES 2 | |
139 | |
140 #define REPORT_SIZE 128 | |
141 #define REPORT_SIZE_BITS (REPORT_SIZE << 3) | |
142 | |
143 #define RTC_NO 0 | |
144 #define RTC_YES 1 | |
145 | |
146 /* | |
147 * Bitoffset for encoding/decoding | |
148 */ | |
149 #define ENCODE_OFFSET 0 | |
150 | |
151 #define T30_HEADER_LEN_BYT 2 /* Address byte and control byte */ | |
152 #define T30_TRAILER_LEN_BYT 2 /* FCS */ | |
153 | |
154 #define BIT_STREAM_LEN_BYT ((MAX_BITSTREAM_LEN_T30 + 7) / 8) | |
155 /* No. of bytes, rounded to byte boundary */ | |
156 #define HDLC_BUF_SIZE (2 * sizeof(USHORT) + T30_HEADER_LEN_BYT + BIT_STREAM_LEN_BYT + T30_TRAILER_LEN_BYT) | |
157 /* SDU header + T30 Header + HDLC Info + Trailer*/ | |
158 #define HDLC_BUF_SIZE_LNG ((HDLC_BUF_SIZE + sizeof (ULONG) - 1) / sizeof (ULONG)) | |
159 /* No. of ULONGs, rounded to long boundary */ | |
160 | |
161 /* | |
162 * Timer | |
163 */ | |
164 #define T1 0 /* Timer T1 */ | |
165 #define T2 1 /* Timer T2 */ | |
166 #define T4 2 /* Timer T4 */ | |
167 | |
168 /* | |
169 * Dynamic Configuration Numbers | |
170 */ | |
171 #define TIMER_SET 1 | |
172 #define TIMER_RESET 2 | |
173 #define TIMER_SPEED_UP 3 | |
174 #define TIMER_SLOW_DOWN 4 | |
175 #define TIMER_SUPPRESS 5 | |
176 | |
177 /* | |
178 * State index for the entity processes | |
179 */ | |
180 #define KER ker. | |
181 #define MUX mux. | |
182 | |
183 /* | |
184 * States of the entity processes | |
185 * | |
186 * Process KER | |
187 */ | |
188 enum | |
189 { | |
190 T30_NULL, | |
191 T30_DCN, | |
192 T30_IDLE, | |
193 T30_RCV_CFR, | |
194 T30_RCV_DAT, | |
195 T30_RCV_DATW, | |
196 T30_RCV_DCN, | |
197 T30_RCV_DCS, | |
198 T30_RCV_DIS, | |
199 T30_RCV_MCF, | |
200 T30_RCV_MSG, | |
201 T30_RCV_MSGW, | |
202 T30_RCV_PI, | |
203 T30_RCV_PST, | |
204 T30_RCV_PSTW, | |
205 T30_RCV_RDY, | |
206 T30_RCV_RDYF, | |
207 T30_RCV_RDYW, | |
208 T30_RCV_RT, | |
209 T30_RCV_RT2, | |
210 T30_RCV_T2, | |
211 T30_RCV_TCF, | |
212 T30_SND_CAP, | |
213 T30_SND_CFR, | |
214 T30_SND_DAT, | |
215 T30_SND_DATF, | |
216 T30_SND_DCN, | |
217 T30_SND_DCN1, | |
218 T30_SND_DCS, | |
219 T30_SND_DTC, | |
220 T30_SND_MCF, | |
221 T30_SND_MSG, | |
222 T30_SND_PI, | |
223 T30_SND_PRI, | |
224 T30_SND_PST, | |
225 T30_SND_PSTW, | |
226 T30_SND_RDY, | |
227 T30_SND_RDYW, | |
228 T30_SND_SGN, | |
229 T30_SND_TCF, | |
230 T30_ACTIVATE, | |
231 T30_DEACTIVATE | |
232 }; | |
233 | |
234 /* | |
235 * Process MUX | |
236 */ | |
237 #define T30_MUX_OFF 0 | |
238 #define T30_MUX_BCS 1 | |
239 #define T30_MUX_MSG 2 | |
240 | |
241 /*==== TYPES ======================================================*/ | |
242 | |
243 /* | |
244 * entity global data | |
245 */ | |
246 typedef struct | |
247 { | |
248 UBYTE state; | |
249 #ifndef NTRACE | |
250 char *state_name; | |
251 #endif | |
252 } T_STATE; | |
253 | |
254 typedef struct | |
255 { | |
256 UBYTE state; | |
257 #ifndef NTRACE | |
258 char *state_name; | |
259 #endif | |
260 UBYTE mode; | |
261 } T_MUX; | |
262 | |
263 typedef struct | |
264 { | |
265 USHORT beg, end, len; | |
266 } T_T30_FRAME; | |
267 | |
268 typedef struct | |
269 { | |
270 T_STATE ker; | |
271 T_MUX mux; | |
272 UBYTE dti_state; /* state variable for DTI library */ | |
273 UBYTE threshold; | |
274 BOOL rate_modified; | |
275 UBYTE repeat; | |
276 UBYTE sgn_ind; | |
277 UBYTE sgn_req; | |
278 UBYTE res; | |
279 UBYTE prev; | |
280 UBYTE fmod; | |
281 UBYTE hdlc_report; | |
282 UBYTE dir; | |
283 UBYTE data_cnf; | |
284 UBYTE preamble_ind; | |
285 UBYTE bitorder; | |
286 UBYTE stuff_bits; | |
287 UBYTE stuff_ones; | |
288 BOOL TDC_doli_pending; | |
289 BOOL TDC_upli_pending; | |
290 BOOL dti_data_ind_final; | |
291 | |
292 USHORT rtc_zero; | |
293 USHORT rtc_eol; | |
294 USHORT eol; | |
295 USHORT trans_rate; | |
296 USHORT frames_per_prim; | |
297 | |
298 T_T30_FRAME frm[FRAMES_MAX]; | |
299 | |
300 ULONG bcs_frm[(BCS_FRM_SIZE / sizeof (ULONG)) + 1]; | |
301 ULONG BCI_stream[HDLC_BUF_SIZE_LNG]; | |
302 | |
303 ULONG link_id; | |
304 | |
305 T_hdlc_info hdlc_rcv; | |
306 T_hdlc_info hdlc_snd; | |
307 | |
308 T_FAD_DATA_REQ *fad_data_req; | |
309 | |
310 T_DTI2_DATA_IND *dti_data_ind; | |
311 T_DTI2_DATA_IND *dti_data_ind_empty; | |
312 | |
313 UBYTE *dti_data_req_ptr; | |
314 T_desc2 *dti_data_req_desc; | |
315 | |
316 #ifdef _SIMULATION_ /* test_mode */ | |
317 USHORT test_mode; | |
318 #endif | |
319 } T_T30_DATA; | |
320 | |
321 /*==== EXPORT =====================================================*/ | |
322 | |
323 #define T1_INDEX 0 | |
324 #define T2_INDEX 1 | |
325 #define T4_INDEX 2 | |
326 | |
327 /* | |
328 * instance data base | |
329 */ | |
330 #ifdef T30_PEI_C | |
331 GLOBAL T_T30_DATA *t30_data; | |
332 #else | |
333 EXTERN T_T30_DATA *t30_data; | |
334 #endif | |
335 | |
336 #ifdef SHARED_FAX_DATA_RAM | |
337 | |
338 /*lint -e526 : not defined */ | |
339 EXTERN UBYTE rlp_data_base[]; | |
340 #define t30_data_base ((T_T30_DATA*)rlp_data_base) | |
341 | |
342 EXTERN ULONG rlp_data_magic_num; | |
343 #define t30_data_magic_num rlp_data_magic_num | |
344 | |
345 #else | |
346 | |
347 #ifdef T30_PEI_C | |
348 GLOBAL T_T30_DATA t30_data_base[T30_INSTANCES]; | |
349 GLOBAL ULONG t30_data_magic_num; | |
350 #else | |
351 EXTERN T_T30_DATA t30_data_base[]; | |
352 EXTERN ULONG t30_data_magic_num; | |
353 #endif | |
354 | |
355 #endif /* !SHARED_FAX_DATA_RAM */ | |
356 | |
357 #define T30_DATA_MAGIC_NUM (('T'<<24) + ('3'<<16) + ('0'<<8)) /* "T30",NUL */ | |
358 | |
359 #define ENTITY_DATA t30_data | |
360 | |
361 /*--------------------------------------------------------------------- | |
362 * Prototypes | |
363 * | |
364 * T30 KERNEL | |
365 * | |
366 * KERNEL primitive processing | |
367 */ | |
368 | |
369 EXTERN void ker_fad_activate_cnf (T_FAD_ACTIVATE_CNF *fad_activate_cnf ); | |
370 EXTERN void ker_fad_data_cnf (T_FAD_DATA_CNF *fad_data_cnf ); | |
371 EXTERN void ker_fad_deactivate_cnf (T_FAD_DEACTIVATE_CNF *fad_deactivate_cnf); | |
372 EXTERN void ker_fad_error_ind (T_FAD_ERROR_IND *fad_error_ind ); | |
373 EXTERN void ker_fad_rcv_tcf_cnf (T_FAD_RCV_TCF_CNF *fad_rcv_tcf_cnf ); | |
374 EXTERN void ker_fad_ready_ind (T_FAD_READY_IND *fad_ready_ind ); | |
375 EXTERN void ker_fad_snd_tcf_cnf (T_FAD_SND_TCF_CNF *fad_snd_tcf_cnf ); | |
376 | |
377 EXTERN void ker_t30_activate_req (T_T30_ACTIVATE_REQ *t30_activate_req ); | |
378 EXTERN void ker_t30_cap_req (T_T30_CAP_REQ *t30_cap_req ); | |
379 EXTERN void ker_t30_config_req (T_T30_CONFIG_REQ *t30_config_req ); | |
380 EXTERN void ker_t30_deactivate_req (T_T30_DEACTIVATE_REQ *t30_deactivate_req); | |
381 EXTERN void ker_t30_modify_req (T_T30_MODIFY_REQ *t30_modify_req ); | |
382 EXTERN void ker_t30_sgn_req (T_T30_SGN_REQ *t30_sgn_req ); | |
383 EXTERN void ker_t30_dti_req (T_T30_DTI_REQ *t30_dti_req ); | |
384 | |
385 #ifdef OPTION_MULTITHREAD | |
386 #define act_on_sgn_req _ENTITY_PREFIXED(act_on_sgn_req) | |
387 #define sig_bcs_ker_bdat_ind _ENTITY_PREFIXED(sig_bcs_ker_bdat_ind) | |
388 #define sig_bcs_ker_err_ind _ENTITY_PREFIXED(sig_bcs_ker_err_ind ) | |
389 #define sig_msg_ker_mdat_ind _ENTITY_PREFIXED(sig_msg_ker_mdat_ind) | |
390 #endif /* OPTION_MULTITHREAD */ | |
391 | |
392 EXTERN void act_on_sgn_req(void); | |
393 EXTERN void sig_bcs_ker_bdat_ind(void); | |
394 EXTERN void sig_bcs_ker_err_ind (UBYTE cause); | |
395 EXTERN void sig_msg_ker_mdat_ind(T_FAD_DATA_IND *fad_data_ind); | |
396 | |
397 #define sig_dti_ker_connection_opened_ind \ | |
398 _ENTITY_PREFIXED(sig_dti_ker_connection_opened_ind) | |
399 #define sig_dti_ker_connection_closed_ind \ | |
400 _ENTITY_PREFIXED(sig_dti_ker_connection_closed_ind) | |
401 #define sig_dti_ker_tx_buffer_full_ind \ | |
402 _ENTITY_PREFIXED(sig_dti_ker_tx_buffer_full_ind ) | |
403 #define sig_dti_ker_tx_buffer_ready_ind \ | |
404 _ENTITY_PREFIXED(sig_dti_ker_tx_buffer_ready_ind ) | |
405 #define sig_dti_ker_data_received_ind \ | |
406 _ENTITY_PREFIXED(sig_dti_ker_data_received_ind ) | |
407 | |
408 /* | |
409 * wrapping functions for dtilib primitives | |
410 */ | |
411 | |
412 /* | |
413 * these functions are called by pei_dti_callback | |
414 */ | |
415 | |
416 EXTERN void sig_dti_ker_connection_opened_ind(void); | |
417 EXTERN void sig_dti_ker_connection_closed_ind(void); | |
418 EXTERN void sig_dti_ker_tx_buffer_full_ind(void); | |
419 EXTERN void sig_dti_ker_tx_buffer_ready_ind(void); | |
420 EXTERN void sig_dti_ker_data_received_ind(T_DTI2_DATA_REQ *dti_data_req); | |
421 /* | |
422 * KERNEL procedures | |
423 */ | |
424 #ifdef OPTION_MULTITHREAD | |
425 | |
426 #define ker_check_rtc _ENTITY_PREFIXED(ker_check_rtc ) | |
427 #define ker_check_rtc _ENTITY_PREFIXED(ker_check_rtc ) | |
428 #define ker_fill_dcs_info _ENTITY_PREFIXED(ker_fill_dcs_info) | |
429 #define ker_fill_dis_info _ENTITY_PREFIXED(ker_fill_dis_info) | |
430 #define ker_fill_dtc_info _ENTITY_PREFIXED(ker_fill_dtc_info) | |
431 #define ker_init _ENTITY_PREFIXED(ker_init ) | |
432 #define ker_res_sub _ENTITY_PREFIXED(ker_res_sub ) | |
433 #define ker_send_dcs _ENTITY_PREFIXED(ker_send_dcs ) | |
434 #define ker_send_dis _ENTITY_PREFIXED(ker_send_dis ) | |
435 #define ker_send_dtc _ENTITY_PREFIXED(ker_send_dtc ) | |
436 #define ker_send_err _ENTITY_PREFIXED(ker_send_err ) | |
437 | |
438 #define snd_error_ind _ENTITY_PREFIXED(snd_error_ind ) | |
439 #define snd_t30_sgn_ind _ENTITY_PREFIXED(snd_t30_sgn_ind ) | |
440 #define snd_t30_sgn_ind _ENTITY_PREFIXED(snd_t30_sgn_ind ) | |
441 | |
442 #if defined _SIMULATION_ || defined KER_DEBUG_BCS || defined KER_DEBUG_MSG | |
443 #define ker_debug _ENTITY_PREFIXED(ker_debug) | |
444 #endif | |
445 | |
446 #define TDCcompress _ENTITY_PREFIXED(TDCcompress) | |
447 #define prepare_dti_data_ind _ENTITY_PREFIXED(prepare_dti_data_ind) | |
448 #define snd_dti_data_ind _ENTITY_PREFIXED(snd_dti_data_ind) | |
449 #define snd_t30_phase_ind _ENTITY_PREFIXED(snd_t30_phase_ind) | |
450 #define dti_connect_open _ENTITY_PREFIXED(dti_connect_open) | |
451 #define dti_connect_setup _ENTITY_PREFIXED(dti_connect_setup) | |
452 #define dti_connect_close _ENTITY_PREFIXED(dti_connect_close) | |
453 #define dti_disconnect _ENTITY_PREFIXED(dti_disconnect) | |
454 #define snd_t30_dti_cnf _ENTITY_PREFIXED(snd_t30_dti_cnf) | |
455 #define snd_dti_ready_ind _ENTITY_PREFIXED(snd_dti_ready_ind) | |
456 | |
457 #endif | |
458 | |
459 EXTERN UBYTE ker_check_rtc (T_FAD_DATA_IND *fad_data_ind); | |
460 EXTERN void ker_fill_dcs_info (T_BCS_DCS *bcs_dcs); | |
461 EXTERN void ker_fill_dis_info (T_BCS_DIS *bcs_dis); | |
462 EXTERN void ker_fill_dtc_info (T_BCS_DTC *bcs_dtc); | |
463 EXTERN void ker_init (T_T30_DATA *t30_data); | |
464 EXTERN void ker_send_dcs (T_T30_CAP_REQ *t30_cap_req); | |
465 EXTERN void ker_send_dis (void); | |
466 EXTERN void ker_send_dtc (T_T30_CAP_REQ *t30_cap_req); | |
467 EXTERN void ker_send_err (USHORT cause); | |
468 | |
469 EXTERN void snd_complete_ind (UBYTE cmpl); | |
470 EXTERN void snd_error_ind (USHORT cause); | |
471 EXTERN void snd_t30_sgn_ind (UBYTE sgn); | |
472 | |
473 #if defined _SIMULATION_ || defined KER_DEBUG_BCS || defined KER_DEBUG_MSG | |
474 EXTERN void ker_debug(CHAR *header, UBYTE *buf, USHORT len); | |
475 #endif | |
476 | |
477 EXTERN UBYTE TDCcompress(T_desc2 *desc, T_sdu *sdu); | |
478 EXTERN void prepare_dti_data_ind(T_FAD_DATA_IND *fad_data_ind); | |
479 EXTERN void snd_dti_data_ind(T_DTI2_DATA_IND **dti_data_ind); | |
480 EXTERN void snd_t30_phase_ind(UBYTE phase); | |
481 EXTERN void dti_connect_setup(T_T30_DTI_REQ *t30_dti_req); | |
482 EXTERN void dti_connect_open(); | |
483 EXTERN void dti_connect_close(); | |
484 EXTERN void dti_disconnect(); | |
485 EXTERN void snd_t30_dti_cnf(UBYTE dti_conn); | |
486 EXTERN void snd_dti_ready_ind(); | |
487 | |
488 | |
489 /*--------------------------------------------------------------------- | |
490 * T30 BCS FORMATTER | |
491 * | |
492 * BCS primitive processing | |
493 */ | |
494 | |
495 /* | |
496 * BCS signal processing | |
497 */ | |
498 #ifdef OPTION_MULTITHREAD | |
499 #define sig_ker_bcs_bdat_req _ENTITY_PREFIXED(sig_ker_bcs_bdat_req) | |
500 #define sig_mux_bcs_bcs_ind _ENTITY_PREFIXED(sig_mux_bcs_bcs_ind ) | |
501 #endif | |
502 | |
503 EXTERN void sig_ker_bcs_bdat_req (UBYTE final); | |
504 EXTERN void sig_mux_bcs_bcs_ind (T_FAD_DATA_IND *fad_data_ind); | |
505 | |
506 /* | |
507 * BCS procedures | |
508 */ | |
509 | |
510 #ifdef OPTION_MULTITHREAD | |
511 #define bcs_bcs_decode _ENTITY_PREFIXED(bcs_bcs_decode ) | |
512 #define bcs_bcs_encode _ENTITY_PREFIXED(bcs_bcs_encode ) | |
513 #define bcs_fill_bcs_frm _ENTITY_PREFIXED(bcs_fill_bcs_frm) | |
514 #define bcs_init _ENTITY_PREFIXED(bcs_init ) | |
515 #endif | |
516 | |
517 EXTERN void bcs_bcs_decode (void); | |
518 EXTERN void bcs_bcs_encode (UBYTE ctl, UBYTE final); | |
519 EXTERN UBYTE bcs_fill_bcs_frm (T_FAD_DATA_IND *fad_data_ind); | |
520 EXTERN void bcs_init (T_T30_DATA *); | |
521 | |
522 /*--------------------------------------------------------------------- | |
523 * T30 MSG FORMATTER | |
524 * | |
525 * MSG primitive processing | |
526 */ | |
527 | |
528 /* | |
529 * MSG signal processing | |
530 */ | |
531 #ifdef OPTION_MULTITHREAD | |
532 #define sig_ker_msg_mdat_req _ENTITY_PREFIXED(sig_ker_msg_mdat_req) | |
533 #define sig_mux_msg_msg_ind _ENTITY_PREFIXED(sig_mux_msg_msg_ind) | |
534 #endif | |
535 | |
536 EXTERN void sig_ker_msg_mdat_req (T_FAD_DATA_REQ *fad_data_req); | |
537 EXTERN void sig_mux_msg_msg_ind (T_FAD_DATA_IND *fad_data_ind); | |
538 | |
539 | |
540 /*--------------------------------------------------------------------- | |
541 * T30 MULTIPLEXER | |
542 * | |
543 * MUX primitive processing | |
544 */ | |
545 | |
546 EXTERN void mux_fad_data_ind (T_FAD_DATA_IND *fad_data_ind); | |
547 EXTERN void mux_fad_mux_ind (T_FAD_MUX_IND *fad_mux_ind); | |
548 | |
549 /* | |
550 * MUX signal processing | |
551 */ | |
552 #ifdef OPTION_MULTITHREAD | |
553 #define sig_bcs_mux_bcs_req _ENTITY_PREFIXED(sig_bcs_mux_bcs_req) | |
554 #define sig_ker_mux_mux_req _ENTITY_PREFIXED(sig_ker_mux_mux_req) | |
555 #define sig_msg_mux_msg_req _ENTITY_PREFIXED(sig_msg_mux_msg_req) | |
556 #endif | |
557 | |
558 EXTERN void sig_bcs_mux_bcs_req (T_FAD_DATA_REQ *fad_data_req); | |
559 EXTERN void sig_ker_mux_mux_req (void); | |
560 EXTERN void sig_msg_mux_msg_req (T_FAD_DATA_REQ *fad_data_req); | |
561 | |
562 #define MEMCOPSIZ(d,s) memcpy(d, s, sizeof(s)) | |
563 | |
564 /*--------------------------------------------------------------------- | |
565 * timer | |
566 */ | |
567 | |
568 #define TIMERSTART(i,v) vsi_t_start (VSI_CALLER i,v); | |
569 | |
570 #define TIMERSTATUS(i,v) vsi_t_status (VSI_CALLER i,v); | |
571 | |
572 #define TIMERSTOP(i) {vsi_t_stop (VSI_CALLER i); \ | |
573 t30_data->data_cnf = FALSE;}; | |
574 | |
575 /* | |
576 * Communication handles | |
577 */ | |
578 #ifdef OPTION_MULTITHREAD | |
579 #define hCommFAD _ENTITY_PREFIXED(hCommFAD) | |
580 #define hCommMMI _ENTITY_PREFIXED(hCommMMI) | |
581 #endif | |
582 | |
583 EXTERN DTI_HANDLE t30_hDTI; /* DTI connection handle for DTI library */ | |
584 | |
585 #ifdef T30_PEI_C | |
586 GLOBAL T_HANDLE t30_handle; | |
587 GLOBAL T_HANDLE hCommFAD = VSI_ERROR; /* FAD Communication */ | |
588 GLOBAL T_HANDLE hCommMMI = VSI_ERROR; /* MMI Communication */ | |
589 #else | |
590 EXTERN T_HANDLE t30_handle; | |
591 EXTERN T_HANDLE hCommFAD; | |
592 EXTERN T_HANDLE hCommMMI; | |
593 #endif | |
594 | |
595 GLOBAL void t30_timeout (USHORT index); | |
596 | |
597 /* | |
598 * entity common buffer for the decoded air interface message | |
599 */ | |
600 #ifdef OPTION_MULTITHREAD | |
601 #define _decodedMsg _ENTITY_PREFIXED(_decodedMsg) | |
602 #endif | |
603 | |
604 #ifdef T30_PEI_C | |
605 | |
606 GLOBAL const UBYTE BIT_MIRROR[] = | |
607 { | |
608 0x00,0x80,0x40,0xc0,0x20,0xa0,0x60,0xe0, | |
609 0x10,0x90,0x50,0xd0,0x30,0xb0,0x70,0xf0, | |
610 0x08,0x88,0x48,0xc8,0x28,0xa8,0x68,0xe8, | |
611 0x18,0x98,0x58,0xd8,0x38,0xb8,0x78,0xf8, | |
612 0x04,0x84,0x44,0xc4,0x24,0xa4,0x64,0xe4, | |
613 0x14,0x94,0x54,0xd4,0x34,0xb4,0x74,0xf4, | |
614 0x0c,0x8c,0x4c,0xcc,0x2c,0xac,0x6c,0xec, | |
615 0x1c,0x9c,0x5c,0xdc,0x3c,0xbc,0x7c,0xfc, | |
616 0x02,0x82,0x42,0xc2,0x22,0xa2,0x62,0xe2, | |
617 0x12,0x92,0x52,0xd2,0x32,0xb2,0x72,0xf2, | |
618 0x0a,0x8a,0x4a,0xca,0x2a,0xaa,0x6a,0xea, | |
619 0x1a,0x9a,0x5a,0xda,0x3a,0xba,0x7a,0xfa, | |
620 0x06,0x86,0x46,0xc6,0x26,0xa6,0x66,0xe6, | |
621 0x16,0x96,0x56,0xd6,0x36,0xb6,0x76,0xf6, | |
622 0x0e,0x8e,0x4e,0xce,0x2e,0xae,0x6e,0xee, | |
623 0x1e,0x9e,0x5e,0xde,0x3e,0xbe,0x7e,0xfe, | |
624 0x01,0x81,0x41,0xc1,0x21,0xa1,0x61,0xe1, | |
625 0x11,0x91,0x51,0xd1,0x31,0xb1,0x71,0xf1, | |
626 0x09,0x89,0x49,0xc9,0x29,0xa9,0x69,0xe9, | |
627 0x19,0x99,0x59,0xd9,0x39,0xb9,0x79,0xf9, | |
628 0x05,0x85,0x45,0xc5,0x25,0xa5,0x65,0xe5, | |
629 0x15,0x95,0x55,0xd5,0x35,0xb5,0x75,0xf5, | |
630 0x0d,0x8d,0x4d,0xcd,0x2d,0xad,0x6d,0xed, | |
631 0x1d,0x9d,0x5d,0xdd,0x3d,0xbd,0x7d,0xfd, | |
632 0x03,0x83,0x43,0xc3,0x23,0xa3,0x63,0xe3, | |
633 0x13,0x93,0x53,0xd3,0x33,0xb3,0x73,0xf3, | |
634 0x0b,0x8b,0x4b,0xcb,0x2b,0xab,0x6b,0xeb, | |
635 0x1b,0x9b,0x5b,0xdb,0x3b,0xbb,0x7b,0xfb, | |
636 0x07,0x87,0x47,0xc7,0x27,0xa7,0x67,0xe7, | |
637 0x17,0x97,0x57,0xd7,0x37,0xb7,0x77,0xf7, | |
638 0x0f,0x8f,0x4f,0xcf,0x2f,0xaf,0x6f,0xef, | |
639 0x1f,0x9f,0x5f,0xdf,0x3f,0xbf,0x7f,0xff | |
640 }; | |
641 | |
642 GLOBAL UBYTE _decodedMsg [MAX_MSTRUCT_LEN_T30]; | |
643 | |
644 #else | |
645 | |
646 EXTERN const UBYTE BIT_MIRROR[]; | |
647 EXTERN UBYTE _decodedMsg[]; | |
648 | |
649 #endif | |
650 | |
651 #endif /* T30_H */ |