diff -r 000000000000 -r c6b0df440bee dbgsrv/coredumpserver/test/crashapps/inc/d_crashdriver_ldd.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dbgsrv/coredumpserver/test/crashapps/inc/d_crashdriver_ldd.h Tue Mar 02 10:33:16 2010 +0530 @@ -0,0 +1,84 @@ +// Copyright (c) 2008-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: +// Kernel side interfaces to example Logical Device Drivers +// + + + +#ifndef __D_CRASHDRIVER_LDD_H__ +#define __D_CRASHDRIVER_LDD_H__ + + +#include + +/** + * Logical Device (factory class) for 'crashdriver' + */ +class DCrashDriverFactory : public DLogicalDevice + { +public: + DCrashDriverFactory(); + ~DCrashDriverFactory(); + // Inherited from DLogicalDevice + virtual TInt Install(); + virtual void GetCaps(TDes8& aDes) const; + virtual TInt Create(DLogicalChannelBase*& aChannel); + }; + + +/** + * Logical Channel class for 'crashdriver' + */ +class DCrashDriverChannel : public DLogicalChannel + { +public: + DCrashDriverChannel(); + virtual ~DCrashDriverChannel(); + // Inherited from DObject + virtual TInt RequestUserHandle(DThread* aThread, TOwnerType aType); + // Inherited from DLogicalChannelBase + virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer); + // Inherited from DLogicalChannel + virtual void HandleMsg(TMessageBase* aMsg); +private: + // Panic reasons + enum TPanic + { + ERequestAlreadyPending = 1 + }; + // Implementation for the differnt kinds of requests send through RBusLogicalChannel + TInt DoRequest(TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2); + void DoCancel(TUint aMask); + + void PrefetchAbort(); + void DataRead(); + void DataWrite(); + void UndefinedInst(); + void DivByZero(); + void StackOverFlow(); + + //void TestConfigInsertL(TBool& aPass, TDes8& aResult); + + typedef void (*Tfunc)(); + +private: + TDynamicDfcQue* iDfcQ; + DThread* iClient; + TRequestStatus* iStatus; + TInt recurseCount; + + }; + +#endif +