diff -r 43365a9b78a3 -r d8d70de2bd36 kerneltest/e32test/resmanus/d_resmanusbtrace.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/resmanus/d_resmanusbtrace.cpp Wed Aug 18 11:08:29 2010 +0300 @@ -0,0 +1,351 @@ +// Copyright (c) 2010 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: +// e32test\resmanus\d_resmanusbtrace.cpp +// +// + +#include +#include +#include +#include +#include +#include "d_resmanusbtraceconst.h" +#include "d_resmanusbtrace.h" + +class DTestFactory : public DLogicalDevice +// +// Test LDD factory +// + { +public: + DTestFactory(); + virtual TInt Install(); //overriding pure virtual + virtual void GetCaps(TDes8& aDes) const; //overriding pure virtual + virtual TInt Create(DLogicalChannelBase*& aChannel); //overriding pure virtual + }; + +class DTest1 : public DLogicalChannelBase +// +// Test logical channel +// + { +public: + virtual ~DTest1(); +protected: + virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer); + virtual TInt Request(TInt aReqNo, TAny* a1, TAny* a2); + +private: + TInt DoSendLog(TLogInfo* aInfo); + TInt ClientHandle() { return KClientHandle; } + }; + + + +DECLARE_STANDARD_LDD() + { + return new DTestFactory; + } + +// +// Constructor +// +DTestFactory::DTestFactory() + { + + } + +TInt DTestFactory::Create(DLogicalChannelBase*& aChannel) + { +// +// Create new channel +// + aChannel=new DTest1; + return aChannel?KErrNone:KErrNoMemory; + } + +TInt DTestFactory::Install() +// +// Install the LDD - overriding pure virtual +// + { + return SetName(&KLddName); + } + +void DTestFactory::GetCaps(TDes8& /*aDes*/) const +// +// Get capabilities - overriding pure virtual +// + { + } + +TInt DTest1::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& /*aVer*/) +// +// Create channel +// + { + return KErrNone; + } + +DTest1::~DTest1() +// +// Destructor +// + { + } + +TInt DTest1::Request(TInt aReqNo, TAny* a1, TAny* /*a2*/) + { + + // 'Control' functions... + switch(aReqNo) + { + // DoControl + case RLddTest1::ECONTROL_SENDLOG: + TLogInfo info; + DoSendLog(&info); + Kern::ThreadRawWrite(&Kern::CurrentThread(), a1, &info, sizeof(info)); + break; + } + + return KErrNone; + } + +class TestResource + { +public: + TestResource(const TDesC8& aName, TInt aDefaultLevel) + { + iName = (HBuf8*)&aName; + iDefaultLevel = aDefaultLevel; + } + HBuf* iName; + TInt iDefaultLevel; + TInt iResourceId; + }; + +struct TestClient + { + TDes8* iName; + TInt iClientId; + }; + +struct TestCallback + { + TInt iResourceId; + TInt iClientId; + }; + +struct TestNotification + { + TestCallback iCallback; + }; + +class TestRequest + { +public: + TInt ResourceId() {return iResourceId;} + TInt ClientId() {return iClientId;} + TInt Level() {return iLevel;} + TInt iResourceId; + TInt iClientId; + TInt iLevel; + }; + +TInt DTest1::DoSendLog(TLogInfo* aInfo) + { + TInt r = KErrNoMemory; + + TInt iClient = (TInt) KClient; + TBuf<80> Buffer; + TDes8* iUserNameUsed = &Buffer; + Buffer.Append(KCLIENTNAME); + Kern::Printf("PRM_US_OPEN_CHANNEL_START_TRACE"); + PRM_US_OPEN_CHANNEL_START_TRACE + + Kern::Printf("PRM_US_OPEN_CHANNEL_END_TRACE %x", (TInt)ClientHandle()); + PRM_US_OPEN_CHANNEL_END_TRACE + + TUint8 stateRes[3] = {KStatsRes1, KStatsRes2, KStatsRes3}; + Kern::Printf("PRM_US_REGISTER_CLIENT_START_TRACE"); + PRM_US_REGISTER_CLIENT_START_TRACE + + Kern::Printf("PRM_US_REGISTER_CLIENT_END_TRACE"); + PRM_US_REGISTER_CLIENT_END_TRACE + + Kern::Printf("PRM_US_DEREGISTER_CLIENT_START_TRACE"); + PRM_US_DEREGISTER_CLIENT_START_TRACE + + Kern::Printf("PRM_US_DEREGISTER_CLIENT_END_TRACE"); + PRM_US_DEREGISTER_CLIENT_END_TRACE + + TUint resourceId = KResourceId; + Kern::Printf("PRM_US_GET_RESOURCE_STATE_START_TRACE"); + PRM_US_GET_RESOURCE_STATE_START_TRACE + + TUint aResourceId = KResourceId; + TUint aLevel = KLevel; + TUint aClient = KClient; + TUint aResult = KResult; + Kern::Printf("PRM_US_GET_RESOURCE_STATE_END_TRACE"); + PRM_US_GET_RESOURCE_STATE_END_TRACE + + TUint newState = KLevel; + Kern::Printf("PRM_US_SET_RESOURCE_STATE_START_TRACE"); + PRM_US_SET_RESOURCE_STATE_START_TRACE + + Kern::Printf("PRM_US_SET_RESOURCE_STATE_END_TRACE"); + PRM_US_SET_RESOURCE_STATE_END_TRACE + + Kern::Printf("PRM_US_CANCEL_GET_RESOURCE_STATE_START_TRACE"); + PRM_US_CANCEL_GET_RESOURCE_STATE_START_TRACE + + Kern::Printf("PRM_US_CANCEL_GET_RESOURCE_STATE_END_TRACE"); + PRM_US_CANCEL_GET_RESOURCE_STATE_END_TRACE + + Kern::Printf("PRM_US_CANCEL_SET_RESOURCE_STATE_START_TRACE"); + PRM_US_CANCEL_SET_RESOURCE_STATE_START_TRACE + + Kern::Printf("PRM_US_CANCEL_SET_RESOURCE_STATE_END_TRACE"); + PRM_US_CANCEL_SET_RESOURCE_STATE_END_TRACE + + TPowerResourceInfoV01 ResourceInfo; + TPowerResourceInfoV01* pResInfo = &ResourceInfo; + TestResource Resource(KRESOURCENAME, KDefaultLevel); + TestResource* pR = &Resource; + pResInfo->iMinLevel = KMinLevel; + pResInfo->iMaxLevel = KMaxLevel; + pResInfo->iDefaultLevel = KDefaultLevel; + TUint resCount = KResCount; + Kern::Printf("PRM_REGISTER_RESOURCE_TRACE"); + PRM_REGISTER_RESOURCE_TRACE + + TUint aClientId = KClientId; + TBuf8<80> ClientName(KCLIENTNAME); + SPowerResourceClient ResourceClient; + SPowerResourceClient* pC = &ResourceClient; + pC->iName = &ClientName; + Kern::Printf("PRM_CLIENT_REGISTER_TRACE"); + PRM_CLIENT_REGISTER_TRACE + + Kern::Printf("PRM_CLIENT_DEREGISTER_TRACE"); + PRM_CLIENT_DEREGISTER_TRACE + + TInt aNewState = KLevel; + pC->iClientId = KClientId; + Kern::Printf("PRM_CLIENT_CHANGE_STATE_START_TRACE"); + PRM_CLIENT_CHANGE_STATE_START_TRACE + + pC->iClientId = KClientId; + Kern::Printf("PRM_CLIENT_CHANGE_STATE_END_TRACE"); + PRM_CLIENT_CHANGE_STATE_END_TRACE + + TestNotification aN; + TestNotification* pN = &aN; + pN->iCallback.iResourceId = KResourceId; + + Kern::Printf("PRM_POSTNOTIFICATION_REGISTER_TRACE"); + PRM_POSTNOTIFICATION_REGISTER_TRACE + + Kern::Printf("PRM_POSTNOTIFICATION_DEREGISTER_TRACE"); + PRM_POSTNOTIFICATION_DEREGISTER_TRACE + + Kern::Printf("PRM_POSTNOTIFICATION_SENT_TRACE"); + PRM_POSTNOTIFICATION_SENT_TRACE + + TestCallback* pCb = &(pN->iCallback); + pCb->iClientId = KClientId; + Kern::Printf("PRM_CALLBACK_COMPLETION_TRACE"); + PRM_CALLBACK_COMPLETION_TRACE + + TInt size = KSize; + PRM_MEMORY_USAGE_TRACE + + TestRequest aRequest; + aRequest.iClientId = KClientId; + aRequest.iResourceId = KResourceId; + + TDesC8* iName = iUserNameUsed; + Kern::Printf("PRM_PSL_RESOURCE_GET_STATE_START_TRACE"); + PRM_PSL_RESOURCE_GET_STATE_START_TRACE + + Kern::Printf("PRM_RESOURCE_GET_STATE_START_TRACE"); + PRM_RESOURCE_GET_STATE_START_TRACE + + TInt retVal = KRetVal; + TInt iCurLevel = KLevel; + TInt aState = KLevel; + Kern::Printf("PRM_PSL_RESOURCE_GET_STATE_END_TRACE"); + PRM_PSL_RESOURCE_GET_STATE_END_TRACE + + Kern::Printf("PRM_RESOURCE_GET_STATE_END_TRACE"); + PRM_RESOURCE_GET_STATE_END_TRACE + + Kern::Printf("PRM_RESOURCE_CANCEL_LONGLATENCY_OPERATION_TRACE"); + PRM_RESOURCE_CANCEL_LONGLATENCY_OPERATION_TRACE + + aRequest.iLevel = KLevel; + Kern::Printf("PRM_PSL_RESOURCE_CHANGE_STATE_START_TRACE"); + PRM_PSL_RESOURCE_CHANGE_STATE_START_TRACE + + Kern::Printf("PRM_PSL_RESOURCE_CHANGE_STATE_END_TRACE"); + PRM_PSL_RESOURCE_CHANGE_STATE_END_TRACE + + TInt iDefaultLevel = KDefaultLevel; + TInt iFlags = KFlags; + TInt iMinLevel = KMinLevel; + TInt iMaxLevel = KMaxLevel; + TInt aReason = KErrNoMemory; + Kern::Printf("PRM_PSL_RESOURCE_CREATE_TRACE"); + PRM_PSL_RESOURCE_CREATE_TRACE + + Kern::Printf("PRM_BOOTING_TRACE"); + PRM_BOOTING_TRACE + + TestResource* aPDRes = &Resource; + aPDRes->iResourceId = KResourceId; + TestClient Client; + TestClient* aClientPtr = &Client; + aClientPtr->iName = &ClientName; + aClientPtr->iClientId = KClientId; + Kern::Printf("PRM_REGISTER_STATIC_RESOURCE_WITH_DEPENDENCY_TRACE"); + PRM_REGISTER_STATIC_RESOURCE_WITH_DEPENDENCY_TRACE + + TestResource* pDR = &Resource; + TInt level = KLevel; + Kern::Printf("PRM_REGISTER_DYNAMIC_RESOURCE_TRACE"); + PRM_REGISTER_DYNAMIC_RESOURCE_TRACE + + Kern::Printf("PRM_DEREGISTER_DYNAMIC_RESOURCE_TRACE"); + PRM_DEREGISTER_DYNAMIC_RESOURCE_TRACE + + TestResource* pR1 = &Resource; + TestResource* pR2 = &Resource; + Kern::Printf("PRM_REGISTER_RESOURCE_DEPENDENCY_TRACE"); + PRM_REGISTER_RESOURCE_DEPENDENCY_TRACE + + TestResource* pDR1 = &Resource; + TestResource* pDR2 = &Resource; + Kern::Printf("PRM_DEREGISTER_RESOURCE_DEPENDENCY_TRACE"); + PRM_DEREGISTER_RESOURCE_DEPENDENCY_TRACE + + aInfo->iPR = &Resource; + aInfo->iPC = &ResourceClient; + aInfo->iPN = pN; + aInfo->iPCb = pCb; + aInfo->iPClient = &Client; + aInfo->iPCallback = &(pN->iCallback); + + return KErrNone; + }