diff -r 000000000000 -r bde4ae8d615e os/kernelhwsrv/kernel/eka/debug/crashMonitor/inc/scmonitor.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/os/kernelhwsrv/kernel/eka/debug/crashMonitor/inc/scmonitor.h	Fri Jun 15 03:10:57 2012 +0200
@@ -0,0 +1,101 @@
+// 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:
+// e32\include\kernel\scmonitor.h
+// Kernel System crash monitor header file
+// 
+// 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
+ @internalComponent
+*/
+
+#ifndef __SCMONITOR_H__
+#define __SCMONITOR_H__
+
+#include <plat_priv.h>
+#include <kernel/monitor.h>
+#include <e32des8.h>	
+#include <arm.h>
+#include <variant_norflash_layout.h>
+
+#include <scmdatatypes.h>
+#include <scmbytestreamutil.h>
+#include <scmconfig.h>
+#include <scmdatasave.h>
+
+using namespace Debug;
+
+class CrashFlash;
+
+const TInt KFlashAlignment = sizeof(TInt32);
+
+const TInt KFlashEraseAttempts = 10;
+/**
+ * System crash monitor responsible for writing crash data to flash in 
+ * the event of a crash
+ */
+class SCMonitor: public Monitor
+	{
+	public:
+		SCMonitor();	
+		~SCMonitor();
+		
+		virtual void Print(const TDesC8& aDes);				
+		virtual TInt Init2(TAny* aCategory, TInt aReason);
+	
+		void VariantInit();
+		TInt InitFlash();
+		
+		void StableConstruction(); 		
+		
+	public:		
+		CrashFlash* iFlash;		
+			
+	protected:	
+		void DumpVariantSpecific();
+	
+		enum TSysCrashLogState
+			{
+			EUndefined = 0
+			};
+		
+		
+	private:	
+		TInt ProcessCrash(const SCMCrashBlockEntry& aBlockEntry, const TUint aCrashId, TBool aCommit);
+		TInt LogProcessMetaData(SCMDataSave::TDumpScope aDumpScope, TUint& aSizeDumped) const;
+		TInt LogThreadMetaData(SCMDataSave::TDumpScope aDumpScope, TUint& aSizeDumped) const;
+		TInt LogObjectContainers(TObjectType aObjectType, SCMDataSave::TDumpScope aDumpScope, const SCMDataSave::TDataToDump& aDataToDump, TUint& aSizeDumped) const;
+		TInt GetNextCrashStartPoint(SCMCrashBlockEntry& aBlockEntry);
+		void DoCrash(TAny* aCategory, TInt aReason);
+		
+	private:
+		TInt HelpDumpStacks(DObject* aObject, TObjectType aObjectType, TUint& aSizeDumped, SCMDataSave::TStackType aStkType) const;
+		TInt HelpDumpMetaData(DObject* aObject, TObjectType aObjectType, TUint& aSizeDumped) const;
+		TInt EraseFlashBlock(const SCMCrashBlockEntry& aBlock);
+		TInt EraseEntireFlashPartition();
+		
+	private:		
+		SCMDataSave* iDataSave;
+		Debug::SCMConfiguration* iScmConfig;
+		SCMMultiCrashInfo* iMultiCrashInfo;
+	};
+
+
+	
+#endif //__SCMONITOR_H__
+//EOF scmonitor.h