perfsrv/piprofiler/piprofiler_plat/inc/ProfilerGenericClassesKrn.h
changeset 62 1c2bb2fc7c87
parent 51 98307c651589
--- a/perfsrv/piprofiler/piprofiler_plat/inc/ProfilerGenericClassesKrn.h	Fri Oct 08 14:56:39 2010 +0300
+++ b/perfsrv/piprofiler/piprofiler_plat/inc/ProfilerGenericClassesKrn.h	Tue Oct 26 16:20:32 2010 +0300
@@ -19,71 +19,77 @@
 #ifndef PROFILERGENERICCLASSESKRN_H
 #define PROFILERGENERICCLASSESKRN_H
 
-	#include <piprofiler/ProfilerGenericClassesCommon.h>
-	#include <piprofiler/ProfilerTraces.h>
+    #include <piprofiler/ProfilerGenericClassesCommon.h>
+    #include <piprofiler/ProfilerTraces.h>
 
-	#include <e32cmn.h>
+    #include <e32cmn.h>
 
-	#define PROFILER_KERNEL_MODE
+    #define PROFILER_KERNEL_MODE
 
 #ifdef PROFILER_KERNEL_MODE
+
+#ifdef __SMP__
+static TSpinLock BufferStateSpinLock = TSpinLock(TSpinLock::EOrderGenericIrqLow3);
+static TSpinLock WriteSpinLock = TSpinLock(TSpinLock::EOrderGenericIrqLow3);
+#endif
+
 class DProfilerSampleBuffer;
 
 class DProfilerSampleStream
     {
 public:
-		DProfilerSampleStream();
-		~DProfilerSampleStream();
+        DProfilerSampleStream();
+        ~DProfilerSampleStream();
 
-		void InsertCurrentClient(DThread* aClient);
-		void AddSampleBuffer(TBapBuf* aBuffer,TRequestStatus* aStatus);
-		void ReleaseIfPending();
+        void InsertCurrentClient(DThread* aClient);
+        void AddSampleBuffer(TBapBuf* aBuffer,TRequestStatus* aStatus);
+        void ReleaseIfPending();
 
-		void AddSamples(DProfilerSampleBuffer& aBuffer, TInt aSamplerId);
-		TInt EndSampling(DProfilerSampleBuffer& aBuffer,TInt aSamplerId);
+        void AddSamples(DProfilerSampleBuffer& aBuffer, TInt aSamplerId);
+        TInt EndSampling(DProfilerSampleBuffer& aBuffer,TInt aSamplerId);
 
-		void PerformCopy(TUint8 aSamplerId,TUint8* aSrc,TPtr8* dst,TInt aOffset,TInt aAmount);
+        void PerformCopy(TUint8 aSamplerId,TUint8* aSrc,TPtr8* dst,TInt aOffset,TInt aAmount);
 
 private:
-		TBapBuf*			iCurrentBuffer;
-		TRequestStatus*		iPendingRequest;
-		DThread*			iClient;
-		TInt				iAddingSamples;
+        TBapBuf*            iCurrentBuffer;
+        TRequestStatus*     iPendingRequest;
+        DThread*            iClient;
+        TInt                iAddingSamples;
     };
 
 class DProfilerSampleBuffer : public DBase
     {
-		friend class DProfilerSampleStream;
+        friend class DProfilerSampleStream;
 public:
 
-			enum ProfilerBufferStatus 
-			    {
-				BufferOk,
-				BufferCopyAsap,
-				BufferBeingCopied,
-				BufferFull,
-				BufferDataEnd
-			    };
+            enum ProfilerBufferStatus 
+                {
+                BufferOk,
+                BufferCopyAsap,
+                BufferBeingCopied,
+                BufferFull,
+                BufferDataEnd
+                };
 
-			DProfilerSampleBuffer(TUint8* aBuffer, TUint8* aDblBuffer, TUint32 aSize);
-			~DProfilerSampleBuffer();	
-			TInt	AddSample(TUint8* aSample, TUint32 aLength);
-			TUint32 GetBufferStatus();
-			void	ClearBuffer();
-			void	EndSampling();
-			void	DataCopied();
+            DProfilerSampleBuffer(TUint8* aBuffer, TUint8* aDblBuffer, TUint32 aSize);
+            ~DProfilerSampleBuffer();   
+            TInt    AddSample(TUint8* aSample, TUint32 aLength);
+            TUint32 GetBufferStatus();
+            void    ClearBuffer();
+            void    EndSampling();
+            void    DataCopied();
 
-			TUint32 iBufferStatus;
 private:
-			TUint32 iBytesWritten;
-			TUint32 iDblBytesWritten;
-			TUint32 iDblBytesRead;
+            TUint32 iBufferStatus;
+            TUint32 iBytesWritten;
+            TUint32 iDblBytesWritten;
+            TUint32 iDblBytesRead;
 
-			TUint32 iBufferDataSize;
-			TUint32 iBufferRealSize;
+            TUint32 iBufferDataSize;
+            TUint32 iBufferRealSize;
 
-			TProfilerSampleBufStruct* iDblBufStruct;
-			TProfilerSampleBufStruct* iBufStruct;
+            TProfilerSampleBufStruct* iDblBufStruct;
+            TProfilerSampleBufStruct* iBufStruct;
     };
 
 #endif
