author | mikek |
Sun, 27 Jun 2010 21:43:55 +0100 | |
branch | GCC_SURGE |
changeset 181 | bd8f1e65581b |
parent 0 | a41df078684a |
permissions | -rw-r--r-- |
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available // under the terms of the License "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: // some utility classes for writing data to flash buffer // // WARNING: This file contains some APIs which are internal and are subject // to change without notice. Such APIs should therefore not be used // outside the Kernel and Hardware Services package. // /** @file @internalTechnology */ #ifndef __SCMCONFIGITEM_H_INCLUDED__ #define __SCMCONFIGITEM_H_INCLUDED__ #include <e32def.h> #ifndef __KERNEL_MODE__ #include <e32std.h> #endif // ! __KERNEL_MODE__ #include <scmbytestreamutil.h> namespace Debug { /** * This object represents a data type to dump */ class TConfigItem : public MByteStreamSerializable { public: enum TSCMDataType { EExceptionStacks, /**< Dumps exception stacks */ EVariantSpecificData, /**< Dumps Variant Specific data */ ERomInfo, /**< Dumps ROM Build Info */ ELocks, /**< Dumps Kernel Lock Info */ EKernelHeap, /**< Dumps the Kernel Heap */ ETraceData, /**< Dumps any trace data we find */ EProcessCodeSegs, /**< Dumps System wide Code Segments for each Process */ EThreadsUsrStack, /**< Dumps System wide User Stacks for each thread */ EThreadsSvrStack, /**< Dumps System wide Supervisor Stacks for each thread */ EThreadsUsrRegisters, /**< Dumps User Registers available for every thread in the System */ EThreadsSvrRegisters, /**< Dumps Supervisor Registers available for every thread in the System */ EProcessMetaData, /**< Dumps the Process List */ EThreadsMetaData, /**< Dumps the Thread List */ ECrashedProcessCodeSegs, /**< Dumps the Code Segments for the process that has crashed */ ECrashedProcessUsrStacks, /**< Dumps the User stacks for each thread in the process that has crashed */ ECrashedProcessSvrStacks, /**< Dumps the Supervisor stacks for each thread in the process that has crashed */ ECrashedProcessMetaData, /**< Dumps Info about the process that has crashed */ ECrashedThreadMetaData, /**< Dumps Info about the Thread that has crashed */ ELast /**< End Marker */ }; TConfigItem(); TConfigItem(TSCMDataType aDataType, TUint8 aPriority, TInt32 aSizeToDump); TSCMDataType GetDataType() const; TInt GetPriority() const; TInt GetSizeToDump() const; // from MByteStreamSerializable virtual TInt Serialize(TByteStreamWriter& aWriter); virtual TInt Deserialize(TByteStreamReader& aReader); virtual TInt GetSize() const; void SetSpaceRequired(TUint aSpaceReq); TUint GetSpaceRequired(); void Print() const; TBool operator == (const TConfigItem& aOther) const; TConfigItem* Next() const; #ifndef __KERNEL_MODE__ static const TDesC& GetSCMConfigOptionText(TConfigItem::TSCMDataType aType); #endif // ! __KERNEL_MODE__ private: TSCMDataType iDataType; /** The type this data represents */ TUint iSizeToDump; /** the size of the data to dump */ TUint iSpaceRequiredToDump; /** If known, this will contain the size of the data we need to dump */ TUint8 iPriority; /** Priority of this data (0 is not required) */ TConfigItem* iNext; /** Next config item in list */ friend class SCMConfiguration; }; } #endif // __SCMCONFIGITEM_H_INCLUDED__