--- a/imgtools/romtools/rombuild/r_obey.h Wed Jun 16 16:51:40 2010 +0300
+++ b/imgtools/romtools/rombuild/r_obey.h Wed Jun 23 16:56:47 2010 +0800
@@ -1,366 +1,361 @@
-/*
-* Copyright (c) 1995-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:
-*
-*/
-
-
-#ifndef __R_OBEY_H__
-#define __R_OBEY_H__
-
-#define __REFERENCE_CAPABILITY_NAMES__
-
-#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
-#include <fstream>
-#else //!__MSVCDOTNET__
-#include <fstream.h>
-#endif //__MSVCDOTNET__
-
-#include "r_rom.h"
-#include "r_areaset.h"
-#include <e32capability.h>
-
-#ifdef _L
-#undef _L
-#endif
-
-#include <vector>
-
-const TUint32 KNumWords=16;
-//
-const TInt KDefaultRomSize=0x400000;
-const TInt KDefaultRomLinearBase=0x50000000;
-const TInt KDefaultRomAlign=0x1000;
-const TUint32 KDefaultDataRunAddress = 0x400000;
-//
-
-typedef std::string String;
-typedef std::vector<String> StringVector;
-
-enum EFileAttribute
- {
- EAttributeStackReserve,
- EAttributeStack,
- EAttributeReloc,
- EAttributeCodeAlign,
- EAttributeDataAlign,
- EAttributeFixed,
- EAttributeAtt,
- EAttributePriority,
- EAttributePatched,
- EAttributeUid1,
- EAttributeUid2,
- EAttributeUid3,
- EAttributeHeapMin,
- EAttributeHeapMax,
- EAttributeHidden,
- EAttributeKeepIAT,
- EAttributeArea,
- EAttributeProcessSpecific,
- EAttributeCapability,
- EAttributePreferred,
- EAttributeUnpaged,
- EAttributePaged,
- EAttributeUnpagedCode,
- EAttributePagedCode,
- EAttributeUnpagedData,
- EAttributePagedData,
- };
-enum EKeyword
- {
- EKeywordNone=0, // backwards compatibility, but now ignored
- EKeywordFile,
- EKeywordData,
- EKeywordPrimary,
- EKeywordSecondary,
- EKeywordVariant,
- EKeywordExtension,
- EKeywordDevice,
- EKeywordDll,
- EKeywordFileCompress,
- EKeywordFileUncompress,
- EKeywordArea,
- EKeywordAlign,
- EKeywordUnicode,
- EKeywordAscii,
- EKeywordSingleKernel,
- EKeywordMultiKernel,
- EKeywordBootBinary,
- EKeywordRomName,
- EKeywordRomSize,
- EKeywordRomLinearBase,
- EKeywordRomAlign,
- EKeywordRomChecksum,
- EKeywordKernelDataAddress,
- EKeywordKernelHeapMin,
- EKeywordKernelHeapMax,
- EKeywordDataAddress,
- EKeywordDllDataTop,
- EKeywordDefaultStackReserve,
- EKeywordVersion,
- EKeywordLanguages,
- EKeywordHardware,
- EKeywordRomNameOdd,
- EKeywordRomNameEven,
- EKeywordSRecordFileName,
- EKeywordSRecordBase,
- EKeywordTrace,
- EKeywordKernelTrace,
- EKeywordBTrace,
- EKeywordBTraceMode,
- EKeywordBTraceBuffer,
- EKeywordCollapse,
- EKeywordTime,
- EKeywordSection,
- EKeywordExtensionRom,
- EKeywordKernelRomName,
- EKeywordAlias,
- EKeywordHide,
- EKeywordRename,
- EKeywordDebugPort,
- EKeywordCompress,
- EKeywordMemModel,
- EKeywordNoWrapper,
- EKeywordEpocWrapper,
- EKeywordCoffWrapper,
- EKeywordPlatSecEnforcement,
- EKeywordPlatSecDiagnostics,
- EKeywordPlatSecProcessIsolation,
- EKeywordPlatSecEnforceSysBin,
- EKeywordPlatSecDisabledCaps,
- EKeywordPagingPolicy,
- EKeywordCodePagingPolicy,
- EKeywordDataPagingPolicy,
- EKeywordPagingOverride,
- EKeywordCodePagingOverride,
- EKeywordDataPagingOverride,
- EKeywordDemandPagingConfig,
- EKeywordPagedRom,
- EKeywordPatchDllData,
- EKeywordExecutableCompressionMethodNone,
- EKeywordExecutableCompressionMethodInflate,
- EKeywordExecutableCompressionMethodBytePair,
- EKeywordCoreImage,
- EKeywordKernelConfig,
- EKeywordMaxUnpagedMemSize,
- EKeywordHardwareConfigRepositoryData ,
- };
-enum TCollapseMode
- {
- ECollapseNone=0,
- ECollapseImportThunksOnly=1,
- ECollapseImportThunksAndVtables=2,
- ECollapseAllChainBranches=3,
- };
-
-struct ObeyFileKeyword
- {
- const char* iKeyword;
- size_t iKeywordLength;
- TInt iPass;
- TInt iNumArgs; // -ve means >= number
- enum EKeyword iKeywordEnum;
- const char* iHelpText;
- };
-
-struct FileAttributeKeyword
- {
- const char* iKeyword;
- size_t iKeywordLength;
- TInt iIsFileAttribute;
- TInt iNumArgs;
- enum EFileAttribute iAttributeEnum;
- const char* iHelpText;
- };
-
-class ObeyFileReader
- {
-public:
- ObeyFileReader(TText *aFileName);
- ~ObeyFileReader();
-
- static void KeywordHelp();
-
- TBool Open();
- void Mark();
- void MarkNext();
- void Rewind();
-
- TInt NextLine(TInt aPass, enum EKeyword& aKeyword);
- TInt NextAttribute(TInt& aIndex, TInt aHasFile, enum EFileAttribute& aKeyword, TText*& aArg);
-
- void CopyWord(TInt aIndex, TText*& aString); // allocate copy of nth word
- TInt Count() { return iNumWords;} // number of words on current line
- char* Word(TInt aIndex) { return (char*)iWord[aIndex]; } // return nth word as char*
- TText* Text(TInt aIndex) { return iWord[aIndex]; } // return nth word as TText*
- char* Suffix() { return (char*)iSuffix; } // return unmatched suffix of word[0]
- TInt CurrentLine() { return iCurrentLine;} // number of words on current line
-
- TInt ProcessAlign(TInt& aAlign);
- void ProcessLanguages(TInt64& aLanguageMask);
- void ProcessTime(TInt64& aTime);
-
- static void TimeNow(TInt64& aTime);
-private:
- TInt ReadAndParseLine();
- TInt SetLineLengthBuffer();
- TInt Parse();
- inline TBool IsGap(char ch);
-
- static const ObeyFileKeyword iKeywords[];
- static const FileAttributeKeyword iAttributeKeywords[];
- static TInt64 iTimeNow;
-
-private:
- FILE* iObeyFile;
- long iMark;
- TInt iMarkLine;
- long iCurrentMark;
- TInt iCurrentLine;
- TInt imaxLength;
- TText* iFileName;
- TInt iNumWords;
- TText* iWord[KNumWords];
- TText* iSuffix;
- TText* iLine;
- };
-
-class CPatchDataProcessor;
-class DllDataEntry;
-
-class CObeyFile
- {
-public:
- TText *iRomFileName;
- TText *iRomOddFileName;
- TText *iRomEvenFileName;
- TText *iSRecordFileName;
- TText *iBootFileName;
- TText *iKernelRomName;
- TInt iRomSize;
- TUint32 iRomLinearBase;
- TUint32 iRomAlign;
- TUint32 iKernDataRunAddress;
- TUint32 iDataRunAddress;
- TUint32 iKernelLimit;
- TUint32 iKernHeapMin;
- TUint32 iKernHeapMax;
- TUint32 iSectionStart;
- TInt iSectionPosition;
- TVersion iVersion;
- TUint32 iCheckSum;
- TInt iNumberOfPeFiles;
- TInt iNumberOfDataFiles;
- TInt iNumberOfPrimaries;
- TInt iNumberOfExtensions;
- TInt iNumberOfVariants;
- TInt iNumberOfDevices;
- TInt iNumberOfHCRDataFiles ;
- TUint iAllVariantsMask[256];
- TRomBuilderEntry** iPrimaries;
- TRomBuilderEntry** iVariants;
- TRomBuilderEntry** iExtensions;
- TRomBuilderEntry** iDevices;
- TInt64 iLanguage;
- TUint32 iHardware;
- TInt64 iTime;
- TMemModel iMemModel;
- TInt iPageSize;
- TInt iChunkSize;
- TInt iVirtualAllocSize;
- TKernelModel iKernelModel;
- TInt iCollapseMode;
- TUint32 iSRecordBase;
- TInt iCurrentSectionNumber;
- TInt iDefaultStackReserve;
- TUint32 iTraceMask[KNumTraceMaskWords]; // Pass through to the kernel tracemask
- TUint32 iInitialBTraceFilter[8];
- TInt iInitialBTraceBuffer;
- TInt iInitialBTraceMode;
- TUint32 iDebugPort;
- TBool iDebugPortParsed;
- TRomNode* iRootDirectory;
- TUint32 iDllDataTop;
- TUint32 iKernelConfigFlags;
- TBool iPagingPolicyParsed;
- TBool iCodePagingPolicyParsed;
- TBool iDataPagingPolicyParsed;
- TBool iPagingOverrideParsed;
- TBool iCodePagingOverrideParsed;
- TBool iDataPagingOverrideParsed;
- SCapabilitySet iPlatSecDisabledCaps;
- TBool iPlatSecDisabledCapsParsed;
- TInt iMaxUnpagedMemSize; // Max unpaged memory size, 0 = no limits
-private:
- ObeyFileReader& iReader;
- TInt iMissingFiles;
- TRomNode* iLastExecutable;
- AreaSet iAreaSet;
-
- TRomBuilderEntry* iFirstFile;
- TRomBuilderEntry** iNextFilePtrPtr;
- TRomBuilderEntry* iCurrentFile;
- TRomBuilderEntry* iLastVariantFile;
- DllDataEntry* iFirstDllDataEntry;
- TBool iUpdatedMaxUnpagedMemSize; // ETure = iMaxUnpagedMemSize has been set
-
-public:
- CObeyFile(ObeyFileReader& aReader);
- ~CObeyFile();
- void Release();
- TInt ProcessKernelRom();
- TInt ProcessExtensionRom(MRomImage*& aKernelRom);
- TRomBuilderEntry *FirstFile();
- TRomBuilderEntry *NextFile();
- const AreaSet& SetArea() const ;
- DllDataEntry* GetFirstDllDataEntry() const;
- void SetFirstDllDataEntry(DllDataEntry* aDllDataEntry);
-
- int SkipToExtension();
- TText* ProcessCoreImage();
-
-private:
- TBool CheckHardwareVariants();
- TBool ProcessFile(TInt aAlign, enum EKeyword aKeyword);
- TBool ProcessRenaming(enum EKeyword aKeyword);
- TBool ProcessKeyword(enum EKeyword aKeyword);
- TBool ParsePatchDllData();
- void ProcessExtensionKeyword(enum EKeyword aKeyword);
- TInt ParseFileAttributes(TRomNode* aNode, TRomBuilderEntry* aFile);
- TInt ParseSection();
- TUint32 ParseVariant();
- TBool GotKeyVariables();
- TBool GotExtensionVariables(MRomImage*& aRom);
- TBool GetNextBitOfFileName(TText **epocEndPtr);
- TText *IsValidFilePath(TText *aPath);
- void AddFile(TRomBuilderEntry* aFile);
-
- // Area-related methods
- TBool CreateDefaultArea();
- TBool ParseAreaKeyword();
- TBool ParseAreaAttribute(const TText* aArg, TInt aLineNumber, const Area*& aArea);
- TBool AddAreaAndHandleError(const char* aName, TLinAddr aDestBaseAddr, TUint aLength, TInt aLineNumber = -1);
-
-public:
- CPatchDataProcessor* iPatchData;
- void SplitPatchDataStatement(StringVector& aPatchDataTokens);
- };
-
-
-inline const AreaSet& CObeyFile::SetArea() const
- {
- return iAreaSet;
- }
-
-#endif
+/*
+* Copyright (c) 1995-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:
+*
+*/
+
+
+#ifndef __R_OBEY_H__
+#define __R_OBEY_H__
+
+#define __REFERENCE_CAPABILITY_NAMES__
+
+#include <e32capability.h>
+#include <vector>
+#include <map>
+#include <fstream>
+using namespace std;
+
+#include "r_rom.h"
+#include "r_areaset.h"
+
+
+
+const TUint32 KNumWords=16;
+//
+const TInt KDefaultRomSize=0x400000;
+const TInt KDefaultRomLinearBase=0x50000000;
+const TInt KDefaultRomAlign=0x1000;
+const TUint32 KDefaultDataRunAddress = 0x400000;
+//
+typedef vector<string> StringVector ;
+
+
+enum EFileAttribute
+ {
+ EAttributeStackReserve,
+ EAttributeStack,
+ EAttributeReloc,
+ EAttributeCodeAlign,
+ EAttributeDataAlign,
+ EAttributeFixed,
+ EAttributeAtt,
+ EAttributePriority,
+ EAttributePatched,
+ EAttributeUid1,
+ EAttributeUid2,
+ EAttributeUid3,
+ EAttributeHeapMin,
+ EAttributeHeapMax,
+ EAttributeHidden,
+ EAttributeKeepIAT,
+ EAttributeArea,
+ EAttributeProcessSpecific,
+ EAttributeCapability,
+ EAttributePreferred,
+ EAttributeUnpaged,
+ EAttributePaged,
+ EAttributeUnpagedCode,
+ EAttributePagedCode,
+ EAttributeUnpagedData,
+ EAttributePagedData,
+ };
+enum EKeyword
+ {
+ EKeywordNone=0, // backwards compatibility, but now ignored
+ EKeywordFile,
+ EKeywordData,
+ EKeywordPrimary,
+ EKeywordSecondary,
+ EKeywordVariant,
+ EKeywordExtension,
+ EKeywordDevice,
+ EKeywordDll,
+ EKeywordFileCompress,
+ EKeywordFileUncompress,
+ EKeywordArea,
+ EKeywordAlign,
+ EKeywordUnicode,
+ EKeywordAscii,
+ EKeywordSingleKernel,
+ EKeywordMultiKernel,
+ EKeywordBootBinary,
+ EKeywordRomName,
+ EKeywordRomSize,
+ EKeywordRomLinearBase,
+ EKeywordRomAlign,
+ EKeywordRomChecksum,
+ EKeywordKernelDataAddress,
+ EKeywordKernelHeapMin,
+ EKeywordKernelHeapMax,
+ EKeywordDataAddress,
+ EKeywordDllDataTop,
+ EKeywordDefaultStackReserve,
+ EKeywordVersion,
+ EKeywordLanguages,
+ EKeywordHardware,
+ EKeywordRomNameOdd,
+ EKeywordRomNameEven,
+ EKeywordSRecordFileName,
+ EKeywordSRecordBase,
+ EKeywordTrace,
+ EKeywordKernelTrace,
+ EKeywordBTrace,
+ EKeywordBTraceMode,
+ EKeywordBTraceBuffer,
+ EKeywordCollapse,
+ EKeywordTime,
+ EKeywordSection,
+ EKeywordExtensionRom,
+ EKeywordKernelRomName,
+ EKeywordAlias,
+ EKeywordHide,
+ EKeywordRename,
+ EKeywordDebugPort,
+ EKeywordCompress,
+ EKeywordMemModel,
+ EKeywordNoWrapper,
+ EKeywordEpocWrapper,
+ EKeywordCoffWrapper,
+ EKeywordPlatSecEnforcement,
+ EKeywordPlatSecDiagnostics,
+ EKeywordPlatSecProcessIsolation,
+ EKeywordPlatSecEnforceSysBin,
+ EKeywordPlatSecDisabledCaps,
+ EKeywordPagingPolicy,
+ EKeywordCodePagingPolicy,
+ EKeywordDataPagingPolicy,
+ EKeywordPagingOverride,
+ EKeywordCodePagingOverride,
+ EKeywordDataPagingOverride,
+ EKeywordDemandPagingConfig,
+ EKeywordPagedRom,
+ EKeywordPatchDllData,
+ EKeywordExecutableCompressionMethodNone,
+ EKeywordExecutableCompressionMethodInflate,
+ EKeywordExecutableCompressionMethodBytePair,
+ EKeywordCoreImage,
+ EKeywordKernelConfig,
+ EKeywordMaxUnpagedMemSize,
+ EKeywordHardwareConfigRepositoryData ,
+ };
+enum TCollapseMode
+ {
+ ECollapseNone=0,
+ ECollapseImportThunksOnly=1,
+ ECollapseImportThunksAndVtables=2,
+ ECollapseAllChainBranches=3,
+ };
+
+struct ObeyFileKeyword
+ {
+ const char* iKeyword;
+ size_t iKeywordLength;
+ TInt iPass;
+ TInt iNumArgs; // -ve means >= number
+ enum EKeyword iKeywordEnum;
+ const char* iHelpText;
+ };
+
+struct FileAttributeKeyword
+ {
+ const char* iKeyword;
+ size_t iKeywordLength;
+ TInt iIsFileAttribute;
+ TInt iNumArgs;
+ enum EFileAttribute iAttributeEnum;
+ const char* iHelpText;
+ };
+class CObeyFile;
+class ObeyFileReader
+ {
+public:
+ ObeyFileReader(const char* aFileName);
+ ~ObeyFileReader();
+
+ static void KeywordHelp();
+
+ TBool Open();
+ void Mark();
+ void MarkNext();
+ void Rewind();
+
+ TInt NextLine(TInt aPass, enum EKeyword& aKeyword);
+ TInt NextAttribute(TInt& aIndex, TInt aHasFile, enum EFileAttribute& aKeyword, char*& aArg);
+
+ char* DupWord(TInt aIndex) const ; // allocate copy of nth word
+ TInt Count() const { return iNumWords;} // number of words on current line
+ const char* Word(TInt aIndex) const { return iWord[aIndex]; } // return nth word as char*
+ const char* Suffix() const { return iSuffix; } // return unmatched suffix of word[0]
+ TInt CurrentLine() const { return iCurrentLine;} // number of words on current line
+
+ TInt ProcessAlign(TInt& aAlign);
+ void ProcessLanguages(TInt64& aLanguageMask);
+ void ProcessTime(TInt64& aTime);
+
+ static void TimeNow(TInt64& aTime);
+private:
+ TInt ReadAndParseLine();
+ TInt Parse();
+ inline static TBool IsGap(char ch) {
+ return (ch==' ' || ch=='=' || ch=='\t');
+ }
+
+ static const ObeyFileKeyword iKeywords[];
+ static const FileAttributeKeyword iAttributeKeywords[];
+ static TInt64 iTimeNow;
+protected:
+ string iFileName;
+private:
+ TInt iCurrentLine;
+ StringVector iLines ;
+ TInt iNumWords;
+ char* iLine;
+ TInt iMarkLine ;
+
+ char iSuffix[80];
+ char* iWord[KNumWords];
+friend class CObeyFile;
+ };
+
+class CPatchDataProcessor;
+class DllDataEntry;
+
+class CObeyFile
+ {
+public:
+ char* iRomFileName;
+ char* iRomOddFileName;
+ char* iRomEvenFileName;
+ char* iSRecordFileName;
+ char* iBootFileName;
+ char* iKernelRomName;
+ TInt iRomSize;
+ TUint32 iRomLinearBase;
+ TUint32 iRomAlign;
+ TUint32 iKernDataRunAddress;
+ TUint32 iDataRunAddress;
+ TUint32 iKernelLimit;
+ TUint32 iKernHeapMin;
+ TUint32 iKernHeapMax;
+ TUint32 iSectionStart;
+ TInt iSectionPosition;
+ TVersion iVersion;
+ TUint32 iCheckSum;
+ TInt iNumberOfPeFiles;
+ TInt iNumberOfDataFiles;
+ TInt iNumberOfPrimaries;
+ TInt iNumberOfExtensions;
+ TInt iNumberOfVariants;
+ TInt iNumberOfDevices;
+ TInt iNumberOfHCRDataFiles ;
+ TUint iAllVariantsMask[256];
+ TRomBuilderEntry** iPrimaries;
+ TRomBuilderEntry** iVariants;
+ TRomBuilderEntry** iExtensions;
+ TRomBuilderEntry** iDevices;
+ TInt64 iLanguage;
+ TUint32 iHardware;
+ TInt64 iTime;
+ TMemModel iMemModel;
+ TInt iPageSize;
+ TInt iChunkSize;
+ TInt iVirtualAllocSize;
+ TKernelModel iKernelModel;
+ TInt iCollapseMode;
+ TUint32 iSRecordBase;
+ TInt iCurrentSectionNumber;
+ TInt iDefaultStackReserve;
+ TUint32 iTraceMask[KNumTraceMaskWords]; // Pass through to the kernel tracemask
+ TUint32 iInitialBTraceFilter[8];
+ TInt iInitialBTraceBuffer;
+ TInt iInitialBTraceMode;
+ TUint32 iDebugPort;
+ TBool iDebugPortParsed;
+ TRomNode* iRootDirectory;
+ TUint32 iDllDataTop;
+ TUint32 iKernelConfigFlags;
+ TBool iPagingPolicyParsed;
+ TBool iCodePagingPolicyParsed;
+ TBool iDataPagingPolicyParsed;
+ TBool iPagingOverrideParsed;
+ TBool iCodePagingOverrideParsed;
+ TBool iDataPagingOverrideParsed;
+ SCapabilitySet iPlatSecDisabledCaps;
+ TBool iPlatSecDisabledCapsParsed;
+ TInt iMaxUnpagedMemSize; // Max unpaged memory size, 0 = no limits
+private:
+ ObeyFileReader& iReader;
+ TInt iMissingFiles;
+ TRomNode* iLastExecutable;
+ AreaSet iAreaSet;
+
+ TRomBuilderEntry* iFirstFile;
+ TRomBuilderEntry** iNextFilePtrPtr;
+ TRomBuilderEntry* iCurrentFile;
+ TRomBuilderEntry* iLastVariantFile;
+ DllDataEntry* iFirstDllDataEntry;
+ TBool iUpdatedMaxUnpagedMemSize; // ETure = iMaxUnpagedMemSize has been set
+
+public:
+ CObeyFile(ObeyFileReader& aReader);
+ ~CObeyFile();
+ void Release();
+ TInt ProcessKernelRom();
+ TInt ProcessExtensionRom(MRomImage*& aKernelRom);
+ TRomBuilderEntry *FirstFile();
+ TRomBuilderEntry *NextFile();
+ const AreaSet& SetArea() const ;
+ DllDataEntry* GetFirstDllDataEntry() const;
+ void SetFirstDllDataEntry(DllDataEntry* aDllDataEntry);
+
+ int SkipToExtension();
+ char* ProcessCoreImage();
+ const char* GetFileName() const ;
+
+private:
+ TBool CheckHardwareVariants();
+ TBool ProcessFile(TInt aAlign, enum EKeyword aKeyword);
+ TBool ProcessRenaming(enum EKeyword aKeyword);
+ TBool ProcessKeyword(enum EKeyword aKeyword);
+ TBool ParsePatchDllData();
+ void ProcessExtensionKeyword(enum EKeyword aKeyword);
+ TInt ParseFileAttributes(TRomNode* aNode, TRomBuilderEntry* aFile);
+ TInt ParseSection();
+ TUint32 ParseVariant();
+ TBool GotKeyVariables();
+ TBool GotExtensionVariables(MRomImage*& aRom);
+ TBool GetNextBitOfFileName(char*& epocEndPtr);
+ const char* IsValidFilePath(const char* aPath);
+ void AddFile(TRomBuilderEntry* aFile);
+
+ // Area-related methods
+ TBool CreateDefaultArea();
+ TBool ParseAreaKeyword();
+ TBool ParseAreaAttribute(const char* aArg, TInt aLineNumber, const Area*& aArea);
+ TBool AddAreaAndHandleError(const char* aName, TLinAddr aDestBaseAddr, TUint aLength, TInt aLineNumber = -1);
+
+public:
+ CPatchDataProcessor* iPatchData;
+ void SplitPatchDataStatement(StringVector& aPatchDataTokens);
+ };
+
+
+inline const AreaSet& CObeyFile::SetArea() const {
+ return iAreaSet;
+}
+inline const char* CObeyFile::GetFileName() const {
+ return iReader.iFileName.c_str();
+}
+#endif