1981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*
2981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * report.h
3981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
4981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
5981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * All rights reserved.
6981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
7981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Redistribution and use in source and binary forms, with or without
8981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * modification, are permitted provided that the following conditions
9981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * are met:
10981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
11981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  * Redistributions of source code must retain the above copyright
12981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    notice, this list of conditions and the following disclaimer.
13981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  * Redistributions in binary form must reproduce the above copyright
14981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    notice, this list of conditions and the following disclaimer in
15981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    the documentation and/or other materials provided with the
16981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    distribution.
17981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *  * Neither the name Texas Instruments nor the names of its
18981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    contributors may be used to endorse or promote products derived
19981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *    from this software without specific prior written permission.
20981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
21981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
33981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
34981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
35981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/***************************************************************************/
36981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*                                                                          */
37981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*    MODULE:   report.h                                                    */
38981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*    PURPOSE:  Report module internal header API                           */
39981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*                                                                          */
40981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/***************************************************************************/
41981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifndef __REPORT_H__
42981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define __REPORT_H__
43981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
44981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \file  report.h
45981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Report module API	\n
46981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * APIs which are used for reporting messages to the User while running. \n\n
47981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
48981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * The report mechanism: Messages are reported per file and severity Level	\n
49981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Therefore, each file has a report flag which indicate if reporting for that file is enabled, \n
50981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * and each severity has a severity flag which indicate if reporting for that severity is enabled.	\n
51981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Only if both flags are enabled, the message is printed. \n
52981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * The report flags of all file are indicated in a bit map Table which is contained in the report module handle	\n
53981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * The report flags of all severities  are indicated in a bit map Table which is contained in the report module handle	\n
54981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
55981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
56981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* in order to work without the driver logger use that definition here
57981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * #define PRINTF_ROLLBACK
58981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
59981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
60981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "osApi.h"
61981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#include "commonTypes.h"
62981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
63981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define MAX_STRING_LEN         32
64981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
65981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
66981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*******************************/
67981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*      Report Files IDs       */
68981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*******************************/
69981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
70981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum
71981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
72981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_0	   ,    /*   timer                    */
73981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_1	   ,    /*   measurementMgr			  */
74981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_2	   ,    /*   measurementMgrSM         */
75981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_3	   ,    /*   regulatoryDomain         */
76981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_4	   ,    /*   requestHandler           */
77981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_5	   ,    /*   SoftGemini               */
78981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_6	   ,    /*   spectrumMngmntMgr        */
79981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_7	   ,    /*   SwitchChannel            */
80981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_8	   ,    /*   roamingMngr              */
81981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_9	   ,    /*   scanMngr                 */
82981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_10	   ,    /*   admCtrlXCC               */
83981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_11	   ,    /*   XCCMngr                  */
84981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_12	   ,    /*   XCCRMMngr                */
85981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_13	   ,    /*   XCCTSMngr                */
86981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_14	   ,    /*   rogueAp                  */
87981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_15	   ,    /*   TransmitPowerXCC         */
88981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_16	   ,    /*   admCtrl                  */
89981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_17	   ,    /*   admCtrlNone              */
90981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_18	   ,    /*   admCtrlWep               */
91981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_19	   ,    /*   admCtrlWpa               */
92981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_20	   ,    /*   admCtrlWpa2              */
93981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_21	   ,    /*   apConn                   */
94981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_22	   ,    /*   broadcastKey802_1x       */
95981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_23	   ,    /*   broadcastKeyNone         */
96981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_24	   ,    /*   broadcastKeySM           */
97981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_25	   ,    /*   conn                     */
98981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_26	   ,    /*   connIbss                 */
99981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_27	   ,    /*   connInfra                */
100981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_28	   ,    /*   keyDerive                */
101981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_29	   ,    /*   keyDeriveAes             */
102981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_30	   ,    /*   keyDeriveCkip            */
103981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_31	   ,    /*   keyDeriveTkip            */
104981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_32	   ,    /*   keyDeriveWep             */
105981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_33	   ,    /*   keyParser                */
106981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_34	   ,    /*   keyParserExternal        */
107981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_35	   ,    /*   keyParserWep             */
108981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_36	   ,    /*   mainKeysSm               */
109981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_37	   ,    /*   mainSecKeysOnly          */
110981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_38	   ,    /*   mainSecNull              */
111981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_39	   ,    /*   mainSecSm                */
112981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_40	   ,    /*   rsn                      */
113981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_41	   ,    /*   sme                      */
114981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_42	   ,    /*   smeSelect                */
115981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_43	   ,    /*   smeSm                    */
116981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_44	   ,    /*   unicastKey802_1x         */
117981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_45	   ,    /*   unicastKeyNone           */
118981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_46	   ,    /*   unicastKeySM             */
119981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_47	   ,    /*   CmdDispatcher            */
120981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_48	   ,    /*   CmdHndlr                 */
121981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_49	   ,    /*   DrvMain                  */
122981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_50	   ,    /*   EvHandler                */
123981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_51	   ,    /*   Ctrl                     */
124981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_52	   ,    /*   GeneralUtil              */
125981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_53	   ,    /*   RateAdaptation           */
126981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_54	   ,    /*   rx                       */
127981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_55	   ,    /*   TrafficMonitor           */
128981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_56	   ,    /*   txCtrl                   */
129981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_57	   ,    /*   txCtrlParams             */
130981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_58	   ,    /*   txCtrlServ               */
131981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_59	   ,    /*   TxDataClsfr              */
132981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_60	   ,    /*   txDataQueue              */
133981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_61	   ,    /*   txMgmtQueue              */
134981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_62	   ,    /*   txPort                   */
135981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_63	   ,    /*   assocSM                  */
136981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_64	   ,    /*   authSm                   */
137981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_65	   ,    /*   currBss                  */
138981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_66	   ,    /*   healthMonitor            */
139981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_67	   ,    /*   mlmeBuilder              */
140981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_68	   ,    /*   mlmeParser               */
141981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_69	   ,    /*   mlmeSm                   */
142981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_70	   ,    /*   openAuthSm               */
143981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_71	   ,    /*   PowerMgr                 */
144981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_72	   ,    /*   PowerMgrDbgPrint         */
145981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_73	   ,    /*   PowerMgrKeepAlive        */
146981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_74	   ,    /*   qosMngr                  */
147981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_75	   ,    /*   roamingInt               */
148981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_76	   ,    /*   ScanCncn                 */
149981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_77	   ,    /*   ScanCncnApp              */
150981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_78	   ,    /*   ScanCncnOsSm             */
151981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_79	   ,    /*   ScanCncnSm               */
152981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_80	   ,    /*   ScanCncnSmSpecific       */
153981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_81	   ,    /*   scanResultTable          */
154981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_82	   ,    /*   scr                      */
155981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_83	   ,    /*   sharedKeyAuthSm          */
156981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_84	   ,    /*   siteHash                 */
157981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_85	   ,    /*   siteMgr                  */
158981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_86	   ,    /*   StaCap                   */
159981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_87	   ,    /*   systemConfig             */
160981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_88	   ,    /*   templates                */
161981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_89	   ,    /*   trafficAdmControl        */
162981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_90	   ,    /*   CmdBld                   */
163981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_91	   ,    /*   CmdBldCfg                */
164981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_92	   ,    /*   CmdBldCfgIE              */
165981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_93	   ,    /*   CmdBldCmd                */
166981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_94	   ,    /*   CmdBldCmdIE              */
167981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_95	   ,    /*   CmdBldItr                */
168981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_96	   ,    /*   CmdBldItrIE              */
169981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_97	   ,    /*   CmdQueue                 */
170981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_98	   ,    /*   RxQueue                  */
171981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_99	   ,    /*   txCtrlBlk                */
172981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_100	   ,    /*   txHwQueue                */
173981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_101	   ,    /*   CmdMBox                  */
174981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_102	   ,    /*   eventMbox                */
175981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_103	   ,    /*   fwDebug                  */
176981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_104	   ,    /*   FwEvent                  */
177981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_105	   ,    /*   HwInit                   */
178981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_106	   ,    /*   RxXfer                   */
179981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_107	   ,    /*   txResult                 */
180981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_108	   ,    /*   txXfer                   */
181981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_109	   ,    /*   MacServices              */
182981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_110	   ,    /*   MeasurementSrv           */
183981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_111	   ,    /*   measurementSrvDbgPrint   */
184981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_112	   ,    /*   MeasurementSrvSM         */
185981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_113	   ,    /*   PowerSrv                 */
186981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_114	   ,    /*   PowerSrvSM               */
187981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_115	   ,    /*   ScanSrv                  */
188981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_116	   ,    /*   ScanSrvSM                */
189981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_117	   ,    /*   TWDriver                 */
190981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_118	   ,    /*   TWDriverCtrl             */
191981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_119	   ,    /*   TWDriverRadio            */
192981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_120	   ,    /*   TWDriverTx               */
193981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_121	   ,    /*   TwIf                     */
194981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_122	   ,    /*   SdioBusDrv               */
195981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_123	   ,    /*   TxnQueue                 */
196981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_124	   ,    /*   WspiBusDrv               */
197981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_125	   ,    /*   context                  */
198981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_126	   ,    /*   freq                     */
199981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_127	   ,    /*   fsm                      */
200981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_128	   ,    /*   GenSM                    */
201981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_129	   ,    /*   mem                      */
202981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_130	   ,    /*   queue                    */
203981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_131	   ,    /*   rate                     */
204981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_132	   ,    /*   report                   */
205981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	FILE_ID_133	   ,    /*   stack                    */
206653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt    FILE_ID_134	   ,    /*   externalSec              */
207653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt    FILE_ID_135	   ,    /*   roamingMngr_autoSM       */
208653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt    FILE_ID_136	   ,    /*   roamingMngr_manualSM     */
209981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
210653850f71f9caaa41af19cadbab24bb5e655daf4Dmitry Shmidt	FILE_ID_137	   ,    /*   cmdinterpretoid          */
211981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	REPORT_FILES_NUM	/*   Number of files with trace reports   */
212981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
213981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} EReportFiles;
214981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
215981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
216981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************/
217981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/*      Report Severity values      */
218981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/************************************/
219981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
220981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \enum EReportSeverity
221981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Report Severity Types
222981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
223981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
224981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * All available severity Levels of the events which are reported to user.\n
225981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
226981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa
227981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
228981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef enum
229981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
230981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    REPORT_SEVERITY_INIT           =  1,	/**< Init Level (event happened during initialization)			*/
231981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    REPORT_SEVERITY_INFORMATION    =  2,	/**< Information Level											*/
232981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    REPORT_SEVERITY_WARNING        =  3,	/**< Warning Level												*/
233981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    REPORT_SEVERITY_ERROR          =  4,	/**< Error Level (error accored)  		 						*/
234981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    REPORT_SEVERITY_FATAL_ERROR    =  5,	/**< Fatal-Error Level (fatal-error accored)					*/
235981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    REPORT_SEVERITY_SM             =  6,	/**< State-Machine Level (event happened in State-Machine)		*/
236981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    REPORT_SEVERITY_CONSOLE        =  7,	/**< Consol Level (event happened in Consol) 					*/
237981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    REPORT_SEVERITY_MAX            = REPORT_SEVERITY_CONSOLE + 1	/**< Maximum number of report severity levels	*/
238981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
239981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} EReportSeverity;
240981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
241981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \struct TReport
242981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Report Module Object
243981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
244981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
245981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * All the Databases and other parameters which are needed for reporting messages to user
246981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
247981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa
248981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
249981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct
250981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
251981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_HANDLE       hOs;												/**< Handle to Operating System Object																									*/
252981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    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	*/
253981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	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		*/
254981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT8        aFileEnable[REPORT_FILES_NUM];					    /**< Files table indicating per file if it is enabled for reporting	 */
255981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
256981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef PRINTF_ROLLBACK
257981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    char            aFileName[REPORT_FILES_NUM][MAX_STRING_LEN];	    /**< Files names table inserted in the file's reported messages		 */
258981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif
259981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
260981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} TReport;
261981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
262981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \struct TReportParamInfo
263981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Report Parameter Information
264981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
265981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
266981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Struct which defines all the Databases and other parameters which are needed
267981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * for reporting messages to user.
268981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * The actual Content of the Report Parameter Could be one of the followed (held in union):
269981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Severety Table | Module Table | Enable/Disable indication of debug module usage
270981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
271981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \sa	EExternalParam, ETwdParam
272981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
273981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct
274981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
275981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT32       paramType;								/**< The reported parameter type - one of External Parameters (which includes Set,Get, Module, internal number etc.)
276981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt															* of Report Module. Used by user for Setting or Getting Report Module Paramters, for exaple Set/Get severety table
277981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt															* to/from Report Module
278981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt															*/
279981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    TI_UINT32       paramLength;							/**< Length of reported parameter	*/
280981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
281981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    union
282981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    {
283981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        TI_UINT8    aSeverityTable[REPORT_SEVERITY_MAX];	/**< Table which holds severity flag for every available LOG severity level.
284981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt															* This flag indicates for each severity - whether it is enabled for Logging or not.
285981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt															* User can Set/Get this Tabel
286981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt															*/
287981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        TI_UINT8    aFileEnable[REPORT_FILES_NUM]; 		/**< Table which holds file flag for every available LOG file.
288981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt															* This flag indicates for each file - whether it is enabled for Logging or not.
289981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt															* User can Set/Get this Tabel
290981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt															*/
291981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt        TI_UINT32   uReportPPMode;							/**< Used by user for Indicating if Debug Module should be enabled/disabled																	*/
292981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
293981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    } content;
294981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
295981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} TReportParamInfo;
296981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
297981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \struct TReportInitParams
298981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \brief Report Init Parameters
299981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
300981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
301981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Struct which defines all the Databases needed for init and set the defualts of the Report Module.
302981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
303981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
304981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidttypedef struct
305981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{
306981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    /* Note: The arrays sizes are aligned to 4 byte to avoid padding added by the compiler! */
307981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	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.	*/
308981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	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				*/
309981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
310981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt} TReportInitParams;
311981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
312981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
313981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
314981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/****************************/
315981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* report module Macros		*/
316981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/****************************/
317981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
318981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* The report mechanism is like that:
319981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    Each file has a report flag. Each severity has a severity flag.
320981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    Only if bits are enabled, the message is printed */
321981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* The modules which have their report flag enable are indicated by a bit map in the reportModule
322981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    variable contained in the report handle*/
323981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* The severities which have are enabled are indicated by a bit map in the reportSeverity
324981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt    variable contained in the report handle*/
325981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* general trace messages */
326981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifndef PRINTF_ROLLBACK
327981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
328981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE0(hReport, level, str) \
329981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
330981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 0); } } while(0)
331981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
332981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE1(hReport, level, str, p1) \
333981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
334981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 1, (TI_UINT32)p1); } } while(0)
335981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
336981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE2(hReport, level, str, p1, p2) \
337981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
338981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 2, (TI_UINT32)p1, (TI_UINT32)p2); } } while(0)
339981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
340981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE3(hReport, level, str, p1, p2, p3) \
341981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
342981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 3, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3); } } while(0)
343981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
344981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE4(hReport, level, str, p1, p2, p3, p4) \
345981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
346981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_Trace((((TReport *)hReport)->hOs), level, __FILE_ID__, __LINE__, 4, (TI_UINT32)p1, (TI_UINT32)p2, (TI_UINT32)p3, (TI_UINT32)p4); } } while(0)
347981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
348981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE5(hReport, level, str, p1, p2, p3, p4, p5) \
349981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
350981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
351981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
352981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE6(hReport, level, str, p1, p2, p3, p4, p5, p6) \
353981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
354981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
355981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
356981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE7(hReport, level, str, p1, p2, p3, p4, p5, p6, p7) \
357981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
358981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
359981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
360981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE8(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8) \
361981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
362981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
363981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
364981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE9(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9) \
365981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
366981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
367981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
368981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE10(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) \
369981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
370981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
371981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
372981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE11(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) \
373981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
374981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
375981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
376981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE12(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) \
377981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
378981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
379981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
380981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE13(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) \
381981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
382981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
383981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
384981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE14(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) \
385981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
386981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
387981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
388981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE15(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) \
389981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
390981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
391981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
392981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE16(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16) \
393981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
394981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
395981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
396981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE17(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17) \
397981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
398981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
399981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
400981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE18(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18) \
401981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
402981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
403981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
404981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE19(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19) \
405981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
406981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
407981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
408981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
409981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
410981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
411981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
412981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
413981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
414981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
415981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
416981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
417981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
418981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
419981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
420981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
421981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
422981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
423981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
424981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
425981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
426981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
427981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
428981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
429981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#else /* PRINTF_ROLLBACK */
430981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
431981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE0(hReport, level, str) \
432981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
433981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str); } } while(0)
434981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
435981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE1(hReport, level, str, p1) \
436981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
437981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1); } } while(0)
438981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
439981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE2(hReport, level, str, p1, p2) \
440981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
441981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2); } } while(0)
442981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
443981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE3(hReport, level, str, p1, p2, p3) \
444981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
445981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3); } } while(0)
446981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
447981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE4(hReport, level, str, p1, p2, p3, p4) \
448981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
449981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4); } } while(0)
450981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
451981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE5(hReport, level, str, p1, p2, p3, p4, p5) \
452981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
453981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5); } } while(0)
454981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
455981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE6(hReport, level, str, p1, p2, p3, p4, p5, p6) \
456981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
457981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ os_printf ("%s, %s:", ((TReport *)hReport)->aFileName[__FILE_ID__], ((TReport *)hReport)->aSeverityDesc[level]); os_printf (str, p1, p2, p3, p4, p5, p6); } } while(0)
458981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
459981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE7(hReport, level, str, p1, p2, p3, p4, p5, p6, p7) \
460981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
461981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
462981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
463981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE8(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8) \
464981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
465981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
466981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
467981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE9(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9) \
468981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
469981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
470981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
471981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE10(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) \
472981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
473981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
474981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
475981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE11(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) \
476981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
477981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
478981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
479981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE12(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) \
480981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
481981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
482981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
483981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE13(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) \
484981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
485981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
486981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
487981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE14(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) \
488981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
489981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
490981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
491981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE15(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) \
492981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
493981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
494981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
495981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE16(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16) \
496981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
497981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
498981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
499981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE17(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17) \
500981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
501981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
502981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
503981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE18(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18) \
504981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
505981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
506981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
507981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE19(hReport, level, str, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19) \
508981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
509981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
510981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
511981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
512981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
513981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
514981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
515981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
516981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
517981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
518981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
519981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
520981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
521981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
522981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
523981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
524981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
525981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
526981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
527981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#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) \
528981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[level]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
529981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ 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)
530981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
531981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif /* #ifdef PRINTF_ROLLBACK */
532981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
533981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
534981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/****************************/
535981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* report module Macros		*/
536981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/****************************/
537981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
538981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* The report mechanism is like that:
539981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtEach file has a report flag. Each severity has a severity flag.
540981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtOnly if bits are enabled, the message is printed */
541981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* The modules which have their report flag enable are indicated by a bit map in the reportModule
542981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvariable contained in the report handle*/
543981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* The severities which have are enabled are indicated by a bit map in the reportSeverity
544981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvariable contained in the report handle*/
545981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
546981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef REPORT_LOG
547981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
548981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \def WLAN_OS_REPORT
549981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* \brief Macro which writes a message to user via specific Operating System printf.
550981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* E.g. print is done using the relevant used OS printf method.
551981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*/
552981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_OS_REPORT(msg)                                           \
553981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { os_printf msg;} while(0)
554981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
555981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
556981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#ifdef INIT_MESSAGES
557981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \def WLAN_INIT_REPORT
558981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* \brief Macro which writes a message to user via specific Operating System printf.
559981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* E.g. print is done using the relevant used OS printf method.
560981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*/
561981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_INIT_REPORT(msg)                                         \
562981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { os_printf msg;} while(0)
563981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#else
564981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \def WLAN_INIT_REPORT
565981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* \brief Macro which writes a message to user via specific Operating System printf.
566981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* E.g. print is done using the relevant used OS printf method.
567981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*/
568981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_INIT_REPORT(msg)
569981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif
570981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE_INFO_HEX(hReport, data, datalen) \
571981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { if (hReport && (((TReport *)hReport)->aSeverityTable[REPORT_SEVERITY_INFORMATION]) && (((TReport *)hReport)->aFileEnable[__FILE_ID__])) \
572981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt{ report_PrintDump (data, datalen); } } while(0)
573981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
574981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
575981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#else   /* REPORT_LOG */
576981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
577981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* NOTE: Keep a dummy report function call to treat compilation warnings */
578981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
579981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \def WLAN_OS_REPORT
580981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* \brief Dummy macro: Nothing is done
581981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*/
582981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_OS_REPORT(msg)                                           \
583981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { } while (0)
584981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
585981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \def WLAN_INIT_REPORT
586981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* \brief Dummy macro: Nothing is done
587981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*/
588981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define WLAN_INIT_REPORT(msg)                                         \
589981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { } while (0)
590981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
591981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
592981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#define TRACE_INFO_HEX(hReport, data, datalen) \
593981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt	do { } while (0)
594981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
595981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif  /* REPORT_LOG */
596981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
597981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
598981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/****************************/
599981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/* report module prototypes */
600981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/****************************/
601981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
602981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Create Report Module Object
603981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hOs   			- OS module object handle
604981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return Handle to the report module on success, NULL otherwise
605981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
606981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
607981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Report module creation function, called by the config mgr in creation phase	\n
608981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * performs the following:	\n
609981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   Allocate the report handle
610981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
611981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_HANDLE report_Create (TI_HANDLE hOs);
612981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Set Report Module Defaults
613981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
614981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pInitParams	- Pointer to Input Init Parameters
615981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
616981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
617981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
618981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Report module configuration function, called by the config mgr in configuration phase	\n
619981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * performs the following:	\n
620981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   Reset & init local variables
621981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   Resets all report modules bits
622981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   Resets all severities bits
623981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   Init the description strings *
624981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
625981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_SetDefaults            (TI_HANDLE hReport, TReportInitParams *pInitParams);
626981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Unload Report Module
627981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
628981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
629981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
630981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
631981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Report Module unload function, called by the config mgr in the unload phase	\n
632981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * performs the following:	\n
633981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   Free all memory allocated by the module
634981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
635981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_Unload                 (TI_HANDLE hReport);
636981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Set Report Module
637981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
638981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
639981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
640981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
641981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Enables the relevant module for reporting -  according to the received module index
642981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
643981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_SetReportModule        (TI_HANDLE hReport, TI_UINT8 module_index);
644981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Clear Report Module
645981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
646981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  module_index	- Index of file to be disable for reporting
647981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
648981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
649981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
650981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Disables the relevant module for reporting -  according to the received module index
651981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
652981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_ClearReportModule      (TI_HANDLE hReport, TI_UINT8 module_index);
653981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Get Report files Table
654981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
655981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pFiles		- Pointer to output files Table
656981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
657981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
658981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
659981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Returns the Modules Table (the table which holds Modules reporting indication) held in Report Module Object
660981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
661981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_GetReportFilesTable    (TI_HANDLE hReport, TI_UINT8 *pFiles);
662981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Set Report Files Table
663981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
664981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pFiles		- Pointer to input files Table
665981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
666981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
667981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
668981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Updates the Modules Table: copies the input Modules Table (the table which holds Modules reporting indication)
669981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * to the Modules Table which is held in Report Module Object
670981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
671981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_SetReportFilesTable    (TI_HANDLE hReport, TI_UINT8 *pFiles);
672981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Get Report Severity Table
673981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
674981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pSeverities	- Pointer to input Severity Table
675981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
676981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
677981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
678981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Returns the Severities Table (the table which holds Severities reporting indication) held in Report Module Object
679981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
680981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_GetReportSeverityTable (TI_HANDLE hReport, TI_UINT8 *pSeverities);
681981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Set Report Severity Table
682981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
683981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pSeverities	- Pointer to input Severity Table
684981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
685981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
686981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
687981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Updates the Severities Table: copies the input Severities Table (the table which holds Severities reporting indication)
688981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * to the Severities Table which is held in Report Module Object
689981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
690981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_SetReportSeverityTable (TI_HANDLE hReport, TI_UINT8 *pSeverities);
691981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Set Report Parameters
692981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
693981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pParam		- Pointer to input Report Parameters Information
694981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
695981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
696981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
697981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Report set param function sets parameter/s to Report Module Object.
698981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Called by the following:
699981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   configuration Manager in order to set a parameter/s from the OS abstraction layer
700981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   Form inside the driver
701981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
702981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_SetParam               (TI_HANDLE hReport, TReportParamInfo *pParam);
703981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief  Get Report Parameters
704981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  hReport   	- Report module object handle
705981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pParam		- Pointer to output Report Parameters Information
706981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
707981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
708981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
709981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Report get param function gets parameter/s from Report Module Object.
710981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Called by the following:
711981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   configuration Manager in order to get a parameter/s from the OS abstraction layer
712981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *	-   from inside the driver
713981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
714981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_GetParam               (TI_HANDLE hReport, TReportParamInfo *pParam);
715981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief Report Dump
716981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pBuffer  - Pointer to input HEX buffer
717981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pString	- Pointer to output string
718981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  size		- size of output string
719981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
720981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
721981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
722981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Converts hex buffer to string buffer
723981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * NOTE:	1. The caller has to make sure that the string size is at lease: ((Size * 2) + 1)
724981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * 	      	2. A string terminator is inserted into lase char of the string
725981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
726981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_Dump 					(TI_UINT8 *pBuffer, char *pString, TI_UINT32 size);
727981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief Report Print Dump
728981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  pData  	- Pointer to input data buffer
729981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \param  datalen	- size of input data buffer
730981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \return TI_OK on success or TI_NOK on failure
731981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt *
732981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * \par Description
733981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt * Performs HEX dump of input Data buffer. Used for debug only!
734981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt */
735981801b95b81e6d1c7a2085967406e86af0f08fcDmitry ShmidtTI_STATUS report_PrintDump 				(TI_UINT8 *pData, TI_UINT32 datalen);
736981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
737981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt/** \brief Sets bRedirectOutputToLogger
738981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* \param  value  	    - True if to direct output to remote PC
739981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt* \param  hEvHandler	- Event handler
740981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt*/
741981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidtvoid os_setDebugOutputToLogger(TI_BOOL value);
742981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
743981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
744981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt#endif /* __REPORT_H__ */
745981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
746981801b95b81e6d1c7a2085967406e86af0f08fcDmitry Shmidt
747