@@ -91,44 +97,44 @@
 
  
 /*
- *	
- *	Abstract class CProfilerSamplerBase definition
- *	
+ *  
+ *  Abstract class CProfilerSamplerBase definition
+ *  
  */
 
 #ifdef PROFILER_KERNEL_MODE
 class DProfilerSamplerBase : public DBase
     {
 public:
-	DProfilerSamplerBase();
-			virtual					~DProfilerSamplerBase();
+    DProfilerSamplerBase();
+            virtual                 ~DProfilerSamplerBase();
 
-			virtual	TInt			Initialise() = 0;
-			virtual	void			Sample() = 0;
-			virtual TBool			PostSampleNeeded() = 0;
-			virtual TInt			PostSample() = 0;
-			virtual TInt			EndSampling() = 0;
+            virtual TInt            Initialise() = 0;
+            virtual void            Sample(TAny* aPtr) = 0;
+            virtual TBool           PostSampleNeeded() = 0;
+            virtual TInt            PostSample() = 0;
+            virtual TInt            EndSampling() = 0;
 
-			virtual TInt			Reset(DProfilerSampleStream* aStream = 0, TUint32 aSyncOffset = 0) = 0;
+            virtual TInt            Reset(DProfilerSampleStream* aStream = 0, TUint32 aSyncOffset = 0) = 0;
 
-			virtual void			SetEnabledFlag(TBool aFlag) = 0;
-			virtual TBool			GetEnabledFlag() = 0;
-			virtual void			SetOutputCombination(TInt aSettings) = 0;
-			virtual void 			SetSamplingPeriod(TInt aSettings) = 0;
-			virtual void			SetAdditionalSettings(TInt aSettings) = 0;
-			virtual void			SetAdditionalSettings2(TInt aSettings) = 0;
-			virtual void			SetAdditionalSettings3(TInt aSettings) = 0;
-			virtual void			SetAdditionalSettings4(TInt aSettings) = 0;
+            virtual void            SetEnabledFlag(TBool aFlag) = 0;
+            virtual TBool           GetEnabledFlag() = 0;
+            virtual void            SetOutputCombination(TInt aSettings) = 0;
+            virtual void            SetSamplingPeriod(TInt aSettings) = 0;
+            virtual void            SetAdditionalSettings(TInt aSettings) = 0;
+            virtual void            SetAdditionalSettings2(TInt aSettings) = 0;
+            virtual void            SetAdditionalSettings3(TInt aSettings) = 0;
+            virtual void            SetAdditionalSettings4(TInt aSettings) = 0;
 
-			TInt					iSamplerId;
-			TInt					iOutputCombination;
-			TBool					iEnabled;
+            TInt                    iSamplerId;
+            TInt                    iOutputCombination;
+            TBool                   iEnabled;
     };
 
 /*
- *	
- *	Template abstract class CProfilerGenericSampler definition
- *	
+ *  
+ *  Template abstract class CProfilerGenericSampler definition
+ *  
  */
 
 // size parameter given defines the explicit buffer size in bytes for this sampler
