diff -r 000000000000 -r 96e5fb8b040d kernel/eka/debug/crashMonitor/inc/scmconfigitem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/debug/crashMonitor/inc/scmconfigitem.h Thu Dec 17 09:24:54 2009 +0200 @@ -0,0 +1,105 @@ +// 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 +#ifndef __KERNEL_MODE__ +#include +#endif // ! __KERNEL_MODE__ + +#include + + +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__