comparison src/g23m-fad/t30/t30.h @ 1:fa8dc04885d8

src/g23m-*: import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:25:50 +0000
parents
children
comparison
equal deleted inserted replaced
0:4e78acac3d88 1:fa8dc04885d8
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 */