--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/debug/crashMonitor/inc/scmconfigitem.h Mon Oct 19 15:55:17 2009 +0100
@@ -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 <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__