diff -r 185201be11b0 -r 516af714ebb4 memspy/Driver/Kernel/Include/MemSpyDriverOSAdaption.h --- a/memspy/Driver/Kernel/Include/MemSpyDriverOSAdaption.h Thu Sep 02 22:05:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,505 +0,0 @@ -/* -* 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 MEMSPYDRIVEROSADAPTION_H -#define MEMSPYDRIVEROSADAPTION_H - -// System includes -#include -#include - -// User includes -#include "MemSpyDriverObjectIx.h" - -// Classes referenced -class DMemSpyDriverDevice; -class DMemSpyPropertyRef; -class DMemSpyDriverOSAdaption; - - - -class DMemSpyDriverOSAdaptionDObject : public DBase - { -protected: - DMemSpyDriverOSAdaptionDObject( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TUint8 GetContainerID( DObject& aObject ) const; - TObjectType GetObjectType( DObject& aObject ) const; - DObject* GetOwner( DObject& aObject ) const; - DObject* GetOwner( DObject& aObject, TUint8 aExpectedContainerId ) const; - TInt GetAccessCount( DObject& aObject ) const; - TInt GetUniqueID( DObject& aObject ) const; - TUint GetProtection( DObject& aObject ) const; - TUint8* GetAddressOfKernelOwner( DObject& aObject ) const; - -protected: - DMemSpyDriverOSAdaption& OSAdaption() const { return iOSAdaption; } - -private: // Data members - DMemSpyDriverOSAdaption& iOSAdaption; - }; - - - - - -class DMemSpyDriverOSAdaptionDThread : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDThread( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - NThread* GetNThread( DThread& aObject ) const; - TExitType GetExitType( DThread& aObject ) const; - TUint32 GetSupervisorStackBase( DThread& aObject ) const; - TInt GetSupervisorStackSize( DThread& aObject ) const; - RAllocator* GetAllocator( DThread& aObject ) const; - CActiveScheduler* GetActiveScheduler( DThread& aObject ) const; - TUint32 GetUserStackBase( DThread& aObject ) const; - TInt GetUserStackSize( DThread& aObject ) const; - DProcess* GetOwningProcess( DThread& aObject ) const; - TUint GetId( DThread& aObject ) const; - MemSpyObjectIx* GetHandles( DThread& aObject ) const; - TUint GetOwningProcessId( DThread& aObject ) const; - TInt GetPriority( DThread& aObject ) const; - TUint8* GetAddressOfOwningProcess( DThread& aObject ) const; - void GetNameOfOwningProcess( DThread& aObject, TDes& aName ) const; - TBool IsHandleIndexValid( DThread& aObject ) const; - -private: // Internal methods - RAllocator* GetAllocatorAndStackAddress( DThread& aObject, TUint32& aStackAddress ) const; - -private: // Data members - TUint32 iOffset_NThread; - TUint32 iOffset_ExitType; - TUint32 iOffset_SupervisorStackBase; - TUint32 iOffset_SupervisorStackSize; - }; - - - - - - - -class DMemSpyDriverOSAdaptionDProcess : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDProcess( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TUint GetId( DProcess& aObject ) const; - MemSpyObjectIx* GetHandles( DProcess& aObject ) const; - TExitType GetExitType( DProcess& aObject ) const; - DThread* OpenFirstThread( DProcess& aObject ) const; - TUint32 GetSID( DProcess& aObject ) const; - TUint GetSecurityZone( DProcess& aObject ) const; - SSecurityInfo& GetSecurityInfo( DProcess& aObject ) const; - TInt GetFlags( DProcess& aObject ) const; - TInt GetGeneration( DProcess& aObject ) const; - SDblQue& GetThreadQueue( DProcess& aObject ) const; - DThread* GetThread( SDblQueLink* aLink ) const; - void SetSID( DProcess& aObject, TUint32 aSID ) const; - void SetSecurityZone( DProcess& aObject, TUint aSecurityZone ) const; - TUint GetCreatorId( DProcess& aObject ) const; - TInt GetAttributes( DProcess& aObject ) const; - TInt GetPriority( DProcess& aObject ) const; - TUint8* GetAddressOfOwningProcess( DProcess& aObject ) const; - TUint8* GetAddressOfDataBssStackChunk( DProcess& aObject ) const; - TBool IsHandleIndexValid( DProcess& aObject ) const; - TBool IsKernProcess(DProcess& aProcess) const; - -private: // Data members - }; - - - - - - - - - - - - - - - -class DMemSpyDriverOSAdaptionDChunk : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDChunk( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TInt GetSize( DChunk& aObject ) const; - TInt GetMaxSize( DChunk& aObject ) const; - TUint8* GetBase( DChunk& aObject ) const; - DProcess* GetOwningProcess( DChunk& aObject ) const; - TUint GetOwningProcessId( DChunk& aObject ) const; - TUint GetControllingOwnerId( DChunk& aObject ) const; - TChunkType GetType( DChunk& aObject ) const; - TInt GetAttributes( DChunk& aObject ) const; - TUint8* GetAddressOfOwningProcess( DChunk& aObject ) const; - TInt GetBottom( DChunk& aObject ) const; - TInt GetTop( DChunk& aObject ) const; - TInt GetStartPos( DChunk& aObject ) const; - TUint GetRestrictions( DChunk& aObject ) const; - TUint GetMapAttr( DChunk& aObject ) const; - void GetNameOfOwningProcess( DChunk& aObject, TDes& aName ) const; - -private: // Data members - }; - - - - - - - - -class DMemSpyDriverOSAdaptionDServer : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDServer( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - SDblQue& GetSessionQueue( DServer& aObject ) const; - DSession* GetSession( SDblQueLink* aLink ) const; - TInt GetSessionCount( DServer& aObject ) const; - DThread* GetOwningThread( DServer& aObject ) const; - TUint GetOwningThreadId( DServer& aObject ) const; - TIpcSessionType GetSessionType( DServer& aObject ) const; - TUint8* GetAddressOfOwningThread( DServer& aObject ) const; - void GetNameOfOwningThread( DServer& aObject, TDes& aName ) const; - -private: // Data members - }; - - - - - - - -class DMemSpyDriverOSAdaptionDSession : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDSession( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TIpcSessionType GetSessionType( DSession& aObject ) const; - DServer* GetServer( DSession& aObject ) const; - TUint8* GetAddressOfServer( DSession& aObject ) const; - TUint16 GetTotalAccessCount( DSession& aObject ) const; - TUint8 GetSrvSessionType( DSession& aObject ) const; - TInt GetMsgCount( DSession& aObject ) const; - TInt GetMsgLimit( DSession& aObject ) const; - -private: // Data members - }; - - - - - - - - - -class DMemSpyDriverOSAdaptionDCodeSeg : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDCodeSeg( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - DCodeSeg* GetCodeSeg( SDblQueLink* aLink ) const; - DCodeSeg* GetCodeSeg( DLibrary& aLibrary ) const; - DCodeSeg* GetCodeSegFromHandle( TAny* aHandle ) const; - TBool GetIsXIP( DCodeSeg& aCodeSeg ) const; - TInt GetCodeSegQueue( DProcess& aObject, SDblQue& aQueue ) const; - void EmptyCodeSegQueue( SDblQue& aQueue ) const; - TUint32 GetSize( DCodeSeg& aCodeSeg ) const; - void GetCreateInfo( DCodeSeg& aCodeSeg, TCodeSegCreateInfo& aInfo ) const; - TUint8 GetState( DLibrary& aLibrary ) const; - TInt GetMapCount( DLibrary& aLibrary ) const; - -private: // Data members - }; - - - - - -class DMemSpyDriverOSAdaptionDSemaphore : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDSemaphore( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TInt GetCount( DSemaphore& aObject ) const; - TUint8 GetResetting( DSemaphore& aObject ) const; - -private: // Data members - }; - - - - - - - - - -class DMemSpyDriverOSAdaptionDMutex : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDMutex( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TInt GetHoldCount( DMutex& aObject ) const; - TInt GetWaitCount( DMutex& aObject ) const; - TUint8 GetResetting( DMutex& aObject ) const; - TUint8 GetOrder( DMutex& aObject ) const; - -private: // Data members - }; - - - - - - - - -class DMemSpyDriverOSAdaptionDLogicalDevice : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDLogicalDevice( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TInt GetOpenChannels( DLogicalDevice& aObject ) const; - TVersion GetVersion( DLogicalDevice& aObject ) const; - TUint GetParseMask( DLogicalDevice& aObject ) const; - TUint GetUnitsMask( DLogicalDevice& aObject ) const; - -private: // Data members - }; - - - - - - - - - -class DMemSpyDriverOSAdaptionDPhysicalDevice : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDPhysicalDevice( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TVersion GetVersion( DPhysicalDevice& aObject ) const; - TUint GetUnitsMask( DPhysicalDevice& aObject ) const; - TUint8* GetAddressOfCodeSeg( DPhysicalDevice& aObject ) const; - -private: // Data members - }; - - - - - - - - - - - -class DMemSpyDriverOSAdaptionDChangeNotifier : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDChangeNotifier( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TUint GetChanges( DChangeNotifier& aObject ) const; - TUint8* GetAddressOfOwningThread( DChangeNotifier& aObject ) const; - void GetNameOfOwningThread( DChangeNotifier& aObject, TDes& aName ) const; - -private: // Data members - }; - - - - - - - - - - - -class DMemSpyDriverOSAdaptionDUndertaker : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDUndertaker( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TUint8* GetAddressOfOwningThread( DUndertaker& aObject ) const; - void GetNameOfOwningThread( DUndertaker& aObject, TDes& aName ) const; - -private: // Data members - }; - - - - - - - - - - - - -class DMemSpyDriverOSAdaptionDCondVar : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDCondVar( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TUint8 GetResetting( DCondVar& aObject ) const; - TUint8* GetAddressOfMutex( DCondVar& aObject ) const; - void GetNameOfMutex( DCondVar& aObject, TDes& aName ) const; - TInt GetWaitCount( DCondVar& aObject ) const; - SDblQue& GetSuspendedQ( DCondVar& aObject ) const; - DThread* GetThread( SDblQueLink* aLink ) const; - -private: // Data members - }; - - - - - - - - - - - - - - - -class DMemSpyDriverOSAdaptionDTimer : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDTimer( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TTimer::TTimerType GetType( DTimer& aObject ) const; - TTimer::TTimerState GetState( DTimer& aObject ) const; - -private: // Data members - }; - - - - - -class DMemSpyDriverOSAdaptionDPropertyRef : public DMemSpyDriverOSAdaptionDObject - { -public: - DMemSpyDriverOSAdaptionDPropertyRef( DMemSpyDriverOSAdaption& aOSAdaption ); - -public: - TBool GetIsReady( DObject& aObject ) const; - RProperty::TType GetType( DObject& aObject ) const; - TUint GetCategory( DObject& aObject ) const; - TUint GetKey( DObject& aObject ) const; - TInt GetRefCount( DObject& aObject ) const; - TUint GetThreadId( DObject& aObject ) const; - TUint32 GetCreatorSID( DObject& aObject ) const; - -private: // Internal methods - DMemSpyPropertyRef* GetPropertyRef( DObject& aObject ) const; - -private: // Data members - }; - - - - - - -class DMemSpyDriverOSAdaption : public DBase - { -public: - DMemSpyDriverOSAdaption( DMemSpyDriverDevice& aDevice ); - ~DMemSpyDriverOSAdaption(); - TInt Construct(); - -public: // API - inline DMemSpyDriverDevice& Device() { return iDevice; } - inline DMemSpyDriverOSAdaptionDProcess& DProcess() { return *iDProcess; } - inline DMemSpyDriverOSAdaptionDThread& DThread() { return *iDThread; } - inline DMemSpyDriverOSAdaptionDChunk& DChunk() { return *iDChunk; } - inline DMemSpyDriverOSAdaptionDServer& DServer() { return *iDServer; } - inline DMemSpyDriverOSAdaptionDSession& DSession() { return *iDSession; } - inline DMemSpyDriverOSAdaptionDCodeSeg& DCodeSeg() { return *iDCodeSeg; } - inline DMemSpyDriverOSAdaptionDSemaphore& DSemaphore() { return *iDSemaphore; } - inline DMemSpyDriverOSAdaptionDMutex& DMutex() { return *iDMutex; } - inline DMemSpyDriverOSAdaptionDLogicalDevice& DLogicalDevice() { return *iDLogicalDevice; } - inline DMemSpyDriverOSAdaptionDPhysicalDevice& DPhysicalDevice() { return *iDPhysicalDevice; } - inline DMemSpyDriverOSAdaptionDChangeNotifier& DChangeNotifier() { return *iDChangeNotifier; } - inline DMemSpyDriverOSAdaptionDUndertaker& DUndertaker() { return *iDUndertaker; } - inline DMemSpyDriverOSAdaptionDCondVar& DCondVar() { return *iDCondVar; } - inline DMemSpyDriverOSAdaptionDTimer& DTimer() { return *iDTimer; } - inline DMemSpyDriverOSAdaptionDPropertyRef& DPropertyRef() { return *iDPropertyRef; } - -private: // Data members - DMemSpyDriverDevice& iDevice; - DMemSpyDriverOSAdaptionDThread* iDThread; - DMemSpyDriverOSAdaptionDProcess* iDProcess; - DMemSpyDriverOSAdaptionDChunk* iDChunk; - DMemSpyDriverOSAdaptionDServer* iDServer; - DMemSpyDriverOSAdaptionDSession* iDSession; - DMemSpyDriverOSAdaptionDCodeSeg* iDCodeSeg; - DMemSpyDriverOSAdaptionDSemaphore* iDSemaphore; - DMemSpyDriverOSAdaptionDMutex* iDMutex; - DMemSpyDriverOSAdaptionDLogicalDevice* iDLogicalDevice; - DMemSpyDriverOSAdaptionDPhysicalDevice* iDPhysicalDevice; - DMemSpyDriverOSAdaptionDChangeNotifier* iDChangeNotifier; - DMemSpyDriverOSAdaptionDUndertaker* iDUndertaker; - DMemSpyDriverOSAdaptionDCondVar* iDCondVar; - DMemSpyDriverOSAdaptionDTimer* iDTimer; - DMemSpyDriverOSAdaptionDPropertyRef* iDPropertyRef; - }; - - -// KNOWN OMISSIONS: -// -// + kernel container listing & query interface -// + event handler (events: process, threads, code segs, chunks, ... ) -// + kernel heap information -// + end thread / process - - -#endif