FreeCalypso > hg > freecalypso-sw
comparison gsm-fw/gpf/misc/trace.c @ 320:397b22c607c8
gsm-fw/gpf/misc/*.c: import from Leonardo semi-src
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sat, 12 Apr 2014 07:59:49 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
319:2c760f6b1fe0 | 320:397b22c607c8 |
---|---|
1 /* | |
2 +------------------------------------------------------------------------------ | |
3 | File: trace.c | |
4 +------------------------------------------------------------------------------ | |
5 | Copyright 2002 Texas Instruments Berlin, AG | |
6 | All rights reserved. | |
7 | | |
8 | This file is confidential and a trade secret of Texas | |
9 | Instruments Berlin, AG | |
10 | The receipt of or possession of this file does not convey | |
11 | any rights to reproduce or disclose its contents or to | |
12 | manufacture, use, or sell anything it may describe, in | |
13 | whole, or in part, without the specific written consent of | |
14 | Texas Instruments Berlin, AG. | |
15 +----------------------------------------------------------------------------- | |
16 | Purpose : This Modul provides data and functions for fast in memory tracing | |
17 +----------------------------------------------------------------------------- | |
18 */ | |
19 | |
20 #ifndef TRACE_C | |
21 #define TRACE_C | |
22 #endif | |
23 #define FAST_TRACE | |
24 | |
25 /*==== INCLUDES ===================================================*/ | |
26 | |
27 #include <string.h> | |
28 #include "typedefs.h" | |
29 #include "header.h" | |
30 #include "custom.h" | |
31 #include "vsi.h" | |
32 #include "gsm.h" | |
33 #include "prim.h" | |
34 #include "pei.h" | |
35 #include "tok.h" | |
36 | |
37 #include "trace.h" | |
38 | |
39 #include <string.h> | |
40 #include <stdio.h> | |
41 #include "message.h" | |
42 | |
43 /*==== CONST ======================================================*/ | |
44 | |
45 #define TRC_ENTITY 0x60 | |
46 #define TRC_FILE 1 | |
47 | |
48 | |
49 #ifdef OPTION_MULTITHREAD | |
50 #define VSI_CALLER "ACI", | |
51 #define VSI_CALLER_SINGLE "ACI" | |
52 #else | |
53 #define VSI_CALLER | |
54 #define VSI_CALLER_SINGLE | |
55 #endif | |
56 | |
57 | |
58 /*==== TYPES ======================================================*/ | |
59 | |
60 /*==== VARIABLES ==================================================*/ | |
61 | |
62 | |
63 /*==== FUNCTIONS ==================================================*/ | |
64 /* | |
65 +--------------------------------------------------------------------+ | |
66 | PROJECT : GSM-F&D (8411) MODULE : TRACE | | |
67 | STATE : code ROUTINE : trc_init | | |
68 +--------------------------------------------------------------------+ | |
69 | |
70 PURPOSE : This function is called to initialize the trace function | |
71 | |
72 */ | |
73 | |
74 GLOBAL void trc_init | |
75 ( | |
76 void | |
77 ) | |
78 { | |
79 trc_p_buffer = trc_buffer; | |
80 trc_p_buffer_end = &trc_buffer[TRC_BUF_LEN-1]; | |
81 trc_wrap_around = FALSE; | |
82 trc_wrap_around_enable = TRUE; | |
83 trc_enabled = TRUE; | |
84 /*semTRC = vsi_s_open (VSI_CALLER "TRC"); */ | |
85 } | |
86 | |
87 | |
88 /* | |
89 +--------------------------------------------------------------------+ | |
90 | PROJECT : GSM-F&D (8411) MODULE : TRACE | | |
91 | STATE : code ROUTINE : trc_enable_wrap_around | | |
92 +--------------------------------------------------------------------+ | |
93 | |
94 PURPOSE : This function is called to enable wrap around | |
95 | |
96 */ | |
97 | |
98 GLOBAL void trc_enable_wrap_around | |
99 ( | |
100 void | |
101 ) | |
102 { | |
103 trc_wrap_around_enable = TRUE; | |
104 } | |
105 | |
106 | |
107 /* | |
108 +--------------------------------------------------------------------+ | |
109 | PROJECT : GSM-F&D (8411) MODULE : TRACE | | |
110 | STATE : code ROUTINE : trc_disable_wrap_around | | |
111 +--------------------------------------------------------------------+ | |
112 | |
113 PURPOSE : This function is called to disable wrap around | |
114 | |
115 */ | |
116 | |
117 GLOBAL void trc_disable_wrap_around | |
118 ( | |
119 void | |
120 ) | |
121 { | |
122 trc_wrap_around_enable = FALSE; | |
123 } | |
124 | |
125 | |
126 /* | |
127 +--------------------------------------------------------------------+ | |
128 | PROJECT : GSM-F&D (8411) MODULE : TRACE | | |
129 | STATE : code ROUTINE : trc_enable | | |
130 +--------------------------------------------------------------------+ | |
131 | |
132 PURPOSE : This function is called to enable fast trace | |
133 | |
134 */ | |
135 | |
136 GLOBAL void trc_enable | |
137 ( | |
138 void | |
139 ) | |
140 { | |
141 trc_enabled = TRUE; | |
142 } | |
143 | |
144 | |
145 /* | |
146 +--------------------------------------------------------------------+ | |
147 | PROJECT : GSM-F&D (8411) MODULE : TRACE | | |
148 | STATE : code ROUTINE : trc_disable | | |
149 +--------------------------------------------------------------------+ | |
150 | |
151 PURPOSE : This function is called to disable fast trace | |
152 | |
153 */ | |
154 | |
155 GLOBAL void trc_disable | |
156 ( | |
157 void | |
158 ) | |
159 { | |
160 trc_enabled = FALSE; | |
161 } | |
162 | |
163 | |
164 /* | |
165 +--------------------------------------------------------------------+ | |
166 | PROJECT : GSM-F&D (8411) MODULE : RA_SHM | | |
167 | STATE : code ROUTINE : trc_dump | | |
168 +--------------------------------------------------------------------+ | |
169 | |
170 PURPOSE : the content of the stored dump is dumped | |
171 into the system trace window. | |
172 | |
173 */ | |
174 | |
175 GLOBAL void trc_dump (void) | |
176 { | |
177 T_TRC_BUF_ENTRY *p_readOut; | |
178 ULONG *p; | |
179 ULONG i; | |
180 char buf [40]; | |
181 char buf1 [40]; | |
182 | |
183 #ifndef NEW_FRAME | |
184 vsi_o_trace ("", 0xff, "---FASTTRACEBUFFER---"); | |
185 #else | |
186 vsi_o_ttrace (0, 0xff, "---FASTTRACEBUFFER---"); | |
187 #endif | |
188 if (trc_wrap_around) | |
189 { | |
190 for (p_readOut= trc_p_buffer; | |
191 p_readOut < trc_p_buffer_end; | |
192 p_readOut++) | |
193 { | |
194 p = (ULONG*)p_readOut; | |
195 | |
196 buf1[0]='\0'; | |
197 | |
198 for (i = sizeof(T_TRC_BUF_ENTRY); i>=0; i-=sizeof(ULONG)) | |
199 { | |
200 sprintf(buf1, "0x%x ", *p++); | |
201 strcat (buf, buf1); | |
202 } | |
203 #ifndef NEW_FRAME | |
204 vsi_o_trace ("", 0xff, buf); | |
205 vsi_t_sleep("", 1); | |
206 #else | |
207 vsi_o_ttrace (0, 0xff, buf); | |
208 vsi_t_sleep(0, 1); | |
209 #endif | |
210 } | |
211 } | |
212 for (p_readOut= trc_buffer; | |
213 p_readOut < trc_p_buffer; | |
214 p_readOut++) | |
215 { | |
216 p = (ULONG*)p_readOut; | |
217 | |
218 buf1[0]='\0'; | |
219 | |
220 for (i = sizeof(T_TRC_BUF_ENTRY); i>=0; i-=sizeof(ULONG)) | |
221 { | |
222 sprintf(buf1, "0x%x ", *p++); | |
223 strcat (buf, buf1); | |
224 } | |
225 #ifndef NEW_FRAME | |
226 vsi_o_trace ("", 0xff, buf); | |
227 vsi_t_sleep("", 1); | |
228 #else | |
229 vsi_o_ttrace (0, 0xff, buf); | |
230 vsi_t_sleep(0, 1); | |
231 #endif | |
232 } | |
233 | |
234 #ifndef NEW_FRAME | |
235 vsi_o_trace ("", 0xff, "---END---"); | |
236 #else | |
237 vsi_o_ttrace (0, 0xff, "---END---"); | |
238 #endif | |
239 } |