memspy/Driver/Kernel/Include/MemSpyDriverHeapStatistics.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 15 Sep 2010 13:53:27 +0300
branchRCL_3
changeset 49 7fdc9a71d314
parent 44 52e343bb8f80
child 59 8ad140f3dd41
permissions -rw-r--r--
Revision: 201035 Kit: 201036

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/

#ifndef MEMSPYDRIVERHEAPSTATISTICS_H
#define MEMSPYDRIVERHEAPSTATISTICS_H

// System includes
#include <e32cmn.h>


class TMemSpyHeapWalkStatistics
    {
public:

    // Total number of cells enumerated
    TInt iNumberOfWalkedCells;

    // The type of the last cell
    TMemSpyDriverCellType iLastCellType;

    // The address of the last cell
    TLinAddr iLastCellAddress;

public: // Free cell related

    // The address of the first free heap cell
    TLinAddr iFirstFreeCellAddress;
    
    // The length of the first free heap cell
    TUint iFirstFreeCellLength;

    // Whether the last cell in the entire heap was a free cell
    // (i.e. slack space)
    TBool iLastCellWasFreeCell;

    // The length of the last free cell in the heap
    TUint iLastFreeCellLength;

    // The total amount of free space in the heap
    TUint iTotalFreeSpace;

    // The number of free heap cells
    TUint iFreeCellCount;

    // The size of the largest free cell
    TUint iLargestCellSizeFree;

    // The previous largest free cell size
    TUint iLargestCellSizeFreePrevious;

    // The address of the largest free cell
    TLinAddr iLargestCellAddressFree;

    // The previous address of the largest free cell
    TUint iLargestCellAddressFreePrevious;

    // The overhead associated with a free cell (header length)
    //TUint iFreeCellOverheadHeaderLength;
	TUint iReserved1;

    // The slace space at the end of the heap
    TUint iSlackSpace;

    // The address of the slack space cell
    TLinAddr iSpackSpaceCellAddress;

    // A very simple XOR checksum of all the free cell addresses that were
    // detected during the heap navigation
    TUint32 iFreeCellCRC;

public: // Alloc cell related

    // The number of allocated heap cells
    TUint iAllocCellCount;

    // The size of the largest allocated cell
    TUint iLargestCellSizeAlloc;

    // The address of the largest allocated cell
    TLinAddr iLargestCellAddressAlloc;
   
    // The overhead associated with an allocated cell (header length)
    //TUint iAllocCellOverheadHeaderLength;
	TUint iReserved2;

public: // Common

    // The total amount of allocated space in the heap
    TUint iTotalAllocSpace;
    };



#endif