sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/testTC/inc/wlanhwinitpermparser.h
author Richard Taylor <richard.i.taylor@nokia.com>
Wed, 14 Jul 2010 14:50:01 +0100
changeset 616 24e4ef208cca
parent 591 22486c9c7b15
permissions -rw-r--r--
sbs version 2.14.2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     1
/*
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
     2
* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     3
* All rights reserved.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     4
* This component and the accompanying materials are made available
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     6
* which accompanies this distribution, and is available
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     8
*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
     9
* Initial Contributors:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    11
*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    12
* Contributors:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    13
*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    14
* Description:  The class for parsing the tuning data stored in PERM server
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    15
*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    16
*/
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    17
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    18
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    19
#ifndef WLANHWINITPERMPARSER_H
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    20
#define WLANHWINITPERMPARSER_H
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    21
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    22
#include <e32base.h>
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    23
#include "wlanhwinitinterface.h"
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    24
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    25
// Initialization Data Block constants
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    26
const TUint32 KInitMagic = 0x19171513;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    27
const TUint32 KInitTypeEnd = 0;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    28
const TUint32 KInitTypeNvMem = 1;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    29
const TUint32 KInitTypeCode = 2;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    30
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    31
//These offsets are defined in Initialization Data Block document.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    32
const TUint32 KNvMemTypeOffset = 4;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    33
const TUint32 KNvMemLengthOffset = 8;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    34
const TUint32 KNvMemValueOffset = 12;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    35
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    36
const TUint32 KNvMemTypeOffset32 = 1;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    37
const TUint32 KNvMemLengthOffset32 = 2;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    38
const TUint32 KNvMemValueOffset32 = 3;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    39
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    40
typedef TUint nvsUpdateList;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    41
#define UPDATE_MAC_ADDR 		0x0080
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    42
#define UPDATE_ALL 				  0xFFFF
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    43
616
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
    44
// Custom trace extraction content required for this component
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
    45
typedef TUint8  TGroupId;
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
    46
#define GROUPIDMASK             0x00ff0000
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
    47
#define GROUPIDSHIFT            16
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
    48
#define TRACEIDMASK             0x0000ffff
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
    49
#define TRACEIDSHIFT            0
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
    50
#define EXTRACT_GROUP_ID(aTraceName) static_cast<TGroupId>((aTraceName & GROUPIDMASK) >> GROUPIDSHIFT)
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
    51
24e4ef208cca sbs version 2.14.2
Richard Taylor <richard.i.taylor@nokia.com>
parents: 591
diff changeset
    52
591
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    53
/**
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    54
* The class for parsing the tuning data stored in PERM server.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    55
*
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    56
* @lib wlanhwinit.lib
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    57
* @since Series 60 3.1
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    58
*/
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    59
NONSHARABLE_CLASS( CWlanHwInitPermParser ) : public CBase
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    60
    {
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    61
    public:  // Constructors and destructor
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    62
        
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    63
        /**
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    64
        * Two-phased constructor.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    65
        */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    66
        static CWlanHwInitPermParser* NewL();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    67
        
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    68
        /**
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    69
        * Destructor.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    70
        */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    71
        virtual ~CWlanHwInitPermParser();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    72
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    73
        // New functions
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    74
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    75
        TPtr8 GetNvsBuffer();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    76
        void CompareNvsBuffer();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    77
        TPtr8 GetTuningBuffer();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    78
        void UpdateNvsData(nvsUpdateList updateList);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    79
        void GenerateDefaultTuningData();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    80
        void SetMacAddress(const TMacAddr& pMacAddress);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    81
        
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    82
        /**
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    83
        * Return the parsed tuning values from perm data.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    84
        * @since Series 60 3.1
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    85
        * @param aData Parsed tuning values.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    86
        * @return Status code.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    87
        */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    88
        TInt GetTuningValues(
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    89
            TDes8& aData );
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    90
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    91
        /**
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    92
        * Set tuning values to perm data.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    93
        * @since Series 60 3.1
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    94
        * @param aData Tuning values to be stored.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    95
        * @return Status code.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    96
        */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    97
        TInt SetTuningValues(TDesC8& aData, nvsUpdateList updateList);
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    98
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
    99
    private:
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   100
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   101
        /**
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   102
        * C++ default constructor.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   103
        */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   104
        CWlanHwInitPermParser();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   105
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   106
        /**
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   107
        * By default Symbian 2nd phase constructor is private.
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   108
        */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   109
        void ConstructL();
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   110
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   111
    private:    // Data
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   112
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   113
        TMacAddr iMacAddress;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   114
        /** The current tuning data. */
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   115
        HBufC8* iTuningData;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   116
        HBufC8* iNvsData;
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   117
    };
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   118
22486c9c7b15 raptor v2.14.0
jjkang
parents:
diff changeset
   119
#endif // WLANHWINITPERMPARSER_H