--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/include/drivers/crashflashnor.h Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,103 @@
+// Copyright (c) 2004-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\drivers\crashflash\crashflashnor.h
+//
+// 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.
+//
+
+#ifndef __CRASH_FLASH_NOR_H__
+#define __CRASH_FLASH_NOR_H__
+
+#ifndef EPOC32
+
+#include <crashflash.h>
+#include <kernel/kernel.h>
+
+/* @file
+@internalTechnology
+*/
+
+/* The generic crash flash nor support allows for a 32, 16, or 8 bit interface
+ * to the nor flash chip. One of the following should be defined in the
+ * variant's mmp file.
+ */
+#ifdef TCFI_4BYTE_WORD
+typedef TUint32 TCFIWord;
+#elif defined(TCFI_2BYTE_WORD)
+typedef TUint16 TCFIWord;
+#elif defined(TCFI_1BYTE_WORD)
+typedef TUint8 TCFIWord;
+#else
+#error One of TCFI_4BYTE_WORD, TCFI_2BYTE_WORD, or TCFI_1BYTE_WORD must be defined.
+#endif
+
+/**
+An implmentation of the CrashFlash interface for nor flash.
+@internalTechnology
+*/
+class CrashFlashNor : public CrashFlash
+ {
+public:
+ TInt Initialise();
+ void StartTransaction();
+ void EndTransaction();
+ void Write(const TDesC8& aDes);
+ void WriteSignature(const TDesC8& aDes);
+ void Read(TDes8& aDes);
+ void SetReadPos(TUint aPos);
+ void SetWritePos(const TUint aPos);
+ void EraseLogArea();
+ TUint BytesWritten();
+ void EraseFlashBlock(TUint aBlock);
+#ifdef _CRASHLOG_COMPR
+ TUint GetOutputLimit();
+ TUint GetLogOffset();
+#endif
+protected:
+ /** @publishedPartner
+ @released */
+ virtual TInt VariantInitialise()=0;
+ /** @publishedPartner
+ @released */
+ virtual void DoWrite(TCFIWord aWord)=0;
+ /** @publishedPartner
+ @released */
+ virtual TCFIWord DoRead()=0;
+ /** @publishedPartner
+ @released */
+ virtual void DoEraseBlock(TUint aBlock)=0;
+private:
+ TCFIWord iWriteBuf;
+ TCFIWord iReadBuf;
+ TUint iWriteBufBytes;
+ TUint iReadBufBytes;
+protected:
+ /** @publishedPartner
+ @released */
+ TUint iEraseBlockSize;
+ /** @publishedPartner
+ @released */
+ TUint iWritePos;
+ /** @publishedPartner
+ @released */
+ TUint iReadPos;
+private:
+ TUint iWriteTotal;
+ };
+
+#endif
+
+#endif