diff -r e54443a6878c -r 0e5a77c79f1e tracesrv/reference/sf/adapt/osrndtools.nokia/xtiv2/drivers/common/inc/xtirx.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tracesrv/reference/sf/adapt/osrndtools.nokia/xtiv2/drivers/common/inc/xtirx.h Mon Oct 25 18:15:05 2010 +0100 @@ -0,0 +1,141 @@ +/* +* 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 "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: +* +*/ + + +/** @file + +XTI interface class for RAPU PlatSim + +*///========================================================================= + + +#ifndef __XTIRX_H__ +#define __XTIRX_H__ + + +//- Include Files ---------------------------------------------------------- + +#include +#include + +//- Namespace --------------------------------------------------------------- + + +//- Using ------------------------------------------------------------------- + + +//- Data Types -------------------------------------------------------------- + + +//- Constants --------------------------------------------------------------- + + +//- Macros ------------------------------------------------------------------ + + +//- External Data ----------------------------------------------------------- + + +//- Variables --------------------------------------------------------------- + + +//- Forward Declarations ---------------------------------------------------- + + +//- Class Definitions ------------------------------------------------------- + +/** + +Interface class + +*/ +class XtiRx : public DBase + { + enum TRxState + { + KRxStateIdle, + KRxStateWaitDataLenMsg, + KRxStateWaitDataMsg + }; + + public: + static XtiRx* Instance(); + + /** + * This method is used to register a user to the driver. + * @param aDfc Pointer to the DFC function which is called by the XTI driver when the data is available in the receive buffer. + * @param aBuf Receive buffer + * @return Standard Symbian error code + */ + IMPORT_C static TInt Register( TDfc* aDfc, TDes8& aBuf ); + + /** + * User of the driver calls this function when the receive buffer has been read + */ + IMPORT_C static void SetReceiveBufferRead(); + + private: + XtiRx(); + ~XtiRx(); + static void Isr(TAny* aPtr); + TInt Configure() const; + TInt ConfigureUart() const; + static void ReceiveDataDfc( TAny* aPtr ); + static void GPIOWakeupDfc( TAny* aPtr ); + static void GPIODeepSleepWakeupDfc( TAny* aPtr ); + TInt Start() const; + TInt Init(); + TInt ReadData(); + void SetPowerRequirements(); + void ClearPowerRequirements(); + static void StandbyMode( TAny* aPtr ); + static void ResetReceiveState( TAny* aPtr ); + static void GPIOwakeIsr(TAny* aPtr); + static void SetPowerDfc(TAny* aPtr); + static void ClearPowerDfc(TAny* aPtr); + + private: + TDfcQue* iDfcQueue; + TDfc iReceiveDataDfc; + TDfc iGPIOWakeupDfc; + TDfc iSetPowerDfc; + TDfc iClearPowerDfc; + static XtiRx* iXtiRxPtr; + TBool iClocksOn; + TDfc* iTraceCoreDfcPtr; + TDes8* iRxBufferPtr; + TRxState iRxState; + TBool iReceiveBufferFree; + TUint32 iMessagelength; + TTickLink iWakeupResponseTimer; + TInt iWakeupResponseCounter; + TTickLink iIdleTimer; + TUint iClientId; + }; + + +//- Global Function Prototypes ---------------------------------------------- + + +//- Inline Functions -------------------------------------------------------- + + +//- Namespace --------------------------------------------------------------- + +#endif // __XTIRX_H__ + +// End of File