@@ -136,89 +142,90 @@
 class DProfilerGenericSampler : public DProfilerSamplerBase
     {
 public:
-			DProfilerGenericSampler(TInt aSamplerId);
-			virtual					~DProfilerGenericSampler();
+            DProfilerGenericSampler(TInt aSamplerId);
+            virtual                 ~DProfilerGenericSampler();
 
-			TInt					Initialise();
-			virtual	void			Sample() = 0;
-			TBool					PostSampleNeeded();
-			TInt					PostSample();
-			TInt					EndSampling();
-			virtual TInt			Reset(DProfilerSampleStream* aStream = 0, TUint32 aSyncOffset = 0);
+            TInt                    Initialise();
+            virtual void            Sample(TAny* aPtr) = 0;
+            TBool                   PostSampleNeeded();
+            TInt                    PostSample();
+            TInt                    EndSampling();
+            virtual TInt            Reset(DProfilerSampleStream* aStream = 0, TUint32 aSyncOffset = 0);
 
 
-			void					SetEnabledFlag(TBool aFlag);
-			TBool					GetEnabledFlag();
-			void					SetOutputCombination(TInt aComb);
-			void 					SetSamplingPeriod(TInt aSettings);
-			void					SetAdditionalSettings(TInt aSettings);
-			void					SetAdditionalSettings2(TInt aSettings);
-			void					SetAdditionalSettings3(TInt aSettings);
-			void					SetAdditionalSettings4(TInt aSettings);
+            void                    SetEnabledFlag(TBool aFlag);
+            TBool                   GetEnabledFlag();
+            void                    SetOutputCombination(TInt aComb);
+            void                    SetSamplingPeriod(TInt aSettings);
+            void                    SetAdditionalSettings(TInt aSettings);
+            void                    SetAdditionalSettings2(TInt aSettings);
+            void                    SetAdditionalSettings3(TInt aSettings);
+            void                    SetAdditionalSettings4(TInt aSettings);
 
-			DProfilerSampleBuffer*	iSampleBuffer;
-			DProfilerSampleStream*	iStream;
+            DProfilerSampleBuffer*  iSampleBuffer;
+            DProfilerSampleStream*  iStream;
 
-			// for right alignment
-			TUint8					iBuffer[BufferSize+4];
-			TUint8					iDblBuffer[BufferSize+4];
-			
-			TInt					iSamplingPeriod;
-			TInt					iAdditionalSettings;
-			TInt					iAdditionalSettings2;
-			TInt					iAdditionalSettings3;
-			TInt					iAdditionalSettings4;
+            // for right alignment
+            TUint8                  iBuffer[BufferSize+4];
+            TUint8                  iDblBuffer[BufferSize+4];
+            
+            TInt                    iSamplingPeriod;
+            TInt                    iAdditionalSettings;
+            TInt                    iAdditionalSettings2;
+            TInt                    iAdditionalSettings3;
+            TInt                    iAdditionalSettings4;
     };
 
 /*
- *	
- *	Template abstract class CProfilerGenericSampler implementation
+ *  
+ *  Template abstract class CProfilerGenericSampler implementation
  *
  */
 
 template <int BufferSize>
 DProfilerGenericSampler<BufferSize>::DProfilerGenericSampler(TInt aSamplerId)
     {
-	iSamplerId = aSamplerId;
-	iEnabled = false;
-	iSampleBuffer = 0;
-	iAdditionalSettings = 0;
-	iAdditionalSettings2 = 0;
+    iSamplerId = aSamplerId;
+    iEnabled = false;
+    iSampleBuffer = 0;
+    iAdditionalSettings = 0;
+    iAdditionalSettings2 = 0;
     iAdditionalSettings3 = 0;
     iAdditionalSettings4 = 0;
-	iStream = 0;
-	Initialise();
+    iStream = 0;
+    Initialise();
     }
 
 template <int BufferSize> 
 DProfilerGenericSampler<BufferSize>::~DProfilerGenericSampler()
     {
-	LOGSTRING2("CProfilerGenericSampler<%d>::CProfilerGenericSampler",BufferSize);	
-	
-	if(iSampleBuffer != 0)
-		delete iSampleBuffer;
-
+    LOGSTRING2("DProfilerGenericSampler<%d>::CProfilerGenericSampler",BufferSize);  
+    
+    if(iSampleBuffer != 0)
+        {
+        delete iSampleBuffer;
+        }
     }
  
 template <int BufferSize> 
 TInt DProfilerGenericSampler<BufferSize>::Initialise()
     {
-	LOGSTRING2("CProfilerGenericSampler<%d>::Initialise - chunk option",BufferSize);
+    LOGSTRING2("DProfilerGenericSampler<%d>::Initialise - chunk option",BufferSize);
 
-	// stream is not used in chunk mode
-	iStream = 0;
+    // stream is not used in chunk mode
+    iStream = 0;
 
-	// create the sample buffer object with the buffers
-	if(iSampleBuffer == 0)
-	    {
-	    iSampleBuffer = new DProfilerSampleBuffer(iBuffer,iDblBuffer,BufferSize);
+    // create the sample buffer object with the buffers
+    if(iSampleBuffer == 0)
+        {
+        iSampleBuffer = new DProfilerSampleBuffer(iBuffer,iDblBuffer,BufferSize);
         }
-	else
-	   {
-		LOGSTRING2("CProfilerGenericSampler<%d>::Initialise - ERROR 1",BufferSize);
+    else
+        {
+        LOGSTRING2("DProfilerGenericSampler<%d>::Initialise - ERROR 1",BufferSize);
         }
 
-	return KErrNone;
+    return KErrNone;
     }
 
 
@@ -226,73 +233,75 @@
 template <int BufferSize> 
 TInt DProfilerGenericSampler<BufferSize>::Reset(DProfilerSampleStream* aStream, TUint32 aSyncOffset)
     {
-	LOGSTRING4("CProfilerGenericSampler<%d>::Reset %d, sync offset %d",BufferSize,aStream,aSyncOffset);
-	// reset the sample buffer and resolve the chunk again
+    LOGSTRING4("DProfilerGenericSampler<%d>::Reset %d, sync offset %d",BufferSize,aStream,aSyncOffset);
+    // reset the sample buffer and resolve the chunk again
 
-	// CURRENT VERSION SUPPORTS ONLY STREAM MODE!
-	LOGSTRING2("CProfilerGenericSampler<%d>::Reset - stream option",BufferSize);
+    // CURRENT VERSION SUPPORTS ONLY STREAM MODE!
+    LOGSTRING2("DProfilerGenericSampler<%d>::Reset - stream option",BufferSize);
 
-	// initialise the sampler with the stream option
-	iStream = aStream;
+    // initialise the sampler with the stream option
+    iStream = aStream;
 
-	// clear the sample buffer
-	if(iSampleBuffer != 0)
-	    {
-	    iSampleBuffer->ClearBuffer();
+    // clear the sample buffer
+    if(iSampleBuffer != 0)
+        {
+        iSampleBuffer->ClearBuffer();
         }
-	else
-	    {
-		LOGSTRING2("CProfilerGenericSampler<%d>::Initialise - ERROR no buffer",BufferSize);
+    else
+        {
+        LOGSTRING2("DProfilerGenericSampler<%d>::Initialise - ERROR no buffer",BufferSize);
         }
 
-	return KErrNone;
+    return KErrNone;
 
     }
 
 template <int BufferSize> 
 TBool DProfilerGenericSampler<BufferSize>::PostSampleNeeded()
     {
-	LOGSTRING4("CProfilerGenericSampler<%d>::PostSampleNeeded - ID %d, state %d",iSamplerId,BufferSize,iSampleBuffer->GetBufferStatus());
+    LOGSTRING4("DProfilerGenericSampler<%d>::PostSampleNeeded - ID %d, state %d",BufferSize ,iSamplerId ,iSampleBuffer->GetBufferStatus());
 
-	TUint32 status = iSampleBuffer->iBufferStatus;
+    TUint32 status(iSampleBuffer->GetBufferStatus());
 
-	if(status == DProfilerSampleBuffer::BufferCopyAsap || status == DProfilerSampleBuffer::BufferFull)
-	    {
-		return true;
+    if(status == DProfilerSampleBuffer::BufferCopyAsap || status == DProfilerSampleBuffer::BufferFull)
+        {
+        return true;
         }
-	
-	return false;
+    
+    return false;
     }
 
 
 template <int BufferSize> 
 TInt DProfilerGenericSampler<BufferSize>::PostSample()
     {
-	LOGSTRING4("CProfilerGenericSampler<%d>::PostSample - ID %d, state %d",iSamplerId,BufferSize,iSampleBuffer->GetBufferStatus());
+    LOGSTRING4("DProfilerGenericSampler<%d>::PostSample - ID %d, state %d",BufferSize,iSamplerId,iSampleBuffer->GetBufferStatus());
 
-	TUint32 status = iSampleBuffer->iBufferStatus;
+    TUint32 status(iSampleBuffer->GetBufferStatus());
 
-	if(status == DProfilerSampleBuffer::BufferCopyAsap || status == DProfilerSampleBuffer::BufferFull)
-	    {
+    if(status == DProfilerSampleBuffer::BufferCopyAsap || status == DProfilerSampleBuffer::BufferFull)
+        {
         // write data to the stream
-	    iStream->AddSamples(*iSampleBuffer,iSamplerId);
-		}
-	
-	return KErrNone;
+        iStream->AddSamples(*iSampleBuffer,iSamplerId);
+        }
+    
+    return KErrNone;
     }
 
 template <int BufferSize>
 TInt DProfilerGenericSampler<BufferSize>::EndSampling()
     {
-	LOGSTRING3("CProfilerGenericSampler<%d>::EndSampling, ID %d",BufferSize,iSamplerId);
+    LOGSTRING3("DProfilerGenericSampler<%d>::EndSampling, ID %d",BufferSize,iSamplerId);
 
     // only if write to stream option is selected
     if(iStream->EndSampling(*iSampleBuffer,iSamplerId) == 0)
         {
+        LOGSTRING3("DProfilerGenericSampler<%d>::EndSampling, ID %d - ok",BufferSize,iSamplerId);
         return KErrNone;
         }
     else 
         {
+        LOGSTRING3("DProfilerGenericSampler<%d>::EndSampling, ID %d - still data to copy",BufferSize,iSamplerId);
         // there is still data to copy
         return KErrNotReady;
         }
@@ -301,117 +310,117 @@
 template <int BufferSize>
 void DProfilerGenericSampler<BufferSize>::SetEnabledFlag(TBool aFlag)
     {
-	LOGSTRING2("CProfilerGenericSampler<%d>::SetEnabledFlag",BufferSize);
-	iEnabled = aFlag;
+    LOGSTRING2("CProfilerGenericSampler<%d>::SetEnabledFlag",BufferSize);
+    iEnabled = aFlag;
     }
 
 template <int BufferSize>
 TBool DProfilerGenericSampler<BufferSize>::GetEnabledFlag()
     {
-	LOGSTRING2("CProfilerGenericSampler<%d>::GetEnabledFlag",BufferSize);
-	return iEnabled;
+    LOGSTRING2("CProfilerGenericSampler<%d>::GetEnabledFlag",BufferSize);
+    return iEnabled;
     }
 
 template <int BufferSize>
 void DProfilerGenericSampler<BufferSize>::SetOutputCombination(TInt aComb)
     {
-	LOGSTRING2("CProfilerGenericSampler<%d>::SetOutputCombination",BufferSize);
-	iOutputCombination = aComb;
+    LOGSTRING2("CProfilerGenericSampler<%d>::SetOutputCombination",BufferSize);
+    iOutputCombination = aComb;
     }
 
 template <int BufferSize>
 void DProfilerGenericSampler<BufferSize>::SetAdditionalSettings(TInt aSettings)
     {
-	LOGSTRING3("CProfilerGenericSampler<%d>::SetAdditionalSettings to 0x%x",BufferSize,aSettings);
-	iAdditionalSettings = aSettings;
+    LOGSTRING3("CProfilerGenericSampler<%d>::SetAdditionalSettings to 0x%x",BufferSize,aSettings);
+    iAdditionalSettings = aSettings;
     }
 
 template <int BufferSize>
 void DProfilerGenericSampler<BufferSize>::SetAdditionalSettings2(TInt aSettings)
     {
-	LOGSTRING3("CProfilerGenericSampler<%d>::SetAdditionalSettings2 to 0x%x",BufferSize,aSettings);
-	iAdditionalSettings2 = aSettings;
+    LOGSTRING3("CProfilerGenericSampler<%d>::SetAdditionalSettings2 to 0x%x",BufferSize,aSettings);
+    iAdditionalSettings2 = aSettings;
     }
 
 template <int BufferSize>
 void DProfilerGenericSampler<BufferSize>::SetAdditionalSettings3(TInt aSettings)
     {
-	LOGSTRING3("CProfilerGenericSampler<%d>::SetAdditionalSettings3 to 0x%x",BufferSize,aSettings);
-	iAdditionalSettings3 = aSettings;
+    LOGSTRING3("CProfilerGenericSampler<%d>::SetAdditionalSettings3 to 0x%x",BufferSize,aSettings);
+    iAdditionalSettings3 = aSettings;
     }
 
 template <int BufferSize>
 void DProfilerGenericSampler<BufferSize>::SetAdditionalSettings4(TInt aSettings)
     {
-	LOGSTRING3("CProfilerGenericSampler<%d>::SetAdditionalSettings4 to 0x%x",BufferSize,aSettings);
-	iAdditionalSettings4 = aSettings;
+    LOGSTRING3("CProfilerGenericSampler<%d>::SetAdditionalSettings4 to 0x%x",BufferSize,aSettings);
+    iAdditionalSettings4 = aSettings;
     }
 
 template <int BufferSize>
 void DProfilerGenericSampler<BufferSize>::SetSamplingPeriod(TInt aSettings)
     {
-	LOGSTRING3("CProfilerGenericSampler<%d>::SetSamplingPeriod to 0x%x",BufferSize,aSettings);
-	iSamplingPeriod = aSettings;
+    LOGSTRING3("CProfilerGenericSampler<%d>::SetSamplingPeriod to 0x%x",BufferSize,aSettings);
+    iSamplingPeriod = aSettings;
     }
 
 /*
- *	
- *	Just a test class that is derived from CProfilerGenericSampler
- *	
+ *  
+ *  Just a test class that is derived from CProfilerGenericSampler
+ *  
  */
 
 template <int BufferSize>
 class DProfilerExampleSampler : public DProfilerGenericSampler<BufferSize>
     {
 public:
-	TUint32 iSampleNumber;
+    TUint32 iSampleNumber;
 
-	DProfilerExampleSampler(TInt aSamplerId);
-	~DProfilerExampleSampler();
+    DProfilerExampleSampler(TInt aSamplerId);
+    ~DProfilerExampleSampler();
 
-	void Sample();
-	void Sample(TInt aCount, TInt aLastPc);
+    void Sample();
+    void Sample(TInt aCount, TInt aLastPc);
     };
 
 
 /*
- *	
- *	Just a test class that is derived from CProfilerGenericSampler
- *	
+ *  
+ *  Just a test class that is derived from CProfilerGenericSampler
+ *  
  */
 
 template <int BufferSize>
 DProfilerExampleSampler<BufferSize>::DProfilerExampleSampler(TInt aSamplerId) :
-	DProfilerGenericSampler<BufferSize>(aSamplerId) 
+    DProfilerGenericSampler<BufferSize>(aSamplerId) 
     {
     iSampleNumber = 0;
-	LOGSTRING2("CProfilerExampleSampler<%d>::CProfilerExampleSampler",BufferSize);	
+    LOGSTRING2("CProfilerExampleSampler<%d>::CProfilerExampleSampler",BufferSize);  
     }
 
 template <int BufferSize>
 void DProfilerExampleSampler<BufferSize>::Sample()
     {
-	LOGSTRING2("CProfilerExampleSampler<%d>::Sample",BufferSize);
-	TBuf8<20>* testiBuf = new TBuf8<20>;
+    LOGSTRING2("CProfilerExampleSampler<%d>::Sample",BufferSize);
+    TBuf8<20>* testiBuf = new TBuf8<20>;
 
-	testiBuf->AppendNum((TInt)iSampleNumber);
-	iSampleNumber++;
+    testiBuf->AppendNum((TInt)iSampleNumber);
+    iSampleNumber++;
 
-	this->iSampleBuffer->AddSample((TUint8*)testiBuf->Ptr(),testiBuf->Length());
-	delete testiBuf;
-	return;
+    this->iSampleBuffer->AddSample((TUint8*)testiBuf->Ptr(),testiBuf->Length());
+    delete testiBuf;
+    return;
     }
 
 template <int BufferSize>
 void DProfilerExampleSampler<BufferSize>::Sample(TInt aCount, TInt aLastPc)
     {
-	return;
+    return;
     }
 
 template <int BufferSize>
 DProfilerExampleSampler<BufferSize>::~DProfilerExampleSampler()
     {
-	LOGSTRING2("CProfilerExampleSampler<%d>::~CProfilerExampleSampler",BufferSize);		
+    LOGSTRING2("CProfilerExampleSampler<%d>::~CProfilerExampleSampler",BufferSize);     
     }
 
 #include <piprofiler/ProfilerGenericClassesKrn.inl>