FreeCalypso > hg > fc-magnetite
annotate src/gpf2/tst/drv/tr2.c @ 581:a0a45c5eb3ef
gsmcomp.c: bumping trace partition size to 220 like in gprscomp.c
This change is safe in terms of RAM usage because all of these partition
pools have already been moved from XRAM to IRAM earlier, and our IRAM
usage in VO configs is currently quite low - the one near the limit
is XRAM on C11x.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 29 Jan 2019 03:52:49 +0000 |
parents | cd37d228dae0 |
children |
rev | line source |
---|---|
294
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +------------------------------------------------------------------------------ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | File: tr.c |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 +------------------------------------------------------------------------------ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 | Copyright 2004 Texas Instruments Deutschland, AG |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | All rights reserved. |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 | This file is confidential and a trade secret of Texas |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | Instruments Berlin, AG |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | The receipt of or possession of this file does not convey |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | any rights to reproduce or disclose its contents or to |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | manufacture, use, or sell anything it may describe, in |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | whole, or in part, without the specific written consent of |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | Texas Instruments Deutschland, AG. |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 +----------------------------------------------------------------------------- |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 | Purpose : This Modul contains the TR driver |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 +----------------------------------------------------------------------------- |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 #ifndef __TR_C__ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #define __TR_C__ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #include "string.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #include "typedefs.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #include "gdi.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #include "vsi.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #include "os.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #include <stdio.h> |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #include "glob_defs.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #include "tstdriver.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #include "frame.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #include "frame_const.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #include "printtofile.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #endif /* _TOOLS_ */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #include "tstheader.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #include "tst_mux.h" |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /*==== TYPES ======================================================*/ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 typedef struct |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 T_VOID_STRUCT *RcvBuffer; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 USHORT Handle; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 USHORT EnabledSignalType; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 T_DRV_CB_FUNC Callback; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 USHORT config; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 UBYTE rcv_state; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 UBYTE idle_state; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 } T_TR_DATA; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 /*==== CONSTANTS ==================================================*/ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 #define ALLOWED_TR_SIGNALS (DRV_SIGTYPE_READ|DRV_SIGTYPE_CONNECT|DRV_SIGTYPE_DISCONNECT) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 #define STX 0x02 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 #define TI_RIV_ID 0x11 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 #define TI_L1_ID 0x12 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 #define TI_L23_ID 0x13 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 #define TI_STX 0x02 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 #define TI_ESC 0x10 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 #define CHAR_ABORT 'A' |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 #define DATA_SEGMENT_SIZE 223 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 #define WAIT_FOR_STX 0 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 #define WAIT_FOR_IDENT 1 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 #define WAIT_FOR_TIMESTAMP 2 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 #define WAIT_FOR_LENGTH 3 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 #define WAIT_FOR_SND 4 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 #define WAIT_FOR_RCV 5 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 #define WAIT_FOR_DATA 6 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 #define WAIT_FOR_CR 7 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 #define WAIT_FOR_TI_ID 8 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 #define WAIT_FOR_TI_LEN_0 9 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 #define WAIT_FOR_TI_LEN_1 10 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 #define WAIT_FOR_TI_LEN_2 11 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 #define WAIT_FOR_LENGTH1 12 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 #define WAIT_FOR_LENGTH2 13 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 #define WAIT_FOR_RAW_TI_S 14 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 #define WAIT_FOR_RAW_TI_ID 15 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 #define WAIT_FOR_RAW_TI_E 16 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 #define WAIT_FOR_MUX_START_STX 1 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 #define WAIT_FOR_MUX_CHAN_ID 2 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 #define WAIT_FOR_MUX_END_STX 3 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 #define STX_LF_MODE 0x0001 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 #define TI_TRC_MODE 0x0002 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 #define TI_RAW_TRC_MODE 0x0004 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 /*==== EXTERNALS ==================================================*/ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 extern ULONG TR_RcvBufferSize; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 extern ULONG TR_MaxInd; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 extern USHORT ext_data_pool_handle; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 extern T_TST_MUX_CHANNEL tst_mux_chan_struct[]; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 /*==== VARIABLES ==================================================*/ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 #ifndef _TARGET_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 long int accessNum = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 T_TR_DATA TR_Data; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 static char *TR_RcvBuffer; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 static ULONG TR_EndInd; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 static ULONG TR_WrInd; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 static ULONG TR_RdInd; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 static ULONG MessageLength; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 static union { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 unsigned short int val; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 char part[2]; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 }tst_trailer_size; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 #else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 extern T_TR_DATA TR_Data; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 static int ti_id_not_found; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 static int ti_esc_skipped; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 extern int tst_message_received; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 #else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 extern ULONG MaxPrimPartSize; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 /*==== FUNCTIONS ==================================================*/ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 USHORT TR_Write ( void *Buffer, ULONG *BytesToWrite ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 | PROJECT : GSM-Frame (8415) MODULE : TR | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 | STATE : code ROUTINE : TR_Exit | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 PURPOSE : exit a driver |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 LOCAL void TR_Exit ( void ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 os_DeallocateMemory ( 0, TR_Data.RcvBuffer ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 | PROJECT : GSM-Frame (8415) MODULE : TR | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 | STATE : code ROUTINE : TR_Read | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 PURPOSE : read data from driver |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 LOCAL USHORT TR_Read ( void *Buffer, ULONG *BytesToRead ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 ULONG Space = TR_EndInd - (TR_RdInd & TR_MaxInd); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 static ULONG bytes_read; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 if ( *BytesToRead == 0 ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 *BytesToRead = MessageLength; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 bytes_read = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 if ( Space > *BytesToRead ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 memcpy ( Buffer, &TR_RcvBuffer[TR_RdInd&TR_MaxInd], *BytesToRead ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 bytes_read += *BytesToRead; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 memcpy ( Buffer, &TR_RcvBuffer[TR_RdInd&TR_MaxInd], (unsigned int)Space ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 *BytesToRead = Space; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 bytes_read += Space; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 TR_RdInd += *BytesToRead; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 if ( TR_Data.config & STX_LF_MODE ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 if ( bytes_read == MessageLength ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 TR_RdInd++; /* skip th LF, its not read by the TIF driver */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 | PROJECT : GSM-Frame (8415) MODULE : TR | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 | STATE : code ROUTINE : TR_Write | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 PURPOSE : write data to driver |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 USHORT TR_Write ( void *Buffer, ULONG *BytesToWrite ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 char *snd_ptr = (char*)Buffer; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 ULONG btw; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 char ti_mode_header[2]; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 ti_mode_header[0] = TI_STX; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 ti_mode_header[1] = TI_L23_ID; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 btw=(*BytesToWrite) & ~PRIM_FLAG_MASK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 #else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 btw=(*BytesToWrite); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 if (TR_Data.config & TI_RAW_TRC_MODE) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 ULONG full_btw, segment_size; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 /*lint -e813, suppress Info 813: auto variable 'osver' has size '148' */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 char segment[DATA_SEGMENT_SIZE*2+3]; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 /*lint +e813 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 ULONG q; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 full_btw=btw; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 while (full_btw) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 btw= (full_btw>DATA_SEGMENT_SIZE) ? DATA_SEGMENT_SIZE : full_btw; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 /* fill in leading bytes */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 segment_size=0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 segment[segment_size++]=TI_STX; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 segment[segment_size++]=TI_L23_ID; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 /* fill in payload bytes */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 for (q=0; q<btw; q++) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 /* evtl insert TI_ESC characters */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 if (snd_ptr[q]==TI_STX || snd_ptr[q]==TI_ESC) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 segment[segment_size++]=TI_ESC; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 segment[segment_size++]=snd_ptr[q]; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 /* fill in trailing bytes */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 segment[segment_size++]=TI_STX; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 /* write segment */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 if ( vsi_d_write ( TR_Data.Handle, 0, (void*)segment, segment_size) != VSI_OK ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 return DRV_INTERNAL_ERROR; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 full_btw=full_btw-btw; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 if (full_btw) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 snd_ptr=snd_ptr+btw; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 /* let the ti driver on target handle the byte-block */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 vsi_t_sleep ( 0, 100 ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 #endif /* _TOOLS_ */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 * To avoid reallocation and memcpy() the STX is written in front of the passed |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 * data. This works as long as the sizeof(T_SYST_HEADER) is bigger than the header |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 * sent via the test interface. |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 if ( TR_Data.config & STX_LF_MODE ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 btw=(*BytesToWrite) & ~PRIM_FLAG_MASK; /* not really generic, but we need to mask here */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 /* we assume that the TITRC driver is not below */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 if ( *BytesToWrite & PRIM_DATA_FLAG ) /* primitive data -> LF at the end */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 *(snd_ptr+btw) = '\n'; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 btw = btw + 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 else if ( *BytesToWrite & PRIM_HEADER_FLAG ) /* primitive header -> add STX in front */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 snd_ptr--; /* it is posible to add STX because the first */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 *snd_ptr = STX; /* byte of TST_SMALL_HEADER/TST_BIG_HEADER in unused */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 btw = btw + 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 else /* trace -> STX in front, LF at the end */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 *(snd_ptr+btw) = '\n'; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 snd_ptr--; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 *snd_ptr = STX; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 btw = btw + 2; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 /* Add mux STX and channel id if not already in */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 if (TR_Data.config & TI_RAW_TRC_MODE && *snd_ptr != TI_STX ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 if ( vsi_d_write ( TR_Data.Handle, 0, (void*)ti_mode_header, 2) != VSI_OK ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 return DRV_INTERNAL_ERROR; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 if ( vsi_d_write ( TR_Data.Handle, 0, (void*)snd_ptr, btw) != VSI_OK ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 return DRV_INTERNAL_ERROR; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 | PROJECT : GSM-Frame (8415) MODULE : TR | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 | STATE : code ROUTINE : TR_SetSignal | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 PURPOSE : enable signal for the driver |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 LOCAL USHORT TR_SetSignal ( USHORT SignalType ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 if ( !(SignalType & ALLOWED_TR_SIGNALS) ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 return DRV_INVALID_PARAMS; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 TR_Data.EnabledSignalType |= SignalType; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 | PROJECT : GSM-Frame (8415) MODULE : TR | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 | STATE : code ROUTINE : TR_ResetSignal | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 PURPOSE : disable signal for the driver |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 LOCAL USHORT TR_ResetSignal ( USHORT SignalType ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 if ( !(SignalType & ALLOWED_TR_SIGNALS) ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 return DRV_INVALID_PARAMS; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 TR_Data.EnabledSignalType &= ~SignalType; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 | PROJECT : GSM-Frame (8415) MODULE : TR | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 | STATE : code ROUTINE : TR_SetConfig | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 PURPOSE : set configuration for the driver |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 LOCAL USHORT TR_SetConfig ( char *Buffer ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373 if ( !strcmp ( TR_STX_LF, Buffer ) ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 TR_Data.config = STX_LF_MODE; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 TR_Data.rcv_state = WAIT_FOR_STX; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 TR_Data.idle_state = WAIT_FOR_STX; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 printf ("TR: STX mode enabled\n"); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 #endif /* _TOOLS_ */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384 else if ( !strcmp ( DRV_TI_MODE, Buffer ) ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 TR_Data.config = TI_TRC_MODE; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387 TR_Data.rcv_state = WAIT_FOR_TI_ID; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 TR_Data.idle_state = WAIT_FOR_TI_ID; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389 printf ("TR: TI mode enabled\n"); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392 #endif /* _TOOLS_ */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393 else if ( !strcmp ( DRV_RAW_TI_MODE, Buffer ) ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 TR_Data.config = TI_RAW_TRC_MODE; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 TR_Data.rcv_state = WAIT_FOR_RAW_TI_S; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397 TR_Data.idle_state = WAIT_FOR_RAW_TI_S; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399 printf ("TR: raw TI mode enabled\n"); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
403 else if ( !strcmp ( DRV_DEFAULT, Buffer ) ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
405 TR_Data.config = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
406 TR_Data.rcv_state = WAIT_FOR_IDENT; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
407 TR_Data.idle_state = WAIT_FOR_IDENT; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
408 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
409 accessNum++; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
410 PrintToFile("TR: default mode selected __________________________ (%d)\n", accessNum); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
411 #endif /* _TOOLS_ */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
412 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
413 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
414 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
415 return DRV_INVALID_PARAMS; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
416 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
417 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
418 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
419 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
420 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
421 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
422 | PROJECT : GSM-Frame (8415) MODULE : TR | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
423 | STATE : code ROUTINE : Callback | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
424 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
425 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
426 PURPOSE : callback function of the driver |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
427 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
428 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
429 /*lint -esym(644,infoByteAddr) suppress warning -- Symbol 'infoByteAddr' may not have been initialized */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
430 LOCAL void TR_Callback ( T_DRV_SIGNAL *Signal ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
431 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
432 static T_DRV_SIGNAL TR_Signal; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
433 static USHORT counter = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
434 static char* infoByteAddr; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
435 int tr_abort_discard; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
436 int tr_abort; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
437 unsigned char c; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
438 ULONG i; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
439 ULONG BytesToRead; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
440 ULONG BytesRead = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
441 ULONG TR_WorkInd; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
442 ULONG Bytes = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
443 USHORT continue_read; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
444 //#ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
445 static unsigned int ti_len = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
446 static char ti_id = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
447 static int sigtype = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
448 static int lf_found; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
449 static int crlf_found; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
450 static U8 mux_chan_id; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
451 static U8 mux_chan = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
452 static U8 mux_status = WAIT_FOR_MUX_CHAN_ID; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
453 static int stuffed_byte; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
454 //#endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
455 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
456 tr_abort_discard = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
457 tr_abort = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
458 TR_Signal.SignalType = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
459 switch ( Signal->SignalType ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
460 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
461 case DRV_SIGTYPE_READ: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
462 BytesToRead = TR_EndInd - TR_WrInd; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
463 TR_WorkInd = TR_WrInd; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
464 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
465 do |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
466 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
467 Bytes = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
468 do |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
469 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
470 continue_read = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
471 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
472 * write counter must not overtake the read counter. If more bytes to be read |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
473 * than space available, then process the bytes in the buffer first and then |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
474 * continue to store new data in the TR_RcvBuffer. |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
475 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
476 if ( TR_WrInd >= (TR_RdInd&TR_MaxInd) ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
477 BytesToRead = TR_EndInd - TR_WrInd; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
478 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
479 BytesToRead = (TR_RdInd&TR_MaxInd) - TR_WrInd; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
480 BytesRead = BytesToRead; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
481 vsi_d_read ( TR_Data.Handle, 0, (void*)&TR_RcvBuffer[TR_WrInd], &BytesRead ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
482 Bytes += BytesRead; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
483 if ( BytesRead < BytesToRead ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
484 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
485 TR_WrInd += BytesRead; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
486 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
487 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
488 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
489 if ( TR_WrInd >= (TR_RdInd&TR_MaxInd) ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
490 TR_WrInd = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
491 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
492 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
493 TR_WrInd += BytesRead; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
494 continue_read = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
495 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
496 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
497 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
498 } while ( BytesRead != TR_RcvBufferSize && BytesRead == BytesToRead ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
499 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
500 if ( Bytes ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
501 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
502 UBYTE cMasked; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
503 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
504 i=0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
505 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
506 while (i++ < Bytes) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
507 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
508 c = TR_RcvBuffer[(TR_WorkInd++) & TR_MaxInd]; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
509 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
510 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
511 if (TR_Data.config & TI_RAW_TRC_MODE) /* we are receiving rawly in TI mode */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
512 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
513 if (!ti_esc_skipped && c==TI_ESC) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
514 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
515 /* the TI driver has inserted an TI_ESC -> skip it */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
516 ULONG q; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
517 for (q=TR_WorkInd-1; q>TR_RdInd; q--) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
518 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
519 TR_RcvBuffer[q & TR_MaxInd]=TR_RcvBuffer[(q-1) & TR_MaxInd]; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
520 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
521 TR_RdInd++; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
522 ti_esc_skipped=1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
523 continue; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
524 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
525 ti_esc_skipped=0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
526 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
527 #endif /* _TOOLS_ */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
528 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
529 if ( tr_abort_discard == 1 ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
530 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
531 TR_RdInd++; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
532 continue; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
533 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
534 switch (TR_Data.rcv_state) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
535 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
536 case WAIT_FOR_STX: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
537 if (c == STX) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
538 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
539 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
540 ti_len=0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
541 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
542 TR_Data.rcv_state = WAIT_FOR_IDENT; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
543 TR_RdInd = TR_WorkInd; /* do not pass the STX to TIF */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
544 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
545 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
546 TR_RdInd++; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
547 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
548 //#ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
549 case WAIT_FOR_RAW_TI_S: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
550 if (c==TI_STX) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
551 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
552 TR_Data.rcv_state=WAIT_FOR_RAW_TI_ID; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
553 TR_RdInd = TR_WorkInd; /* do not read TI_STX */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
554 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
555 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
556 case WAIT_FOR_RAW_TI_ID: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
557 if (c==TI_STX) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
558 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
559 // last TI_STX was end ID -> ignore this start ID |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
560 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
561 else if (c==TI_L23_ID) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
562 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
563 ti_len = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
564 ti_id = c; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
565 TR_Data.rcv_state=WAIT_FOR_IDENT; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
566 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
567 else if (c == TI_L1_ID || c == TI_RIV_ID) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
568 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
569 ti_len = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
570 ti_id = c; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
571 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
572 if (ti_id == TI_L1_ID) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
573 sigtype = DRV_SIGTYPE_READ_L1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
574 if (ti_id == TI_RIV_ID) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
575 sigtype = DRV_SIGTYPE_READ_RIV; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
576 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
577 counter = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
578 TR_RdInd = TR_WorkInd; /* do not read ti_id */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
579 crlf_found = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
580 lf_found = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
581 TR_Data.rcv_state=WAIT_FOR_RAW_TI_E; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
582 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
583 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
584 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
585 mux_chan_id = c; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
586 if ( mux_status == WAIT_FOR_MUX_CHAN_ID ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
587 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
588 for ( mux_chan = 0; mux_chan < MAX_TST_CHANNEL; mux_chan++ ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
589 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
590 if ( tst_mux_chan_struct[mux_chan].channel_id == c ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
591 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
592 mux_status = WAIT_FOR_MUX_END_STX; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
593 tst_mux_chan_struct[mux_chan].rcv_data_ptr = &TR_RcvBuffer[(TR_WorkInd) & TR_MaxInd]; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
594 tst_mux_chan_struct[mux_chan].rcv_data_size = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
595 stuffed_byte = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
596 TR_RdInd = TR_WorkInd; /* do not read id */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
597 TR_Data.rcv_state=WAIT_FOR_RAW_TI_E; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
598 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
599 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
600 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
601 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
602 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
603 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
604 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
605 case WAIT_FOR_TI_ID: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
606 /* skip TI ID byte */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
607 if (c == TI_L23_ID || c == TI_L1_ID || c == TI_RIV_ID) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
608 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
609 ti_len = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
610 ti_id = c; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
611 TR_Data.rcv_state = WAIT_FOR_TI_LEN_0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
612 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
613 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
614 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
615 ti_id_not_found = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
616 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
617 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
618 case WAIT_FOR_TI_LEN_0: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
619 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
620 * skip length |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
621 * if length byte == 0 then the next 2 bytes are the length |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
622 * (patch to handle messages longer than 255 bytes) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
623 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
624 if ( c != 0 ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
625 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
626 if (ti_id == TI_L23_ID) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
627 TR_Data.rcv_state = WAIT_FOR_IDENT; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
628 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
629 if (ti_id == TI_L1_ID || ti_id == TI_RIV_ID) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
630 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
631 if (ti_id == TI_L1_ID) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
632 sigtype = DRV_SIGTYPE_READ_L1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
633 if (ti_id == TI_RIV_ID) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
634 sigtype = DRV_SIGTYPE_READ_RIV; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
635 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
636 TR_Data.rcv_state = WAIT_FOR_DATA; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
637 counter = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
638 TR_RdInd += 2; /* do not read ti_id and length */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
639 crlf_found = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
640 lf_found = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
641 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
642 ti_len = c & 0xff; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
643 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
644 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
645 TR_Data.rcv_state = WAIT_FOR_TI_LEN_1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
646 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
647 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
648 case WAIT_FOR_TI_LEN_1: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
649 ti_len = c ; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
650 TR_Data.rcv_state = WAIT_FOR_TI_LEN_2; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
651 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
652 case WAIT_FOR_TI_LEN_2: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
653 ti_len |= c << 8; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
654 TR_Data.rcv_state = WAIT_FOR_IDENT; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
655 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
656 #endif /* ifdef _TOOLS_ */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
657 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
658 case WAIT_FOR_IDENT: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
659 infoByteAddr = &TR_RcvBuffer[(TR_WorkInd - 1) & TR_MaxInd]; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
660 /* analyze INFO Byte */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
661 cMasked = (c & HDR_VERSION_MASK); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
662 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
663 if (cMasked == HDR_VALID_VERSION_0) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
664 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
665 i--; TR_WorkInd--; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
666 printf ("TR: changed to OLD header format automatically\n"); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
667 // tst_drv_write ( NO_TASK, SYS_MASK, FRM_TST_NAME, (char*)SYSPRIM_GET_STACK_TIME ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
668 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
669 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
670 /* check for lost bytes on interface */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
671 if (TR_Data.config & TI_TRC_MODE || |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
672 TR_Data.config & TI_RAW_TRC_MODE) /* we are receiving from a arm 7 TARGET */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
673 { /* TR_WorkInd refs position of first size byte now */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
674 if (ti_id_not_found) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
675 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
676 *infoByteAddr = (( *infoByteAddr & ~HDR_IDENT_MASK) | IDENT_ABORT); /* mark as bad */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
677 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
678 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
679 #endif /* ifdef _TOOLS_ */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
680 cMasked = (c & HDR_IDENT_MASK); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
681 if (((cMasked == IDENT_PS_PRIM) || (cMasked == IDENT_SYS_PRIM) || |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
682 (cMasked == IDENT_ABORT) || (cMasked == IDENT_TRACE)) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
683 && |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
684 ((c != PROT_PRIM_ID) && (c != PROT_PRIM_ID_32BIT) && |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
685 (c != SYS_PRIM_ID) && (c != TRACE_ID)) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
686 ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
687 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
688 /* Hey fine, everything went OK! */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
689 TR_Data.rcv_state = WAIT_FOR_LENGTH1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
690 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
691 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
692 { /* we have to fake a length for abort trace */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
693 tst_trailer_size.part[0] = TST_HEADER_LEADING_FIELDS; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
694 tst_trailer_size.part[1] = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
695 MessageLength = tst_trailer_size.val + TST_HEADER_TRAILING_FIELDS; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
696 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
697 *infoByteAddr = (( *infoByteAddr & ~HDR_IDENT_MASK) | IDENT_ABORT); /* mark as bad */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
698 counter = tst_trailer_size.val; /* don't let us read all the following bytes before let TIF tracing ABORT */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
699 TR_Data.rcv_state = WAIT_FOR_DATA; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
700 tr_abort = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
701 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
702 TR_RdInd = TR_WorkInd - 1; /* skip all preceeding interface sync bytes before triggering TIF */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
703 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
704 case WAIT_FOR_LENGTH1: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
705 /* the use of the union does rely on identical byte sex! */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
706 #ifdef _SOLARIS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
707 /* temporary hack */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
708 tst_trailer_size.part[1] = c; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
709 #else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
710 tst_trailer_size.part[0] = c; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
711 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
712 TR_Data.rcv_state = WAIT_FOR_LENGTH2; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
713 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
714 case WAIT_FOR_LENGTH2: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
715 #ifdef _SOLARIS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
716 /* temporary hack */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
717 tst_trailer_size.part[0] = c; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
718 #else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
719 tst_trailer_size.part[1] = c; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
720 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
721 /* Bytes after size + bytes till size (inclusive) */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
722 MessageLength = tst_trailer_size.val + TST_HEADER_LEADING_FIELDS; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
723 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
724 /* In case of a lost character the two length information elements mismatch. */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
725 if ( (ti_len != 0) && (tst_trailer_size.val != (ti_len - 3)) ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
726 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
727 tst_trailer_size.val = ti_len - 3; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
728 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
729 ti_len = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
730 if ((tst_trailer_size.val - TST_HEADER_TRAILING_FIELDS) > (unsigned short int)(MAX_PRIM_PARTITION_SIZE - sizeof(T_PRIM_HEADER) - sizeof(T_S_HEADER))) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
731 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
732 *infoByteAddr = (( *infoByteAddr & ~HDR_IDENT_MASK) | IDENT_ABORT); /* mark as bad */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
733 tst_trailer_size.val = (MAX_PRIM_PARTITION_SIZE - sizeof(T_PRIM_HEADER) - sizeof(T_S_HEADER) -TST_HEADER_TRAILING_FIELDS); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
734 counter = tst_trailer_size.val; /* don't let us read all the following bytes before let TIF tracing ABORT */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
735 tr_abort = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
736 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
737 #else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
738 if ((tst_trailer_size.val - TST_HEADER_TRAILING_FIELDS) > (unsigned short int)(MaxPrimPartSize - sizeof(T_PRIM_HEADER) - sizeof(T_S_HEADER))) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
739 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
740 *infoByteAddr = (( *infoByteAddr & ~HDR_IDENT_MASK) | IDENT_ABORT); /* mark as bad */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
741 tst_trailer_size.val = (USHORT)(MaxPrimPartSize - sizeof(T_PRIM_HEADER) - sizeof(T_S_HEADER) -TST_HEADER_TRAILING_FIELDS); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
742 counter = tst_trailer_size.val; /* don't let us read all the following bytes before let TIF tracing ABORT */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
743 tr_abort = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
744 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
745 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
746 TR_Data.rcv_state = WAIT_FOR_DATA; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
747 counter = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
748 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
749 case WAIT_FOR_RAW_TI_E: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
750 if ( mux_status == WAIT_FOR_MUX_END_STX ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
751 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
752 if ( stuffed_byte ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
753 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
754 stuffed_byte = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
755 tst_mux_chan_struct[mux_chan].rcv_data_size++; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
756 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
757 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
758 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
759 if ( c != TI_STX ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
760 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
761 if ( c == 0x10 ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
762 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
763 stuffed_byte = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
764 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
765 tst_mux_chan_struct[mux_chan].rcv_data_size++; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
766 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
767 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
768 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
769 tst_mux_callback (mux_chan,tst_mux_chan_struct[mux_chan].rcv_data_ptr, tst_mux_chan_struct[mux_chan].rcv_data_size); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
770 mux_status = WAIT_FOR_MUX_CHAN_ID; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
771 MessageLength = tst_mux_chan_struct[mux_chan].rcv_data_size; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
772 TR_Data.rcv_state = WAIT_FOR_RAW_TI_S; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
773 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
774 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
775 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
776 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
777 if (c!=TI_STX) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
778 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
779 if ( counter == 0 && c == 0x0a ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
780 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
781 lf_found = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
782 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
783 if ( lf_found && counter == 1 && c == 0x0d) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
784 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
785 crlf_found = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
786 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
787 counter++; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
788 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
789 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
790 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
791 if ( TR_Data.EnabledSignalType & DRV_SIGTYPE_READ ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
792 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
793 ti_len=counter; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
794 if ( crlf_found == 1 ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
795 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
796 ti_len -= 2; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
797 TR_RdInd += 2; /* do not read CR and LF at the beginning */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
798 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
799 MessageLength = ti_len; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
800 TR_Signal.SignalType = sigtype; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
801 TR_Signal.DrvHandle = TR_Data.Handle; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
802 (TR_Data.Callback)( &TR_Signal ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
803 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
804 TR_Data.rcv_state = TR_Data.idle_state; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
805 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
806 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
807 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
808 case WAIT_FOR_DATA: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
809 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
810 if ( ti_len ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
811 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
812 if ( counter == 0 && c == 0x0a ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
813 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
814 lf_found = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
815 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
816 if ( lf_found && counter == 1 && c == 0x0d) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
817 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
818 crlf_found = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
819 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
820 if ( ++counter >= ti_len ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
821 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
822 if ( TR_Data.EnabledSignalType & DRV_SIGTYPE_READ ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
823 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
824 if ( crlf_found == 1 ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
825 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
826 ti_len -= 2; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
827 TR_RdInd += 2; /* do not read CR and LF at the beginning */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
828 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
829 MessageLength = ti_len; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
830 TR_Signal.SignalType = sigtype; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
831 TR_Signal.DrvHandle = TR_Data.Handle; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
832 (TR_Data.Callback)( &TR_Signal ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
833 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
834 TR_Data.rcv_state = TR_Data.idle_state; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
835 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
836 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
837 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
838 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
839 if (++counter >= tst_trailer_size.val) /* If all went OK up to now we have to read all remaining bytes from the buffer each for each */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
840 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
841 if (TR_Data.config & STX_LF_MODE ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
842 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
843 TR_Data.rcv_state = WAIT_FOR_CR; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
844 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
845 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
846 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
847 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
848 if ( TR_Data.EnabledSignalType & DRV_SIGTYPE_READ ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
849 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
850 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
851 tst_message_received = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
852 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
853 TR_Signal.SignalType = DRV_SIGTYPE_READ; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
854 TR_Signal.DrvHandle = TR_Data.Handle; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
855 (TR_Data.Callback)( &TR_Signal ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
856 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
857 TR_Data.rcv_state = TR_Data.idle_state; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
858 tst_trailer_size.val = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
859 if ( tr_abort == 1 ) /* marked as bad */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
860 tr_abort_discard = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
861 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
862 ti_id_not_found = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
863 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
864 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
865 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
866 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
867 case WAIT_FOR_CR: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
868 #ifdef _TOOLS_ /* check for lost bytes on interface */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
869 if (TR_Data.config & STX_LF_MODE ) /* we are receiving from a arm 9 TARGET or Windows stack configured stx */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
870 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
871 if (c != '\n') |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
872 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
873 *infoByteAddr = (( *infoByteAddr & ~HDR_IDENT_MASK) | IDENT_ABORT); /* mark as bad */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
874 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
875 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
876 #endif /* _TOOLS_ check for lost bytes on interface */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
877 if ( TR_Data.EnabledSignalType & DRV_SIGTYPE_READ ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
878 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
879 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
880 tst_message_received = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
881 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
882 TR_Signal.SignalType = DRV_SIGTYPE_READ; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
883 TR_Signal.DrvHandle = TR_Data.Handle; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
884 (TR_Data.Callback)( &TR_Signal ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
885 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
886 TR_Data.rcv_state = TR_Data.idle_state; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
887 tst_trailer_size.val = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
888 if ( tr_abort == 1 ) /* marked as bad */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
889 tr_abort_discard = 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
890 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
891 default: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
892 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
893 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
894 } /* while (i++ < Bytes) */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
895 } /* if Bytes loop */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
896 } while ( continue_read == 1 ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
897 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
898 case DRV_SIGTYPE_CONNECT: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
899 case DRV_SIGTYPE_DISCONNECT: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
900 if ( TR_Data.EnabledSignalType & Signal->SignalType ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
901 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
902 TR_Signal.SignalType = Signal->SignalType; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
903 TR_Signal.DrvHandle = TR_Data.Handle; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
904 (TR_Data.Callback)( &TR_Signal ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
905 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
906 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
907 default: |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
908 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
909 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
910 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
911 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
912 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
913 #ifndef RUN_INT_RAM |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
914 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
915 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
916 | PROJECT : GSM-Frame (8415) MODULE : TR | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
917 | STATE : code ROUTINE : TR_Init | |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
918 +--------------------------------------------------------------------+ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
919 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
920 PURPOSE : initialize driver |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
921 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
922 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
923 USHORT TR_Init ( USHORT DrvHandle, T_DRV_CB_FUNC CallbackFunc, T_DRV_EXPORT const **DrvInfo ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
924 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
925 USHORT j; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
926 ULONG size = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
927 static const T_DRV_EXPORT TR_Info = |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
928 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
929 "TR", |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
930 0, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
931 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
932 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
933 TR_Init, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
934 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
935 TR_Exit, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
936 TR_Read, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
937 TR_Write, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
938 NULL, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
939 NULL, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
940 NULL, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
941 TR_SetSignal, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
942 TR_ResetSignal, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
943 TR_SetConfig, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
944 NULL, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
945 TR_Callback, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
946 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
947 }; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
948 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
949 TR_Data.Handle = DrvHandle; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
950 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
951 TR_Data.EnabledSignalType = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
952 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
953 TR_Data.config = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
954 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
955 TR_Data.rcv_state = WAIT_FOR_IDENT; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
956 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
957 TR_Data.idle_state = WAIT_FOR_IDENT; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
958 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
959 TR_Data.Callback = CallbackFunc; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
960 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
961 *DrvInfo = &TR_Info; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
962 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
963 /* |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
964 * TR_RcvBufferSize must be a power of 2 for proper wrap-around |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
965 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
966 #ifndef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
967 TR_RcvBufferSize = MaxPrimPartSize; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
968 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
969 j = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
970 do |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
971 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
972 if ( (ULONG)(1 << j) >= TR_RcvBufferSize ) /* Size must be a power of 2 */ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
973 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
974 size = 1 << j; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
975 break; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
976 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
977 else |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
978 j++; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
979 } while ( size < 0xffff ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
980 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
981 TR_RcvBufferSize = size; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
982 TR_MaxInd = TR_RcvBufferSize - 1; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
983 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
984 if ( os_AllocateMemory ( NO_TASK, &TR_Data.RcvBuffer, (ULONG)TR_RcvBufferSize, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
985 OS_NO_SUSPEND, ext_data_pool_handle ) != OS_OK ) |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
986 { |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
987 vsi_o_assert ( NO_TASK, OS_SYST_ERR_NO_MEMORY, __FILE__, __LINE__, |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
988 "No memory available in TR driver, TR_RcvBufferSize = %d", |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
989 TR_RcvBufferSize ); |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
990 return DRV_INITFAILURE; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
991 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
992 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
993 TR_RcvBuffer = (char*)TR_Data.RcvBuffer; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
994 TR_EndInd = TR_RcvBufferSize; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
995 TR_WrInd = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
996 TR_RdInd = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
997 tst_trailer_size.val = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
998 #ifdef _TOOLS_ |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
999 ti_id_not_found = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1000 ti_esc_skipped = 0; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1001 #endif |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1002 |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1003 return DRV_OK; |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1004 } |
cd37d228dae0
src/gpf2/{misc,tst}: import from TCS211 semi-src
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1005 #endif |