diff -r 000000000000 -r a41df078684a kerneltest/e32utils/analyse/analyse.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/analyse/analyse.h Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,113 @@ +// Copyright (c) 1998-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 __ANALYSE__ +#define __ANALYSE__ + +#ifndef __MSVCDOTNET__ +#pragma warning(push, 3) // cannot compile MSVC's STL at warning level 4 +#pragma warning(disable: 4786 4710 4530) +#endif //__MSVCDOTNET__ + +int const MajorVersion=2; +int const MinorVersion=0; +int const Build=0; + +#include + +#ifdef __MSVCDOTNET__ +#include +using namespace std; +#else //!__MSVCDOTNET__ +#include +class ostream; +class istream; +#endif //__MSVCDOTNET__ + +class Sampler; +class CodeSpace; +class SymbolFile; +class NonXIP; + +class Analyse + { +public: + enum TAction {EProfile, ETrace, EActivity}; + enum TFormat {EPercent, ESamples, EExcel}; + enum TPartition {EDefault, EDll, EFunction, EBuckets, ESize}; + enum + { + ENull = 0x0001, + EAddress = 0x0002, + EZeros = 0x0004, + ENoOther = 0x0008, + ETotalOnly = 0x0010, + ERange = 0x0020 + }; + enum TCfgFileErrors {EOk, ENoCfgFile, EErrorCfgFile}; +public: + static int ProcessCommandLine(int argc,char ** argv); + static int ProcessCfgFile(const char* aCfgFileName); + static void ExplainUsage(); + static void ExplainConfigUsage(); + static void Run(); +// + static inline bool Option(int type) + {return (sOptions & type) != 0;} + static inline TAction Action() + {return sAction;} + static inline TFormat Format() + {return sFormat;} + static inline TPartition Partition() + {return sPartition;} +// + static void Abort(); + static void Abort(char const* message); + static void Corrupt(char const* message); + static ostream& Error(); + static ostream& Warning(); +// + static bool Match(const char* aString, const char* aMatch); +private: + static void Information(); + static CodeSpace* CreateCodeSpace(SymbolFile* aSymbols, NonXIP *aNonXIP); + static Sampler* CreateSampler(SymbolFile* aSymbols, NonXIP *aNonXIP); +private: + static TAction sAction; + static TFormat sFormat; + static TPartition sPartition; + static int sOptions; + static std::vector sTraces; + static const char* sRomFile; + static const char* sDll; + static const char* sFunction; + static unsigned sBase; + static unsigned sLim; + static unsigned sBuckets; + static unsigned sBucketSize; + static double sCutOff; + static unsigned sBeginSample; + static unsigned sEndSample; + + static std::string iRomFile; + static std::string iDll; + static std::string iFunction; + static std::string iThread; + static std::vector iTraces; +public: + static const char* sThread; + }; + +#endif