Home | History | Annotate | Download | only in utils
      1 /*
      2  * report.c
      3  *
      4  * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
      5  * All rights reserved.
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  *
     11  *  * Redistributions of source code must retain the above copyright
     12  *    notice, this list of conditions and the following disclaimer.
     13  *  * Redistributions in binary form must reproduce the above copyright
     14  *    notice, this list of conditions and the following disclaimer in
     15  *    the documentation and/or other materials provided with the
     16  *    distribution.
     17  *  * Neither the name Texas Instruments nor the names of its
     18  *    contributors may be used to endorse or promote products derived
     19  *    from this software without specific prior written permission.
     20  *
     21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     32  */
     33 
     34 
     35 /** \file report.c
     36  *  \brief report module implementation
     37  *
     38  *  \see report.h
     39  */
     40 
     41 #define __FILE_ID__  FILE_ID_132
     42 #include "tidef.h"
     43 #include "osApi.h"
     44 #include "report.h"
     45 #include "commonTypes.h"
     46 #include "CmdInterfaceCodes.h"
     47 
     48 
     49 
     50 
     51 /************************************************************************
     52  *                        report_create                              	*
     53  ************************************************************************/
     54 TI_HANDLE report_Create (TI_HANDLE hOs)
     55 {
     56     TReport *pReport;
     57 
     58     pReport = os_memoryAlloc(hOs, sizeof(TReport));
     59     if (!pReport)
     60     {
     61         return NULL;
     62     }
     63 
     64     pReport->hOs = hOs;
     65 
     66     os_memoryZero(hOs, pReport->aSeverityTable, sizeof(pReport->aSeverityTable));
     67     os_memoryZero(hOs, pReport->aFileEnable, sizeof(pReport->aFileEnable));
     68 
     69 
     70 #ifdef PRINTF_ROLLBACK
     71 
     72 	/* Fill the files names table */
     73 
     74     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_0  ]),  "timer                   "  ,  sizeof("timer                   "));
     75     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_1  ]),  "measurementMgr          "  ,  sizeof("measurementMgr          "));
     76     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_2  ]),  "measurementMgrSM        "  ,  sizeof("measurementMgrSM        "));
     77     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_3  ]),  "regulatoryDomain        "  ,  sizeof("regulatoryDomain        "));
     78     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_4  ]),  "requestHandler          "  ,  sizeof("requestHandler          "));
     79     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_5  ]),  "SoftGemini              "  ,  sizeof("SoftGemini              "));
     80     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_6  ]),  "spectrumMngmntMgr       "  ,  sizeof("spectrumMngmntMgr       "));
     81     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_7  ]),  "SwitchChannel           "  ,  sizeof("SwitchChannel           "));
     82     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_8  ]),  "roamingMngr             "  ,  sizeof("roamingMngr             "));
     83     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_9  ]),  "scanMngr                "  ,  sizeof("scanMngr                "));
     84     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_10 ]),  "admCtrlXCC              "  ,  sizeof("admCtrlXCC              "));
     85     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_11 ]),  "XCCMngr                 "  ,  sizeof("XCCMngr                 "));
     86     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_12 ]),  "XCCRMMngr               "  ,  sizeof("XCCRMMngr               "));
     87     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_13 ]),  "XCCTSMngr               "  ,  sizeof("XCCTSMngr               "));
     88     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_14 ]),  "rogueAp                 "  ,  sizeof("rogueAp                 "));
     89     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_15 ]),  "TransmitPowerXCC        "  ,  sizeof("TransmitPowerXCC        "));
     90     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_16 ]),  "admCtrl                 "  ,  sizeof("admCtrl                 "));
     91     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_17 ]),  "admCtrlNone             "  ,  sizeof("admCtrlNone             "));
     92     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_18 ]),  "admCtrlWep              "  ,  sizeof("admCtrlWep              "));
     93     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_19 ]),  "admCtrlWpa              "  ,  sizeof("admCtrlWpa              "));
     94     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_20 ]),  "admCtrlWpa2             "  ,  sizeof("admCtrlWpa2             "));
     95     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_21 ]),  "apConn                  "  ,  sizeof("apConn                  "));
     96     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_22 ]),  "broadcastKey802_1x      "  ,  sizeof("broadcastKey802_1x      "));
     97     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_23 ]),  "broadcastKeyNone        "  ,  sizeof("broadcastKeyNone        "));
     98     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_24 ]),  "broadcastKeySM          "  ,  sizeof("broadcastKeySM          "));
     99     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_25 ]),  "conn                    "  ,  sizeof("conn                    "));
    100     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_26 ]),  "connIbss                "  ,  sizeof("connIbss                "));
    101     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_27 ]),  "connInfra               "  ,  sizeof("connInfra               "));
    102     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_28 ]),  "keyDerive               "  ,  sizeof("keyDerive               "));
    103     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_29 ]),  "keyDeriveAes            "  ,  sizeof("keyDeriveAes            "));
    104     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_30 ]),  "keyDeriveCkip           "  ,  sizeof("keyDeriveCkip           "));
    105     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_31 ]),  "keyDeriveTkip           "  ,  sizeof("keyDeriveTkip           "));
    106     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_32 ]),  "keyDeriveWep            "  ,  sizeof("keyDeriveWep            "));
    107     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_33 ]),  "keyParser               "  ,  sizeof("keyParser               "));
    108     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_34 ]),  "keyParserExternal       "  ,  sizeof("keyParserExternal       "));
    109     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_35 ]),  "keyParserWep            "  ,  sizeof("keyParserWep            "));
    110     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_36 ]),  "mainKeysSm              "  ,  sizeof("mainKeysSm              "));
    111     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_37 ]),  "mainSecKeysOnly         "  ,  sizeof("mainSecKeysOnly         "));
    112     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_38 ]),  "mainSecNull             "  ,  sizeof("mainSecNull             "));
    113     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_39 ]),  "mainSecSm               "  ,  sizeof("mainSecSm               "));
    114     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_40 ]),  "rsn                     "  ,  sizeof("rsn                     "));
    115     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_41 ]),  "sme                     "  ,  sizeof("sme                     "));
    116     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_42 ]),  "smeSelect               "  ,  sizeof("smeSelect               "));
    117     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_43 ]),  "smeSm                   "  ,  sizeof("smeSm                   "));
    118     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_44 ]),  "unicastKey802_1x        "  ,  sizeof("unicastKey802_1x        "));
    119     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_45 ]),  "unicastKeyNone          "  ,  sizeof("unicastKeyNone          "));
    120     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_46 ]),  "unicastKeySM            "  ,  sizeof("unicastKeySM            "));
    121     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_47 ]),  "CmdDispatcher           "  ,  sizeof("CmdDispatcher           "));
    122     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_48 ]),  "CmdHndlr                "  ,  sizeof("CmdHndlr                "));
    123     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_49 ]),  "DrvMain                 "  ,  sizeof("DrvMain                 "));
    124     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_50 ]),  "EvHandler               "  ,  sizeof("EvHandler               "));
    125     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_51 ]),  "Ctrl                    "  ,  sizeof("Ctrl                    "));
    126     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_52 ]),  "GeneralUtil             "  ,  sizeof("GeneralUtil             "));
    127     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_53 ]),  "RateAdaptation          "  ,  sizeof("RateAdaptation          "));
    128     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_54 ]),  "rx                      "  ,  sizeof("rx                      "));
    129     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_55 ]),  "TrafficMonitor          "  ,  sizeof("TrafficMonitor          "));
    130     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_56 ]),  "txCtrl                  "  ,  sizeof("txCtrl                  "));
    131     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_57 ]),  "txCtrlParams            "  ,  sizeof("txCtrlParams            "));
    132     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_58 ]),  "txCtrlServ              "  ,  sizeof("txCtrlServ              "));
    133     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_59 ]),  "TxDataClsfr             "  ,  sizeof("TxDataClsfr             "));
    134     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_60 ]),  "txDataQueue             "  ,  sizeof("txDataQueue             "));
    135     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_61 ]),  "txMgmtQueue             "  ,  sizeof("txMgmtQueue             "));
    136     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_62 ]),  "txPort                  "  ,  sizeof("txPort                  "));
    137     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_63 ]),  "assocSM                 "  ,  sizeof("assocSM                 "));
    138     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_64 ]),  "authSm                  "  ,  sizeof("authSm                  "));
    139     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_65 ]),  "currBss                 "  ,  sizeof("currBss                 "));
    140     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_66 ]),  "healthMonitor           "  ,  sizeof("healthMonitor           "));
    141     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_67 ]),  "mlmeBuilder             "  ,  sizeof("mlmeBuilder             "));
    142     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_68 ]),  "mlmeParser              "  ,  sizeof("mlmeParser              "));
    143     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_69 ]),  "mlmeSm                  "  ,  sizeof("mlmeSm                  "));
    144     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_70 ]),  "openAuthSm              "  ,  sizeof("openAuthSm              "));
    145     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_71 ]),  "PowerMgr                "  ,  sizeof("PowerMgr                "));
    146     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_72 ]),  "PowerMgrDbgPrint        "  ,  sizeof("PowerMgrDbgPrint        "));
    147     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_73 ]),  "PowerMgrKeepAlive       "  ,  sizeof("PowerMgrKeepAlive       "));
    148     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_74 ]),  "qosMngr                 "  ,  sizeof("qosMngr                 "));
    149     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_75 ]),  "roamingInt              "  ,  sizeof("roamingInt              "));
    150     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_76 ]),  "ScanCncn                "  ,  sizeof("ScanCncn                "));
    151     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_77 ]),  "ScanCncnApp             "  ,  sizeof("ScanCncnApp             "));
    152     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_78 ]),  "ScanCncnOsSm            "  ,  sizeof("ScanCncnOsSm            "));
    153     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_79 ]),  "ScanCncnSm              "  ,  sizeof("ScanCncnSm              "));
    154     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_80 ]),  "ScanCncnSmSpecific      "  ,  sizeof("ScanCncnSmSpecific      "));
    155     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_81 ]),  "scanResultTable         "  ,  sizeof("scanResultTable         "));
    156     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_82 ]),  "scr                     "  ,  sizeof("scr                     "));
    157     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_83 ]),  "sharedKeyAuthSm         "  ,  sizeof("sharedKeyAuthSm         "));
    158     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_84 ]),  "siteHash                "  ,  sizeof("siteHash                "));
    159     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_85 ]),  "siteMgr                 "  ,  sizeof("siteMgr                 "));
    160     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_86 ]),  "StaCap                  "  ,  sizeof("StaCap                  "));
    161     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_87 ]),  "systemConfig            "  ,  sizeof("systemConfig            "));
    162     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_88 ]),  "templates               "  ,  sizeof("templates               "));
    163     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_89 ]),  "trafficAdmControl       "  ,  sizeof("trafficAdmControl       "));
    164     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_90 ]),  "CmdBld                  "  ,  sizeof("CmdBld                  "));
    165     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_91 ]),  "CmdBldCfg               "  ,  sizeof("CmdBldCfg               "));
    166     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_92 ]),  "CmdBldCfgIE             "  ,  sizeof("CmdBldCfgIE             "));
    167     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_93 ]),  "CmdBldCmd               "  ,  sizeof("CmdBldCmd               "));
    168     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_94 ]),  "CmdBldCmdIE             "  ,  sizeof("CmdBldCmdIE             "));
    169     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_95 ]),  "CmdBldItr               "  ,  sizeof("CmdBldItr               "));
    170     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_96 ]),  "CmdBldItrIE             "  ,  sizeof("CmdBldItrIE             "));
    171     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_97 ]),  "CmdQueue                "  ,  sizeof("CmdQueue                "));
    172     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_98 ]),  "RxQueue                 "  ,  sizeof("RxQueue                 "));
    173     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_99 ]),  "txCtrlBlk               "  ,  sizeof("txCtrlBlk               "));
    174     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_100]),  "txHwQueue               "  ,  sizeof("txHwQueue               "));
    175     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_101]),  "CmdMBox                 "  ,  sizeof("CmdMBox                 "));
    176     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_102]),  "eventMbox               "  ,  sizeof("eventMbox               "));
    177     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_103]),  "fwDebug                 "  ,  sizeof("fwDebug                 "));
    178     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_104]),  "FwEvent                 "  ,  sizeof("FwEvent                 "));
    179     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_105]),  "HwInit                  "  ,  sizeof("HwInit                  "));
    180     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_106]),  "RxXfer                  "  ,  sizeof("RxXfer                  "));
    181     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_107]),  "txResult                "  ,  sizeof("txResult                "));
    182     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_108]),  "txXfer                  "  ,  sizeof("txXfer                  "));
    183     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_109]),  "MacServices             "  ,  sizeof("MacServices             "));
    184     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_110]),  "MeasurementSrv          "  ,  sizeof("MeasurementSrv          "));
    185     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_111]),  "measurementSrvDbgPrint  "  ,  sizeof("measurementSrvDbgPrint  "));
    186     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_112]),  "MeasurementSrvSM        "  ,  sizeof("MeasurementSrvSM        "));
    187     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_113]),  "PowerSrv                "  ,  sizeof("PowerSrv                "));
    188     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_114]),  "PowerSrvSM              "  ,  sizeof("PowerSrvSM              "));
    189     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_115]),  "ScanSrv                 "  ,  sizeof("ScanSrv                 "));
    190     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_116]),  "ScanSrvSM               "  ,  sizeof("ScanSrvSM               "));
    191     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_117]),  "TWDriver                "  ,  sizeof("TWDriver                "));
    192     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_118]),  "TWDriverCtrl            "  ,  sizeof("TWDriverCtrl            "));
    193     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_119]),  "TWDriverRadio           "  ,  sizeof("TWDriverRadio           "));
    194     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_120]),  "TWDriverTx              "  ,  sizeof("TWDriverTx              "));
    195     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_121]),  "TwIf                    "  ,  sizeof("TwIf                    "));
    196     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_122]),  "SdioBusDrv              "  ,  sizeof("SdioBusDrv              "));
    197     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_123]),  "TxnQueue                "  ,  sizeof("TxnQueue                "));
    198     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_124]),  "WspiBusDrv              "  ,  sizeof("WspiBusDrv              "));
    199     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_125]),  "context                 "  ,  sizeof("context                 "));
    200     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_126]),  "freq                    "  ,  sizeof("freq                    "));
    201     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_127]),  "fsm                     "  ,  sizeof("fsm                     "));
    202     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_128]),  "GenSM                   "  ,  sizeof("GenSM                   "));
    203     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_129]),  "mem                     "  ,  sizeof("mem                     "));
    204     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_130]),  "queue                   "  ,  sizeof("queue                   "));
    205     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_131]),  "rate                    "  ,  sizeof("rate                    "));
    206     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_132]),  "report                  "  ,  sizeof("report                  "));
    207     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_133]),  "stack                   "  ,  sizeof("stack                   "));
    208     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_134]),  "externalSec             "  ,  sizeof("externalSec             "));
    209     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_135]),  "roamingMngr_autoSM      "  ,  sizeof("roamingMngr_autoSM      "));
    210     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_136]),  "roamingMngr_manualSM    "  ,  sizeof("roamingMngr_manualSM    "));
    211     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_137]),  "cmdinterpretoid         "  ,  sizeof("cmdinterpretoid         "));
    212     os_memoryCopy(hOs, (void *)(pReport->aFileName[FILE_ID_138]),  "WlanDrvIf               "  ,  sizeof("WlanDrvIf               "));
    213 
    214 #endif  /* PRINTF_ROLLBACK */
    215 
    216 	/* Severity table description */
    217 
    218 	os_memoryCopy(hOs, (char *)(pReport->aSeverityDesc[REPORT_SEVERITY_INIT]),              "INIT", sizeof("INIT"));
    219 	os_memoryCopy(hOs, (char *)(pReport->aSeverityDesc[REPORT_SEVERITY_INFORMATION]),       "INFORMATION", sizeof("INFORMATION"));
    220 	os_memoryCopy(hOs, (char *)(pReport->aSeverityDesc[REPORT_SEVERITY_WARNING]),           "WARNING", sizeof("WARNING"));
    221 	os_memoryCopy(hOs, (char *)(pReport->aSeverityDesc[REPORT_SEVERITY_ERROR]),             "ERROR", sizeof("ERROR"));
    222 	os_memoryCopy(hOs, (char *)(pReport->aSeverityDesc[REPORT_SEVERITY_FATAL_ERROR]),       "FATAL_ERROR", sizeof("FATAL_ERROR"));
    223 	os_memoryCopy(hOs, (char *)(pReport->aSeverityDesc[REPORT_SEVERITY_SM]),                "SM", sizeof("SM"));
    224 	os_memoryCopy(hOs, (char *)(pReport->aSeverityDesc[REPORT_SEVERITY_CONSOLE]),           "CONSOLE", sizeof("CONSOLE"));
    225 
    226     return (TI_HANDLE)pReport;
    227 }
    228 
    229 /************************************************************************
    230  *                        report_SetDefaults                            *
    231  ************************************************************************/
    232 TI_STATUS report_SetDefaults (TI_HANDLE hReport, TReportInitParams *pInitParams)
    233 {
    234 	if( (NULL == hReport) || (NULL == pInitParams))
    235 	{
    236 		return TI_NOK;
    237 	}
    238 
    239     report_SetReportFilesTable (hReport, (TI_UINT8 *)pInitParams->aFileEnable);
    240     report_SetReportSeverityTable (hReport, (TI_UINT8 *)pInitParams->aSeverityTable);
    241 
    242     return TI_OK;
    243 }
    244 
    245 /************************************************************************
    246  *                        report_unLoad                                 *
    247  ************************************************************************/
    248 TI_STATUS report_Unload (TI_HANDLE hReport)
    249 {
    250     TReport *pReport = (TReport *)hReport;
    251 
    252 	if(NULL == pReport)
    253 	{
    254 		return TI_NOK;
    255 	}
    256 
    257 #if defined(TIWLN_WINCE30) && defined(TI_DBG)
    258     closeMyFile();
    259 #endif
    260 
    261     os_memoryFree(pReport->hOs, pReport, sizeof(TReport));
    262     return TI_OK;
    263 }
    264 
    265 
    266 TI_STATUS report_SetReportModule(TI_HANDLE hReport, TI_UINT8 module_index)
    267 {
    268 	if(NULL == hReport)
    269 	{
    270 		return TI_NOK;
    271 	}
    272 
    273     ((TReport *)hReport)->aFileEnable[module_index] = 1;
    274 
    275     return TI_OK;
    276 }
    277 
    278 
    279 TI_STATUS report_ClearReportModule(TI_HANDLE hReport, TI_UINT8 module_index)
    280 {
    281 	if(NULL == hReport)
    282 	{
    283 		return TI_NOK;
    284 	}
    285 
    286     ((TReport *)hReport)->aFileEnable[module_index] = 0;
    287 
    288     return TI_OK;
    289 }
    290 
    291 
    292 TI_STATUS report_GetReportFilesTable(TI_HANDLE hReport, TI_UINT8 *pFiles)
    293 {
    294     TI_UINT8 index;
    295 
    296 	if( (NULL == hReport) || (NULL == pFiles))
    297 	{
    298 		return TI_NOK;
    299 	}
    300 
    301     os_memoryCopy(((TReport *)hReport)->hOs,
    302                   (void *)pFiles,
    303                   (void *)(((TReport *)hReport)->aFileEnable),
    304                   sizeof(((TReport *)hReport)->aFileEnable));
    305 
    306     for (index = 0; index < sizeof(((TReport *)hReport)->aFileEnable); index++)
    307     {
    308         pFiles[index] += '0';
    309     }
    310 
    311     return TI_OK;
    312 }
    313 
    314 
    315 TI_STATUS report_SetReportFilesTable(TI_HANDLE hReport, TI_UINT8 *pFiles)
    316 {
    317     TI_UINT8 index;
    318 
    319 	if( (NULL == hReport) || (NULL == pFiles))
    320 	{
    321 		return TI_NOK;
    322 	}
    323 
    324 
    325     for (index = 0; index < sizeof(((TReport *)hReport)->aFileEnable); index++)
    326     {
    327         pFiles[index] -= '0';
    328     }
    329 
    330     os_memoryCopy(((TReport *)hReport)->hOs,
    331                   (void *)(((TReport *)hReport)->aFileEnable),
    332                   (void *)pFiles,
    333                   sizeof(((TReport *)hReport)->aFileEnable));
    334 
    335     return TI_OK;
    336 }
    337 
    338 
    339 TI_STATUS report_GetReportSeverityTable(TI_HANDLE hReport, TI_UINT8 *pSeverities)
    340 {
    341     TI_UINT8 index;
    342 
    343 	if( (NULL == hReport) || (NULL == pSeverities))
    344 	{
    345 
    346 		return TI_NOK;
    347 	}
    348 
    349 
    350     os_memoryCopy (((TReport *)hReport)->hOs,
    351                    (void *)pSeverities,
    352                    (void *)(((TReport *)hReport)->aSeverityTable),
    353                    sizeof(((TReport *)hReport)->aSeverityTable));
    354 
    355     for (index = 0; index < sizeof(((TReport *)hReport)->aSeverityTable); index++)
    356     {
    357         pSeverities[index] += '0';
    358     }
    359 
    360     return TI_OK;
    361 }
    362 
    363 
    364 TI_STATUS report_SetReportSeverityTable(TI_HANDLE hReport, TI_UINT8 *pSeverities)
    365 {
    366     TI_UINT8 index;
    367 
    368 	if( (NULL == hReport) || (NULL == pSeverities))
    369 	{
    370 		return TI_NOK;
    371 	}
    372 
    373     for (index = 0; index < sizeof(((TReport *)hReport)->aSeverityTable); index++)
    374     {
    375         pSeverities[index] -= '0';
    376     }
    377 
    378     os_memoryCopy(((TReport *)hReport)->hOs,
    379                   (void *)(((TReport *)hReport)->aSeverityTable),
    380                   (void *)pSeverities,
    381                   sizeof(((TReport *)hReport)->aSeverityTable));
    382 
    383     return TI_OK;
    384 }
    385 
    386 
    387 /***********************************************************************
    388 *                        report_setParam
    389 ***********************************************************************/
    390 TI_STATUS report_SetParam (TI_HANDLE hReport, TReportParamInfo *pParam)
    391 {
    392 	if( (NULL == hReport) || (NULL == pParam))
    393 	{
    394 		return TI_NOK;
    395 	}
    396 
    397 	switch (pParam->paramType)
    398 	{
    399 	case REPORT_MODULE_ON_PARAM:
    400 		report_SetReportModule(hReport, pParam->content.aFileEnable[0]);
    401 		break;
    402 
    403 	case REPORT_MODULE_OFF_PARAM:
    404 		report_ClearReportModule(hReport, pParam->content.aFileEnable[0]);
    405 		break;
    406 
    407 	case REPORT_MODULE_TABLE_PARAM:
    408 		report_SetReportFilesTable(hReport, (TI_UINT8 *)pParam->content.aFileEnable);
    409 		break;
    410 
    411 	case REPORT_SEVERITY_TABLE_PARAM:
    412 		report_SetReportSeverityTable(hReport, (TI_UINT8 *)pParam->content.aSeverityTable);
    413 		break;
    414 
    415 	case REPORT_PPMODE_VALUE_PARAM:
    416 		os_setDebugMode((TI_BOOL)pParam->content.uReportPPMode);
    417 		break;
    418 
    419 	case REPORT_OUTPUT_TO_LOGGER_ON:
    420 		os_setDebugOutputToLogger(TI_TRUE);
    421 		break;
    422 
    423 	case REPORT_OUTPUT_TO_LOGGER_OFF:
    424 		os_setDebugOutputToLogger(TI_FALSE);
    425         break;
    426 
    427 	default:
    428 		TRACE1(hReport, REPORT_SEVERITY_ERROR, "Set param, Params is not supported, %d\n", pParam->paramType);
    429 		return PARAM_NOT_SUPPORTED;
    430 	}
    431 
    432 	return TI_OK;
    433 }
    434 
    435 /***********************************************************************
    436  *                        report_getParam
    437  ***********************************************************************/
    438 TI_STATUS report_GetParam (TI_HANDLE hReport, TReportParamInfo *pParam)
    439 {
    440 	if( (NULL == hReport) || (NULL == pParam))
    441 	{
    442 		return TI_NOK;
    443 	}
    444 
    445     switch (pParam->paramType)
    446     {
    447     case REPORT_MODULE_TABLE_PARAM:
    448         report_GetReportFilesTable(hReport, (TI_UINT8 *)pParam->content.aFileEnable);
    449         break;
    450 
    451     case REPORT_SEVERITY_TABLE_PARAM:
    452         report_GetReportSeverityTable(hReport, (TI_UINT8 *)pParam->content.aSeverityTable);
    453         break;
    454 
    455     default:
    456         TRACE1(hReport, REPORT_SEVERITY_ERROR, "Get param, Params is not supported, %d\n", pParam->paramType);
    457         return PARAM_NOT_SUPPORTED;
    458     }
    459 
    460     return TI_OK;
    461 }
    462 
    463 
    464 /************************************************************************
    465  *                        report_Dump                                 *
    466  ************************************************************************/
    467 TI_STATUS report_Dump (TI_UINT8 *pBuffer, char *pString, TI_UINT32 size)
    468 {
    469     TI_UINT32 index;
    470     TI_UINT8  temp_nibble;
    471 	if( (NULL == pBuffer) || (NULL == pString))
    472 	{
    473 		return TI_NOK;
    474 }
    475 
    476     /* Go over pBuffer and convert it to chars */
    477     for (index = 0; index < size; index++)
    478 {
    479         /* First nibble */
    480         temp_nibble = (pBuffer[index] & 0x0F);
    481         if (temp_nibble <= 9)
    482 	{
    483             pString[(index << 1) + 1] = temp_nibble + '0';
    484 	}
    485         else
    486 	{
    487             pString[(index << 1) + 1] = temp_nibble - 10 + 'A';
    488 	}
    489 
    490         /* Second nibble */
    491         temp_nibble = ((pBuffer[index] & 0xF0) >> 4);
    492         if (temp_nibble <= 9)
    493 {
    494             pString[(index << 1)] = temp_nibble + '0';
    495 	}
    496         else
    497 {
    498             pString[(index << 1)] = temp_nibble - 10 + 'A';
    499 	 }
    500 	}
    501 
    502     /* Put string terminator */
    503     pString[(size * 2)] = 0;
    504 
    505     return TI_OK;
    506 	}
    507 
    508 
    509 /* HEX DUMP for BDs !!! Debug code only !!! */
    510 TI_STATUS report_PrintDump (TI_UINT8 *pData, TI_UINT32 datalen)
    511 {
    512 #ifdef TI_DBG
    513     TI_INT32  dbuflen=0;
    514     TI_UINT32 j;
    515     TI_CHAR   dbuf[50];
    516     static const TI_CHAR hexdigits[16] = "0123456789ABCDEF";
    517 
    518 
    519 	if((NULL == pData)||(datalen <= 0)
    520 )
    521 	{
    522 		return TI_NOK;
    523 	}
    524 
    525 
    526     for(j=0; j < datalen;)
    527     {
    528         /* Add a byte to the line*/
    529         dbuf[dbuflen] =  hexdigits[(pData[j] >> 4)&0x0f];
    530         dbuf[dbuflen+1] = hexdigits[pData[j] & 0x0f];
    531         dbuf[dbuflen+2] = ' ';
    532         dbuf[dbuflen+3] = '\0';
    533         dbuflen += 3;
    534         j++;
    535         if((j % 16) == 0)
    536         {
    537             /* Dump a line every 16 hex digits*/
    538             WLAN_OS_REPORT(("%04.4x  %s\n", j-16, dbuf));
    539             dbuflen = 0;
    540         }
    541     }
    542     /* Flush if something has left in the line*/
    543     if(dbuflen)
    544         WLAN_OS_REPORT(("%04.4x  %s\n", j & 0xfff0, dbuf));
    545 #endif
    546     return TI_OK;
    547 }
    548 
    549 void handleRunProblem(EProblemType prType)
    550 {
    551     /* Here problem handling methods can be specified per problem type.
    552        They can be OS dependent and can contain debug prints, traceBack,
    553        fatal error initiation etc.
    554     */
    555     return; /* empty for now */
    556 }
    557