memspy/Driver/Kernel/Include/SubChannels/MemSpyDriverLogChanHeapBase.h
branchRCL_3
changeset 59 8ad140f3dd41
parent 49 7fdc9a71d314
equal deleted inserted replaced
49:7fdc9a71d314 59:8ad140f3dd41
    59     TInt Request( TInt aFunction, TAny* a1, TAny* a2 );
    59     TInt Request( TInt aFunction, TAny* a1, TAny* a2 );
    60 
    60 
    61 protected: // Capability checks for heap access
    61 protected: // Capability checks for heap access
    62     TDrmMatchType IsDrmThread( DThread& aThread );
    62     TDrmMatchType IsDrmThread( DThread& aThread );
    63 
    63 
    64 protected: // From MHeapWalkerObserver
    64 private: // From MHeapWalkerObserver
    65     void HandleHeapWalkInit();
    65     void HandleHeapWalkInit();
    66     TBool HandleHeapCell( TMemSpyDriverCellType aCellType, TAny* aCellAddress, TInt aLength, TInt aNestingLevel, TInt aAllocNumber );
    66     TBool HandleHeapCell( TInt aCellType, TAny* aCellAddress, TInt aLength, TInt aNestingLevel, TInt aAllocNumber );
    67 
    67 
    68 protected: // Heap utility functions
    68 protected: // Heap utility functions
    69     TInt OpenKernelHeap( RHeapK*& aHeap, DChunk*& aChunk, TDes8* aClientHeapChunkName = NULL );
    69     TInt OpenKernelHeap( RHeapK*& aHeap, DChunk*& aChunk, TDes8* aClientHeapChunkName = NULL );
       
    70     TInt OpenKernelHeap( RMemSpyDriverRHeapKernelInPlace& aHeap, TDes8* aClientHeapChunkName = NULL );
    70     TInt OpenKernelHeap( RMemSpyDriverRHeapKernelFromCopy& aHeap, TDes8* aClientHeapChunkName = NULL );
    71     TInt OpenKernelHeap( RMemSpyDriverRHeapKernelFromCopy& aHeap, TDes8* aClientHeapChunkName = NULL );
    71     TInt GetHeapInfoKernel(RMemSpyDriverRHeapBase& aHeap, TMemSpyHeapInfo* aHeapInfo, TDes8* aTransferBuffer);
    72     TInt OpenUserHeap( DThread& aClientThread, TUint aExpectedHeapVTable, RMemSpyDriverRHeapUser& aHeap, DChunk*& aUserHeapChunk, TDes8* aClientHeapChunkName = NULL );
       
    73     TBool GetUserHeapHandle( DThread& aThread, RMemSpyDriverRHeapUser& aHeap, TUint aExpectedVTable );
       
    74     TBool IsDebugKernel();
       
    75     TBool IsDebugKernel( RMemSpyDriverRHeapKernelInPlace& aHeap );
       
    76     TInt GetHeapInfoKernel( RMemSpyDriverRHeapBase& aHeap, TBool aIsDebugAllocator, const TDesC8& aChunkName, TMemSpyHeapInfo* aHeapInfo, TDes8* aTransferBuffer );
    72     void PrintHeapInfo( const TMemSpyHeapInfo& aInfo );
    77     void PrintHeapInfo( const TMemSpyHeapInfo& aInfo );
    73 
    78 
       
    79 protected: // Free cells
       
    80     void ReleaseFreeCells();
       
    81     TInt PrepareFreeCellTransferBuffer();
       
    82 	TInt FetchFreeCells( TDes8* aBufferSink );
       
    83     TInt CalculateFreeCellBufferSize() const;
       
    84 
    74 private: // Data members
    85 private: // Data members
       
    86 	RArray< TMemSpyDriverFreeCell > iFreeCells;
    75 
    87 
    76     // Points to stack-based object whilst walking in progress
    88     // Points to stack-based object whilst walking in progress
    77     RMemSpyMemStreamWriter* iStackStream;
    89     RMemSpyMemStreamWriter* iStackStream;
       
    90     RMemSpyMemStreamWriter* iHeapStream;
    78     TInt iFreeCellCount;
    91     TInt iFreeCellCount;
    79 	};
    92 	};
    80 
    93 
    81 
    94 
    82 #endif
    95 #endif