|
1 /* |
|
2 * report.h |
|
3 * |
|
4 * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved. |
|
5 * All rights reserved. |
|
6 * |
|
7 * This program and the accompanying materials are made available under the |
|
8 * terms of the Eclipse Public License v1.0 or BSD License which accompanies |
|
9 * this distribution. The Eclipse Public License is available at |
|
10 * http://www.eclipse.org/legal/epl-v10.html and the BSD License is as below. |
|
11 * |
|
12 * Redistribution and use in source and binary forms, with or without |
|
13 * modification, are permitted provided that the following conditions |
|
14 * are met: |
|
15 * |
|
16 * * Redistributions of source code must retain the above copyright |
|
17 * notice, this list of conditions and the following disclaimer. |
|
18 * * Redistributions in binary form must reproduce the above copyright |
|
19 * notice, this list of conditions and the following disclaimer in |
|
20 * the documentation and/or other materials provided with the |
|
21 * distribution. |
|
22 * * Neither the name Texas Instruments nor the names of its |
|
23 * contributors may be used to endorse or promote products derived |
|
24 * from this software without specific prior written permission. |
|
25 * |
|
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|
27 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|
28 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
|
29 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
|
30 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
31 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
32 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|
33 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|
34 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|
35 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|
36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
37 */ |
|
38 |
|
39 |
|
40 /***************************************************************************/ |
|
41 /* */ |
|
42 /* MODULE: report.h */ |
|
43 /* PURPOSE: Report module internal header API */ |
|
44 /* */ |
|
45 /***************************************************************************/ |
|
46 #ifndef __REPORT_H__ |
|
47 #define __REPORT_H__ |
|
48 |
|
49 /** \file report.h |
|
50 * \brief Report module API \n |
|
51 * APIs which are used for reporting messages to the User while running. \n\n |
|
52 * |
|
53 * The report mechanism: Messages are reported per file and severity Level \n |
|
54 * Therefore, each file has a report flag which indicate if reporting for that file is enabled, \n |
|
55 * and each severity has a severity flag which indicate if reporting for that severity is enabled. \n |
|
56 * Only if both flags are enabled, the message is printed. \n |
|
57 * The report flags of all file are indicated in a bit map Table which is contained in the report module handle \n |
|
58 * The report flags of all severities are indicated in a bit map Table which is contained in the report module handle \n |
|
59 */ |
|
60 |
|
61 #include "osApi.h" |
|
62 #include "commonTypes.h" |
|
63 |
|
64 #define MAX_STRING_LEN 32 |
|
65 |
|
66 |
|
67 /*******************************/ |
|
68 /* Report Files IDs */ |
|
69 /*******************************/ |
|
70 |
|
71 typedef enum |
|
72 { |
|
73 FILE_ID_0 , /* timer */ |
|
74 FILE_ID_1 , /* measurementMgr */ |
|
75 FILE_ID_2 , /* measurementMgrSM */ |
|
76 FILE_ID_3 , /* regulatoryDomain */ |
|
77 FILE_ID_4 , /* requestHandler */ |
|
78 FILE_ID_5 , /* SoftGemini */ |
|
79 FILE_ID_6 , /* spectrumMngmntMgr */ |
|
80 FILE_ID_7 , /* SwitchChannel */ |
|
81 FILE_ID_8 , /* roamingMngr */ |
|
82 FILE_ID_9 , /* scanMngr */ |
|
83 FILE_ID_10 , /* admCtrlXCC */ |
|
84 FILE_ID_11 , /* XCCMngr */ |
|
85 FILE_ID_12 , /* XCCRMMngr */ |
|
86 FILE_ID_13 , /* XCCTSMngr */ |
|
87 FILE_ID_14 , /* rogueAp */ |
|
88 FILE_ID_15 , /* TransmitPowerXCC */ |
|
89 FILE_ID_16 , /* admCtrl */ |
|
90 FILE_ID_17 , /* admCtrlNone */ |
|
91 FILE_ID_18 , /* admCtrlWep */ |
|
92 FILE_ID_19 , /* admCtrlWpa */ |
|
93 FILE_ID_20 , /* admCtrlWpa2 */ |
|
94 FILE_ID_21 , /* apConn */ |
|
95 FILE_ID_22 , /* broadcastKey802_1x */ |
|
96 FILE_ID_23 , /* broadcastKeyNone */ |
|
97 FILE_ID_24 , /* broadcastKeySM */ |
|
98 FILE_ID_25 , /* conn */ |
|
99 FILE_ID_26 , /* connIbss */ |
|
100 FILE_ID_27 , /* connInfra */ |
|
101 FILE_ID_28 , /* keyDerive */ |
|
102 FILE_ID_29 , /* keyDeriveAes */ |
|
103 FILE_ID_30 , /* keyDeriveCkip */ |
|
104 FILE_ID_31 , /* keyDeriveTkip */ |
|
105 FILE_ID_32 , /* keyDeriveWep */ |
|
106 FILE_ID_33 , /* keyParser */ |
|
107 FILE_ID_34 , /* keyParserExternal */ |
|
108 FILE_ID_35 , /* keyParserWep */ |
|
109 FILE_ID_36 , /* mainKeysSm */ |
|
110 FILE_ID_37 , /* mainSecKeysOnly */ |
|
111 FILE_ID_38 , /* mainSecNull */ |
|
112 FILE_ID_39 , /* mainSecSm */ |
|
113 FILE_ID_40 , /* rsn */ |
|
114 FILE_ID_41 , /* sme */ |
|
115 FILE_ID_42 , /* smeSelect */ |
|
116 FILE_ID_43 , /* smeSm */ |
|
117 FILE_ID_44 , /* unicastKey802_1x */ |
|
118 FILE_ID_45 , /* unicastKeyNone */ |
|
119 FILE_ID_46 , /* unicastKeySM */ |
|
120 FILE_ID_47 , /* CmdDispatcher */ |
|
121 FILE_ID_48 , /* CmdHndlr */ |
|
122 FILE_ID_49 , /* DrvMain */ |
|
123 FILE_ID_50 , /* EvHandler */ |
|
124 FILE_ID_51 , /* Ctrl */ |
|
125 FILE_ID_52 , /* GeneralUtil */ |
|
126 FILE_ID_53 , /* RateAdaptation */ |
|
127 FILE_ID_54 , /* rx */ |
|
128 FILE_ID_55 , /* TrafficMonitor */ |
|
129 FILE_ID_56 , /* txCtrl */ |
|
130 FILE_ID_57 , /* txCtrlParams */ |
|
131 FILE_ID_58 , /* txCtrlServ */ |
|
132 FILE_ID_59 , /* TxDataClsfr */ |
|
133 FILE_ID_60 , /* txDataQueue */ |
|
134 FILE_ID_61 , /* txMgmtQueue */ |
|
135 FILE_ID_62 , /* txPort */ |
|
136 FILE_ID_63 , /* assocSM */ |
|
137 FILE_ID_64 , /* authSm */ |
|
138 FILE_ID_65 , /* currBss */ |
|
139 FILE_ID_66 , /* healthMonitor */ |
|
140 FILE_ID_67 , /* mlmeBuilder */ |
|
141 FILE_ID_68 , /* mlmeParser */ |
|
142 FILE_ID_69 , /* mlmeSm */ |
|
143 FILE_ID_70 , /* openAuthSm */ |
|
144 FILE_ID_71 , /* PowerMgr */ |
|
145 FILE_ID_72 , /* PowerMgrDbgPrint */ |
|
146 FILE_ID_73 , /* PowerMgrKeepAlive */ |
|
147 FILE_ID_74 , /* qosMngr */ |
|
148 FILE_ID_75 , /* roamingInt */ |
|
149 FILE_ID_76 , /* ScanCncn */ |
|
150 FILE_ID_77 , /* ScanCncnApp */ |
|
151 FILE_ID_78 , /* ScanCncnOsSm */ |
|
152 FILE_ID_79 , /* ScanCncnSm */ |
|
153 FILE_ID_80 , /* ScanCncnSmSpecific */ |
|
154 FILE_ID_81 , /* scanResultTable */ |
|
155 FILE_ID_82 , /* scr */ |
|
156 FILE_ID_83 , /* sharedKeyAuthSm */ |
|
157 FILE_ID_84 , /* siteHash */ |
|
158 FILE_ID_85 , /* siteMgr */ |
|
159 FILE_ID_86 , /* StaCap */ |
|
160 FILE_ID_87 , /* systemConfig */ |
|
161 FILE_ID_88 , /* templates */ |
|
162 FILE_ID_89 , /* trafficAdmControl */ |
|
163 FILE_ID_90 , /* CmdBld */ |
|
164 FILE_ID_91 , /* CmdBldCfg */ |
|
165 FILE_ID_92 , /* CmdBldCfgIE */ |
|
166 FILE_ID_93 , /* CmdBldCmd */ |
|
167 FILE_ID_94 , /* CmdBldCmdIE */ |
|
168 FILE_ID_95 , /* CmdBldItr */ |
|
169 FILE_ID_96 , /* CmdBldItrIE */ |
|
170 FILE_ID_97 , /* CmdQueue */ |
|
171 FILE_ID_98 , /* RxQueue */ |
|
172 FILE_ID_99 , /* txCtrlBlk */ |
|
173 FILE_ID_100 , /* txHwQueue */ |
|
174 FILE_ID_101 , /* CmdMBox */ |
|
175 FILE_ID_102 , /* eventMbox */ |
|
176 FILE_ID_103 , /* fwDebug */ |
|
177 FILE_ID_104 , /* FwEvent */ |
|
178 FILE_ID_105 , /* HwInit */ |
|
179 FILE_ID_106 , /* RxXfer */ |
|
180 FILE_ID_107 , /* txResult */ |
|
181 FILE_ID_108 , /* txXfer */ |
|
182 FILE_ID_109 , /* MacServices */ |
|
183 FILE_ID_110 , /* MeasurementSrv */ |
|
184 FILE_ID_111 , /* measurementSrvDbgPrint */ |
|
185 FILE_ID_112 , /* MeasurementSrvSM */ |
|
186 FILE_ID_113 , /* PowerSrv */ |
|
187 FILE_ID_114 , /* PowerSrvSM */ |
|
188 FILE_ID_115 , /* ScanSrv */ |
|
189 FILE_ID_116 , /* ScanSrvSM */ |
|
190 FILE_ID_117 , /* TWDriver */ |
|
191 FILE_ID_118 , /* TWDriverCtrl */ |
|
192 FILE_ID_119 , /* TWDriverRadio */ |
|
193 FILE_ID_120 , /* TWDriverTx */ |
|
194 FILE_ID_121 , /* TwIf */ |
|
195 FILE_ID_122 , /* SdioBusDrv */ |
|
196 FILE_ID_123 , /* TxnQueue */ |
|
197 FILE_ID_124 , /* WspiBusDrv */ |
|
198 FILE_ID_125 , /* context */ |
|
199 FILE_ID_126 , /* freq */ |
|
200 FILE_ID_127 , /* fsm */ |
|
201 FILE_ID_128 , /* GenSM */ |
|
202 FILE_ID_129 , /* mem */ |
|
203 FILE_ID_130 , /* queue */ |
|
204 FILE_ID_131 , /* rate */ |
|
205 FILE_ID_132 , /* report */ |
|
206 FILE_ID_133 , /* stack */ |
|
207 FILE_ID_134 , |
|
208 FILE_ID_135 , |
|
209 FILE_ID_136 , |
|
210 FILE_ID_137 , |
|
211 FILE_ID_138 , |
|
212 FILE_ID_139 , |
|
213 FILE_ID_140 , |
|
214 FILE_ID_141 , |
|
215 FILE_ID_142 , |
|
216 FILE_ID_143 , |
|
217 FILE_ID_144 , |
|
218 FILE_ID_145 , |
|
219 FILE_ID_146 , |
|
220 FILE_ID_147 , |
|
221 FILE_ID_148 , |
|
222 |
|
223 REPORT_FILES_NUM /* Number of files with trace reports */ |
|
224 |
|
225 } EReportFiles; |
|
226 |
|
227 |
|
228 /************************************/ |
|
229 /* Report Severity values */ |
|
230 /************************************/ |
|
231 |
|
232 /** \enum EReportSeverity |
|
233 * \brief Report Severity Types |
|
234 * |
|
235 * \par Description |
|
236 * All available severity Levels of the events which are reported to user.\n |
|
237 * |
|
238 * \sa |
|
239 */ |
|
240 typedef enum |
|
241 { |
|
242 REPORT_SEVERITY_INIT = 1, /**< Init Level (event happened during initialization) */ |
|
243 REPORT_SEVERITY_INFORMATION = 2, /**< Information Level */ |
|
244 REPORT_SEVERITY_WARNING = 3, /**< Warning Level */ |
|
245 REPORT_SEVERITY_ERROR = 4, /**< Error Level (error accored) */ |
|
246 REPORT_SEVERITY_FATAL_ERROR = 5, /**< Fatal-Error Level (fatal-error accored) */ |
|
247 REPORT_SEVERITY_SM = 6, /**< State-Machine Level (event happened in State-Machine) */ |
|
248 REPORT_SEVERITY_CONSOLE = 7, /**< Consol Level (event happened in Consol) */ |
|
249 REPORT_SEVERITY_MAX = REPORT_SEVERITY_CONSOLE + 1 /**< Maximum number of report severity levels */ |
|
250 |
|
251 } EReportSeverity; |
|
252 |
|
253 /** \struct TReport |
|
254 * \brief Report Module Object |
|
255 * |
|
256 * \par Description |
|
257 * All the Databases and other parameters which are needed for reporting messages to user |
|
258 * |
|
259 * \sa |
|
260 */ |
|
261 typedef struct |
|
262 { |
|
263 TI_HANDLE hOs; /**< Handle to Operating System Object */ |
|
264 TI_UINT8 aSeverityTable[REPORT_SEVERITY_MAX]; /**< Severities Table: Table which holds for each severity level a flag which indicates whether the severity is enabled for reporting */ |
|
265 char aSeverityDesc[REPORT_SEVERITY_MAX][MAX_STRING_LEN]; /**< Severities Descriptors Table: Table which holds for each severity a string of its name, which is used in severity's reported messages */ |
|
266 TI_UINT8 aFileEnable[REPORT_FILES_NUM]; /**< Files table indicating per file if it is enabled for reporting */ |
|
267 |
|
268 #ifdef PRINTF_ROLLBACK |
|
269 char aFileName[REPORT_FILES_NUM][MAX_STRING_LEN]; /**< Files names table inserted in the file's reported messages */ |
|
270 #endif |
|
271 |
|
272 } TReport; |
|
273 |
|
274 /** \struct TReportParamInfo |
|
275 * \brief Report Parameter Information |
|
276 * |
|
277 * \par Description |
|
278 * Struct which defines all the Databases and other parameters which are needed |
|
279 * for reporting messages to user. |
|
280 * The actual Content of the Report Parameter Could be one of the followed (held in union): |
|
281 * Severety Table | Module Table | Enable/Disable indication of debug module usage |
|
282 * |
|
283 * \sa EExternalParam, ETwdParam |
|
284 */ |
|
285 typedef struct |
|
286 { |
|
287 TI_UINT32 paramType; /**< The reported parameter type - one of External Parameters (which includes Set,Get, Module, internal number etc.) |
|
288 * of Report Module. Used by user for Setting or Getting Report Module Paramters, for exaple Set/Get severety table |
|
289 * to/from Report Module |
|
290 */ |
|
291 TI_UINT32 paramLength; /**< Length of reported parameter */ |
|
292 |
|
293 union |
|
294 { |
|
295 TI_UINT8 aSeverityTable[REPORT_SEVERITY_MAX]; /**< Table which holds severity flag for every available LOG severity level. |
|
296 * This flag indicates for each severity - whether it is enabled for Logging or not. |
|
297 * User can Set/Get this Tabel |
|
298 */ |
|
299 TI_UINT8 aFileEnable[REPORT_FILES_NUM]; /**< Table which holds file flag for every available LOG file. |
|
300 * This flag indicates for each file - whether it is enabled for Logging or not. |
|
301 * User can Set/Get this Tabel |
|
302 */ |
|
303 TI_UINT32 uReportPPMode; /**< Used by user for Indicating if Debug Module should be enabled/disabled */ |
|
304 |
|
305 } content; |
|
306 |
|
307 } TReportParamInfo; |
|
308 |
|
309 /** \struct TReportInitParams |
|
310 * \brief Report Init Parameters |
|
311 * |
|
312 * \par Description |
|
313 * Struct which defines all the Databases needed for init and set the defualts of the Report Module. |
|
314 * |
|
315 */ |
|
316 typedef struct |
|
317 { |
|
318 /* Note: The arrays sizes are aligned to 4 byte to avoid padding added by the compiler! */ |
|
319 TI_UINT8 aSeverityTable[(REPORT_SEVERITY_MAX + 3) & ~3]; /**< Table in the size of all available LOG severity levels which indicates for each severity - whether it is enabled for Logging or not. */ |
|
320 TI_UINT8 aFileEnable [(REPORT_FILES_NUM + 3) & ~3]; /**< Table in the size of all available LOG files which indicates for each file - whether it is enabled for Logging or not */ |
|
321 |
|
322 } TReportInitParams; |
|
323 |
|
324 |
|
325 |
|
326 /****************************/ |
|
327 /* report module Macros */ |
|
328 /****************************/ |
|
329 |
|
330 /* The report mechanism is like that: |
|
331 Each file has a report flag. Each severity has a severity flag. |
|
332 Only if bits are enabled, the message is printed */ |
|
333 /* The modules which have their report flag enable are indicated by a bit map in the reportModule |
|
334 variable contained in the report handle*/ |
|
335 /* The severities which have are enabled are indicated by a bit map in the reportSeverity |
|
336 variable contained in the report handle*/ |
|
337 /* general trace messages */ |
|
338 #ifndef PRINTF_ROLLBACK |
|
339 |
|
340 #define TRACE0(hReport, level, str) \ |
|
341 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
342 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 0); } } while(0) |
|
343 |
|
344 #define TRACE1(hReport, level, str, p1) \ |
|
345 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
346 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 1, (TI_UINT32)p1); } } while(0) |
|
347 |
|
348 #define TRACE2(hReport, level, str, p1, p2) \ |
|
349 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
350 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 2, (TI_UINT32)p1, (TI_UINT32)p2); } } while(0) |
|
351 |
|
352 #define TRACE3(hReport, level, str, p1, p2, p3) \ |
|
353 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
354 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 3, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3); } } while(0) |
|
355 |
|
356 #define TRACE4(hReport, level, str, p1, p2, p3, p4) \ |
|
357 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
358 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 4, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4); } } while(0) |
|
359 |
|
360 #define TRACE5(hReport, level, str, p1, p2, p3, p4, p5) \ |
|
361 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
362 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 5, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5); } } while(0) |
|
363 |
|
364 #define TRACE6(hReport, level, str, p1, p2, p3, p4, p5, p6) \ |
|
365 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
366 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 6, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6); } } while(0) |
|
367 |
|
368 #define TRACE7(hReport, level, str, p1, p2, p3, p4, p5, p6, p7) \ |
|
369 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
370 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 7, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7); } } while(0) |
|
371 |
|
372 #define TRACE8(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8) \ |
|
373 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
374 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 8, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8); } } while(0) |
|
375 |
|
376 #define TRACE9(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9) \ |
|
377 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
378 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 9, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9); } } while(0) |
|
379 |
|
380 #define TRACE10(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) \ |
|
381 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
382 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 10, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10); } } while(0) |
|
383 |
|
384 #define TRACE11(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) \ |
|
385 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
386 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 11, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11); } } while(0) |
|
387 |
|
388 #define TRACE12(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) \ |
|
389 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
390 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 12, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12); } } while(0) |
|
391 |
|
392 #define TRACE13(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) \ |
|
393 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
394 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 13, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13); } } while(0) |
|
395 |
|
396 #define TRACE14(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) \ |
|
397 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
398 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 14, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14); } } while(0) |
|
399 |
|
400 #define TRACE15(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) \ |
|
401 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
402 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 15, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15); } } while(0) |
|
403 |
|
404 #define TRACE16(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16) \ |
|
405 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
406 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 16, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15, (TI_UINT32)p16); } } while(0) |
|
407 |
|
408 #define TRACE17(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17) \ |
|
409 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
410 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 17, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15, (TI_UINT32)p16, (TI_UINT32)p17); } } while(0) |
|
411 |
|
412 #define TRACE18(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18) \ |
|
413 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
414 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 18, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15, (TI_UINT32)p16, (TI_UINT32)p17, (TI_UINT32)p18); } } while(0) |
|
415 |
|
416 #define TRACE19(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19) \ |
|
417 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
418 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 19, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15, (TI_UINT32)p16, (TI_UINT32)p17, (TI_UINT32)p18, (TI_UINT32)p19); } } while(0) |
|
419 |
|
420 #define TRACE20(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20) \ |
|
421 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
422 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 20, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15, (TI_UINT32)p16, (TI_UINT32)p17, (TI_UINT32)p18, (TI_UINT32)p19, (TI_UINT32)p20); } } while(0) |
|
423 |
|
424 #define TRACE21(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21) \ |
|
425 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
426 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 21, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15, (TI_UINT32)p16, (TI_UINT32)p17, (TI_UINT32)p18, (TI_UINT32)p19, (TI_UINT32)p20, (TI_UINT32)p21); } } while(0) |
|
427 |
|
428 #define TRACE22(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22) \ |
|
429 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
430 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 22, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15, (TI_UINT32)p16, (TI_UINT32)p17, (TI_UINT32)p18, (TI_UINT32)p19, (TI_UINT32)p20, (TI_UINT32)p21, (TI_UINT32)p22); } } while(0) |
|
431 |
|
432 #define TRACE25(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25) \ |
|
433 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
434 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 22, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15, (TI_UINT32)p16, (TI_UINT32)p17, (TI_UINT32)p18, (TI_UINT32)p19, (TI_UINT32)p20, (TI_UINT32)p21, (TI_UINT32)p22, (TI_UINT32)p23, (TI_UINT32)p24, (TI_UINT32)p25); } } while(0) |
|
435 |
|
436 #define TRACE31(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31) \ |
|
437 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
438 { os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 22, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4, (TI_UINT32)p5, (TI_UINT32)p6, (TI_UINT32)p7, (TI_UINT32)p8, (TI_UINT32)p9, (TI_UINT32)p10, (TI_UINT32)p11, (TI_UINT32)p12, (TI_UINT32)p13, (TI_UINT32)p14, (TI_UINT32)p15, (TI_UINT32)p16, (TI_UINT32)p17, (TI_UINT32)p18, (TI_UINT32)p19, (TI_UINT32)p20, (TI_UINT32)p21, (TI_UINT32)p22, (TI_UINT32)p23, (TI_UINT32)p24, (TI_UINT32)p25, (TI_UINT32)p26, (TI_UINT32)p27, (TI_UINT32)p28, (TI_UINT32)p29, (TI_UINT32)p30, (TI_UINT32)p31); } } while(0) |
|
439 |
|
440 |
|
441 #else /* PRINTF_ROLLBACK */ |
|
442 |
|
443 #define TRACE0(hReport, level, str) \ |
|
444 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
445 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str); } } while(0) |
|
446 |
|
447 #define TRACE1(hReport, level, str, p1) \ |
|
448 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
449 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1); } } while(0) |
|
450 |
|
451 #define TRACE2(hReport, level, str, p1, p2) \ |
|
452 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
453 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2); } } while(0) |
|
454 |
|
455 #define TRACE3(hReport, level, str, p1, p2, p3) \ |
|
456 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
457 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3); } } while(0) |
|
458 |
|
459 #define TRACE4(hReport, level, str, p1, p2, p3, p4) \ |
|
460 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
461 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4); } } while(0) |
|
462 |
|
463 #define TRACE5(hReport, level, str, p1, p2, p3, p4, p5) \ |
|
464 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
465 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5); } } while(0) |
|
466 |
|
467 #define TRACE6(hReport, level, str, p1, p2, p3, p4, p5, p6) \ |
|
468 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
469 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6); } } while(0) |
|
470 |
|
471 #define TRACE7(hReport, level, str, p1, p2, p3, p4, p5, p6, p7) \ |
|
472 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
473 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7); } } while(0) |
|
474 |
|
475 #define TRACE8(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8) \ |
|
476 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
477 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8); } } while(0) |
|
478 |
|
479 #define TRACE9(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9) \ |
|
480 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
481 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9); } } while(0) |
|
482 |
|
483 #define TRACE10(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) \ |
|
484 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
485 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } } while(0) |
|
486 |
|
487 #define TRACE11(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) \ |
|
488 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
489 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } } while(0) |
|
490 |
|
491 #define TRACE12(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) \ |
|
492 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
493 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } } while(0) |
|
494 |
|
495 #define TRACE13(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) \ |
|
496 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
497 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } } while(0) |
|
498 |
|
499 #define TRACE14(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) \ |
|
500 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
501 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); } } while(0) |
|
502 |
|
503 #define TRACE15(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) \ |
|
504 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
505 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); } } while(0) |
|
506 |
|
507 #define TRACE16(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16) \ |
|
508 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
509 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } } while(0) |
|
510 |
|
511 #define TRACE17(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17) \ |
|
512 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
513 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17); } } while(0) |
|
514 |
|
515 #define TRACE18(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18) \ |
|
516 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
517 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18); } } while(0) |
|
518 |
|
519 #define TRACE19(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19) \ |
|
520 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
521 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19); } } while(0) |
|
522 |
|
523 #define TRACE20(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20) \ |
|
524 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
525 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20); } } while(0) |
|
526 |
|
527 #define TRACE21(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21) \ |
|
528 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
529 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21); } } while(0) |
|
530 |
|
531 #define TRACE22(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22) \ |
|
532 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
533 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22); } } while(0) |
|
534 |
|
535 #define TRACE25(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25) \ |
|
536 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
537 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25); } } while(0) |
|
538 |
|
539 #define TRACE31(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31) \ |
|
540 do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
541 { os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p27, p27, p28, p29, p30, p31); } } while(0) |
|
542 |
|
543 #endif /* #ifdef PRINTF_ROLLBACK */ |
|
544 |
|
545 |
|
546 /****************************/ |
|
547 /* report module Macros */ |
|
548 /****************************/ |
|
549 |
|
550 /* The report mechanism is like that: |
|
551 Each file has a report flag. Each severity has a severity flag. |
|
552 Only if bits are enabled, the message is printed */ |
|
553 /* The modules which have their report flag enable are indicated by a bit map in the reportModule |
|
554 variable contained in the report handle*/ |
|
555 /* The severities which have are enabled are indicated by a bit map in the reportSeverity |
|
556 variable contained in the report handle*/ |
|
557 |
|
558 #ifdef REPORT_LOG |
|
559 |
|
560 /** \def WLAN_OS_REPORT |
|
561 * \brief Macro which writes a message to user via specific Operating System printf. |
|
562 * E.g. print is done using the relevant used OS printf method. |
|
563 */ |
|
564 #define WLAN_OS_REPORT(msg) \ |
|
565 do { os_printf msg;} while(0) |
|
566 |
|
567 |
|
568 #ifdef INIT_MESSAGES |
|
569 /** \def WLAN_INIT_REPORT |
|
570 * \brief Macro which writes a message to user via specific Operating System printf. |
|
571 * E.g. print is done using the relevant used OS printf method. |
|
572 */ |
|
573 #define WLAN_INIT_REPORT(msg) \ |
|
574 do { os_printf msg;} while(0) |
|
575 #else |
|
576 /** \def WLAN_INIT_REPORT |
|
577 * \brief Macro which writes a message to user via specific Operating System printf. |
|
578 * E.g. print is done using the relevant used OS printf method. |
|
579 */ |
|
580 #define WLAN_INIT_REPORT(msg) |
|
581 #endif |
|
582 |
|
583 #define TRACE_INFO_HEX(hReport, data, datalen) \ |
|
584 do { if (hReport && (((TReport *)hReport)->aSeverityTable[REPORT_SEVERITY_INFORMATION]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \ |
|
585 { report_PrintDump (data, datalen); } } while(0) |
|
586 |
|
587 #else /* REPORT_LOG */ |
|
588 |
|
589 /* NOTE: Keep a dummy report function call to treat compilation warnings */ |
|
590 |
|
591 /** \def WLAN_OS_REPORT |
|
592 * \brief Dummy macro: Nothing is done |
|
593 */ |
|
594 #define WLAN_OS_REPORT(msg) \ |
|
595 do { } while (0) |
|
596 |
|
597 /** \def WLAN_INIT_REPORT |
|
598 * \brief Dummy macro: Nothing is done |
|
599 */ |
|
600 #define WLAN_INIT_REPORT(msg) \ |
|
601 do { } while (0) |
|
602 |
|
603 |
|
604 #define TRACE_INFO_HEX(hReport, data, datalen) \ |
|
605 do { } while (0) |
|
606 |
|
607 #endif /* REPORT_LOG */ |
|
608 |
|
609 |
|
610 /****************************/ |
|
611 /* report module prototypes */ |
|
612 /****************************/ |
|
613 |
|
614 /** \brief Create Report Module Object |
|
615 * \param hOs - OS module object handle |
|
616 * \return Handle to the report module on success, NULL otherwise |
|
617 * |
|
618 * \par Description |
|
619 * Report module creation function, called by the config mgr in creation phase \n |
|
620 * performs the following: \n |
|
621 * - Allocate the report handle |
|
622 */ |
|
623 TI_HANDLE report_Create (TI_HANDLE hOs); |
|
624 /** \brief Set Report Module Defaults |
|
625 * \param hReport - Report module object handle |
|
626 * \param pInitParams - Pointer to Input Init Parameters |
|
627 * \return TI_OK on success or TI_NOK on failure |
|
628 * |
|
629 * \par Description |
|
630 * Report module configuration function, called by the config mgr in configuration phase \n |
|
631 * performs the following: \n |
|
632 * - Reset & init local variables |
|
633 * - Resets all report modules bits |
|
634 * - Resets all severities bits |
|
635 * - Init the description strings * |
|
636 */ |
|
637 TI_STATUS report_SetDefaults (TI_HANDLE hReport, TReportInitParams *pInitParams); |
|
638 /** \brief Unload Report Module |
|
639 * \param hReport - Report module object handle |
|
640 * \return TI_OK on success or TI_NOK on failure |
|
641 * |
|
642 * \par Description |
|
643 * Report Module unload function, called by the config mgr in the unload phase \n |
|
644 * performs the following: \n |
|
645 * - Free all memory allocated by the module |
|
646 */ |
|
647 TI_STATUS report_Unload (TI_HANDLE hReport); |
|
648 /** \brief Set Report Module |
|
649 * \param hReport - Report module object handle |
|
650 * \return TI_OK on success or TI_NOK on failure |
|
651 * |
|
652 * \par Description |
|
653 * Enables the relevant module for reporting - according to the received module index |
|
654 */ |
|
655 TI_STATUS report_SetReportModule (TI_HANDLE hReport, TI_UINT8 module_index); |
|
656 /** \brief Clear Report Module |
|
657 * \param hReport - Report module object handle |
|
658 * \param module_index - Index of file to be disable for reporting |
|
659 * \return TI_OK on success or TI_NOK on failure |
|
660 * |
|
661 * \par Description |
|
662 * Disables the relevant module for reporting - according to the received module index |
|
663 */ |
|
664 TI_STATUS report_ClearReportModule (TI_HANDLE hReport, TI_UINT8 module_index); |
|
665 /** \brief Get Report files Table |
|
666 * \param hReport - Report module object handle |
|
667 * \param pFiles - Pointer to output files Table |
|
668 * \return TI_OK on success or TI_NOK on failure |
|
669 * |
|
670 * \par Description |
|
671 * Returns the Modules Table (the table which holds Modules reporting indication) held in Report Module Object |
|
672 */ |
|
673 TI_STATUS report_GetReportFilesTable (TI_HANDLE hReport, TI_UINT8 *pFiles); |
|
674 /** \brief Set Report Files Table |
|
675 * \param hReport - Report module object handle |
|
676 * \param pFiles - Pointer to input files Table |
|
677 * \return TI_OK on success or TI_NOK on failure |
|
678 * |
|
679 * \par Description |
|
680 * Updates the Modules Table: copies the input Modules Table (the table which holds Modules reporting indication) |
|
681 * to the Modules Table which is held in Report Module Object |
|
682 */ |
|
683 TI_STATUS report_SetReportFilesTable (TI_HANDLE hReport, TI_UINT8 *pFiles); |
|
684 /** \brief Get Report Severity Table |
|
685 * \param hReport - Report module object handle |
|
686 * \param pSeverities - Pointer to input Severity Table |
|
687 * \return TI_OK on success or TI_NOK on failure |
|
688 * |
|
689 * \par Description |
|
690 * Returns the Severities Table (the table which holds Severities reporting indication) held in Report Module Object |
|
691 */ |
|
692 TI_STATUS report_GetReportSeverityTable (TI_HANDLE hReport, TI_UINT8 *pSeverities); |
|
693 /** \brief Set Report Severity Table |
|
694 * \param hReport - Report module object handle |
|
695 * \param pSeverities - Pointer to input Severity Table |
|
696 * \return TI_OK on success or TI_NOK on failure |
|
697 * |
|
698 * \par Description |
|
699 * Updates the Severities Table: copies the input Severities Table (the table which holds Severities reporting indication) |
|
700 * to the Severities Table which is held in Report Module Object |
|
701 */ |
|
702 TI_STATUS report_SetReportSeverityTable (TI_HANDLE hReport, TI_UINT8 *pSeverities); |
|
703 /** \brief Set Report Parameters |
|
704 * \param hReport - Report module object handle |
|
705 * \param pParam - Pointer to input Report Parameters Information |
|
706 * \return TI_OK on success or TI_NOK on failure |
|
707 * |
|
708 * \par Description |
|
709 * Report set param function sets parameter/s to Report Module Object. |
|
710 * Called by the following: |
|
711 * - configuration Manager in order to set a parameter/s from the OS abstraction layer |
|
712 * - Form inside the driver |
|
713 */ |
|
714 TI_STATUS report_SetParam (TI_HANDLE hReport, TReportParamInfo *pParam); |
|
715 /** \brief Get Report Parameters |
|
716 * \param hReport - Report module object handle |
|
717 * \param pParam - Pointer to output Report Parameters Information |
|
718 * \return TI_OK on success or TI_NOK on failure |
|
719 * |
|
720 * \par Description |
|
721 * Report get param function gets parameter/s from Report Module Object. |
|
722 * Called by the following: |
|
723 * - configuration Manager in order to get a parameter/s from the OS abstraction layer |
|
724 * - from inside the driver |
|
725 */ |
|
726 TI_STATUS report_GetParam (TI_HANDLE hReport, TReportParamInfo *pParam); |
|
727 /** \brief Report Dump |
|
728 * \param pBuffer - Pointer to input HEX buffer |
|
729 * \param pString - Pointer to output string |
|
730 * \param size - size of output string |
|
731 * \return TI_OK on success or TI_NOK on failure |
|
732 * |
|
733 * \par Description |
|
734 * Converts hex buffer to string buffer |
|
735 * NOTE: 1. The caller has to make sure that the string size is at lease: ((Size * 2) + 1) |
|
736 * 2. A string terminator is inserted into lase char of the string |
|
737 */ |
|
738 TI_STATUS report_Dump (TI_UINT8 *pBuffer, char *pString, TI_UINT32 size); |
|
739 /** \brief Report Print Dump |
|
740 * \param pData - Pointer to input data buffer |
|
741 * \param datalen - size of input data buffer |
|
742 * \return TI_OK on success or TI_NOK on failure |
|
743 * |
|
744 * \par Description |
|
745 * Performs HEX dump of input Data buffer. Used for debug only! |
|
746 */ |
|
747 TI_STATUS report_PrintDump (TI_UINT8 *pData, TI_UINT32 datalen); |
|
748 |
|
749 /** \brief Sets bRedirectOutputToLogger |
|
750 * \param value - True if to direct output to remote PC |
|
751 * \param hEvHandler - Event handler |
|
752 */ |
|
753 void os_setDebugOutputToLogger(TI_BOOL value); |
|
754 |
|
755 |
|
756 #endif /* __REPORT_H__ */ |
|
757 |
|
758 |