sysanadatacapture/piprofiler/piprofiler/plugins/GeneralsPlugin/inc/GppSamplerImpl.h
changeset 2 6a82cd05fb1e
parent 1 3ff3fecb12fe
--- a/sysanadatacapture/piprofiler/piprofiler/plugins/GeneralsPlugin/inc/GppSamplerImpl.h	Thu Feb 11 15:52:57 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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 PROFILER_GPP_SAMPLER_H
-#define PROFILER_GPP_SAMPLER_H
-
-#include "GeneralsConfig.h"
-
-#include <e32cmn.h>
-
-#include <piprofiler/ProfilerGenericClassesKrn.h>
-#include <piprofiler/ProfilerTraces.h>
-
-// for RPropertyRef
-#include <sproperty.h> 
-#include <e32cmn.h>
-
-/*
- *	
- *	GPP sampler definition
- *	
- */
-class GppSamplerImpl
-{
-public:
-
-	GppSamplerImpl();
-	~GppSamplerImpl();
-
-	TUint8* EncodeTag(TUint8* aPtr);
-	TUint8* EncodeInt(TUint8* aPtr,TInt aValue);
-	TUint8* EncodeUint(TUint8* aPtr,TUint aValue);
-	TUint8* EncodeText(TUint8* aPtr, const TDesC& aDes);
-
-	TUint8* EncodeName(TUint8* aPtr, DObject& aObject,TUint32 id);
-	TUint8* EncodeThread(TUint8* aPtr, DThread& aThread);
-
-	TBool	IsaTaskKnown(TUint8 task);
-	TUint8* EncodeIsaTask(TUint8* aPtr, TUint task);
-	TUint8* EncodeIsaName(TUint8* aPtr, TUint task,TBool process);
-	
-	TUint8* EncodeRepeat(TUint8* aPtr);
-
-	TInt	CreateFirstSample();
-	TInt	SampleImpl();
-
-    TInt    iGppSamplingPeriod;
-	TUint8	tempBuf[512];
-	TUint	iLastPc;
-	
-	TBool	iIsaSample;
-	TInt	knownIsaTasks[256];
-	TUint8	knownIsaTaskCount;
-	TInt*	isaOsTaskRunningAddr;
-	void	Reset();
-    TUint32 iSampleCount;
-	   
-	PROFILER_DEFINE_ISA_TASK_NAME_ARRAY
-
-private:
-	enum TState {EStop,ERunning,EStopping};
-
-	const TUint* iInterruptStack;
-	
-	TUint		iLastThread;
-	TUint		iRepeat;
-	TUint32 	iStartTime;
-	
-	RPropertyRef iIsaStartAddr;
-	RPropertyRef iIsaEndAddr;
-	RPropertyRef iIsaPluginStatus;
-	RPropertyRef iIsaOsTaskRunning;
-	TInt 		iIsaStatus;
-	TInt 		iIsaStart;
-	TInt 		iIsaEnd;
-};
-
-struct TProfilerGppSamplerData
-{
-//public:
-	TUint32		lastPcValue;
-	TUint32		sampleNumber;
-    TInt        samplingPeriod;
-};
-
-template <int BufferSize>
-class DProfilerGppSampler : public DProfilerGenericSampler<BufferSize>
-{
-public:
-	DProfilerGppSampler();
-	~DProfilerGppSampler();
-
-	struct TProfilerGppSamplerData* GetExportData();
-	void	Sample();
-	TInt	Reset(DProfilerSampleStream* aStream, TUint32 aSyncOffset);
-	TInt 	GetPeriod();
-	
-private:
-	GppSamplerImpl gppSamplerImpl;
-	struct TProfilerGppSamplerData exportData;
-
-};
-
-/*
- *	
- *	GPP sampler implementation
- *	
- */
-
-template <int BufferSize>
-DProfilerGppSampler<BufferSize>::DProfilerGppSampler() :
-	DProfilerGenericSampler<BufferSize>(PROFILER_GPP_SAMPLER_ID) 
-    {
-	LOGSTRING2("CProfilerGppSampler<%d>::CProfilerGppSampler",BufferSize);
-    }
-
-template <int BufferSize>
-DProfilerGppSampler<BufferSize>::~DProfilerGppSampler()
-    {
-	LOGSTRING2("CProfilerGppSampler<%d>::~CProfilerGppSampler",BufferSize);		
-    }
-
-template <int BufferSize>
-TInt DProfilerGppSampler<BufferSize>::Reset(DProfilerSampleStream* aStream, TUint32 aSyncOffset)
-        {
-	LOGSTRING2("CProfilerGppSampler<%d>::Reset - calling superclass reset",BufferSize);
-	DProfilerGenericSampler<BufferSize>::Reset(aStream, 0);
-	LOGSTRING2("CProfilerGppSampler<%d>::Reset - called superclass reset",BufferSize);
-
-	this->gppSamplerImpl.Reset();
-	
-	this->gppSamplerImpl.iGppSamplingPeriod = this->iSamplingPeriod;
-	this->gppSamplerImpl.iSampleCount = 0;
-	this->exportData.sampleNumber = 0;
-	this->exportData.lastPcValue = 0;
-    this->exportData.samplingPeriod = this->gppSamplerImpl.iGppSamplingPeriod;
-
-	TInt length = gppSamplerImpl.CreateFirstSample();
-	LOGSTRING3("CProfilerGPPSampler<%d>::Reset - got first sample, size %d",BufferSize,length);	
-	
-	this->iSampleBuffer->AddSample(gppSamplerImpl.tempBuf,length);
-
-	// check if sampling period > 1 ms
-	// NOTE: feature supported in Performance Investigator 2.01 and above
-	if(this->gppSamplerImpl.iGppSamplingPeriod > 1)
-	    {
-        // For Address/Thread (GPP) version 2.01 or above, the first word is the sampling period in milliseconds
-        TUint8* w = gppSamplerImpl.tempBuf;
-        
-        (*w++) = (this->gppSamplerImpl.iGppSamplingPeriod >> 24) & 0xFF;
-        (*w++) = (this->gppSamplerImpl.iGppSamplingPeriod >> 16) & 0xFF;
-        (*w++) = (this->gppSamplerImpl.iGppSamplingPeriod >>  8) & 0xFF;
-        (*w++) = (this->gppSamplerImpl.iGppSamplingPeriod) & 0xFF;
-        
-        this->iSampleBuffer->AddSample(gppSamplerImpl.tempBuf,4);
-	    }
-	
-	LOGSTRING2("CProfilerGPPSampler<%d>::Reset finished",BufferSize);
-	return KErrNone;
-    }
-
-template <int BufferSize>
-void DProfilerGppSampler<BufferSize>::Sample()
-    {
-	LOGSTRING2("CProfilerGppSampler<%d>::Sample",BufferSize);
-	
-	if(this->gppSamplerImpl.iSampleCount % 1000 == 0) 
-	    {
-		Kern::Printf(("PIPROF SAMPLE TICK, #%d"),exportData.sampleNumber);
-	    }
-	
-	TInt length = gppSamplerImpl.SampleImpl();
-
-    this->gppSamplerImpl.iSampleCount++;
-	this->exportData.sampleNumber += this->gppSamplerImpl.iGppSamplingPeriod;
-	this->exportData.lastPcValue = gppSamplerImpl.iLastPc;
-
-	if(length > 0)
-        {
-        this->iSampleBuffer->AddSample(gppSamplerImpl.tempBuf,length);
-        }
-
-	LOGSTRING3("CProfilerGppSampler<%d>::Sample - length %d",BufferSize,length);
-
-	return;
-    }
-
-
-template <int BufferSize>
-struct TProfilerGppSamplerData* DProfilerGppSampler<BufferSize>::GetExportData()
-    {
-	LOGSTRING2("CProfilerGppSampler<%d>::GetExportData",BufferSize);
-	return &(this->exportData);	
-    }
-
-template <int BufferSize>
-TInt DProfilerGppSampler<BufferSize>::GetPeriod()
-    {
-	return this->gppSamplerImpl.iGppSamplingPeriod;
-    }
-
-#endif