--- a/systemswstubs/examplecommonisc/IscDriver/inc/IscDevice.h Thu Aug 19 09:36:39 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,333 +0,0 @@
-/*
-* Copyright (c) 2007 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 ISCDEVICE_H
-#define ISCDEVICE_H
-
-// INCLUDES
-#include <kernel.h>
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-class DIscDataTransmissionBase;
-class DIscMultiplexerBase;
-class DIscChannel;
-class DIscMainRcvBuffer;
-class DIscQueue;
-class DIscSendQueue;
-class TIscSendFrameInfo;
-
-// CLASS DECLARATION
-
-/**
-* Isc driver ldd factory object
-*
-* @lib IscDriver.LIB
-* @since 2.8
-*/
-class DIscDevice : public DLogicalDevice
- {
- public: // Constructors and destructor
- /**
- * C++ default constructor.
- */
- IMPORT_C DIscDevice();
-
- /**
- * Destructor.
- */
- IMPORT_C virtual ~DIscDevice();
-
-
- public: // Functions from base classes
-
- /**
- * From DLogicalDevice.
- * Create a logical channel
- * @since 2.8
- * @param DLogicalChannelBase*& aChannel logical channel to be set
- * @return TInt KErrNone if succesful, otherwise KErrNoMemory
- */
- virtual TInt Create( DLogicalChannelBase*& aChannel );
-
- /**
- * Complete the installation of driver
- * @since 2.8
- * @return TInt KErrNone if successful
- */
- virtual TInt Install();
-
- /**
- * From DLogicalDevice.
- * Get capabilities of this logical device
- * @since 2.8
- * @param TDes8& aDes a reference which contains return
- * information describing the capabilities of this device.
- * @return void
- */
- IMPORT_C virtual void GetCaps( TDes8& aDes ) const;
-
- public: // New functions
-
- /**
- * Complete the initialization of driver
- * @since 2.8
- * @return void
- */
- void Initialize();
-
- /**
- * Get message block from buffers allocated in IscDataTransmissionBase.dll
- * @since 2.8
- * @param TDes8*& aPtr pointer where message block is set
- * @param TUint16 aSize size of needed memory block
- * @return void
- */
- IMPORT_C void ReserveMemoryBlock( TDes8*& aPtr, TUint16 aSize );
-
- /**
- * Release memory block allocated with ReserveMemoryBlock
- * @since 2.8
- * @param TDes8* aData
- * @return void
- */
- IMPORT_C void ReleaseMemoryBlock( TDes8* aData );
-
- /**
- * Connection status change function. Can be called from any context.
- * @since 2.8
- * @param const TInt aStatus status of driver
- * @return void
- */
- EXPORT_C void NotifyConnectionStatus( const TInt aStatus );
-
- /**
- * Frames coming from Domestic OS
- * @since 2.8
- * @param TDesC8* aData pointer to data
- * @return void
- */
- IMPORT_C void Receive( TDesC8* aData ) const;
-
- /**
- * Queue frames that will be sent to Domestic OS
- * @since 2.8
- * @param aChannelId number of sender channel
- * @param const TDesC8* aFrame pointer to send frame
- * @param aChannelPtr DIscChannel pointer
- * @param aMultiplexerDfc dfc to run by data transmission driver after frame has delivered
- * @param aMultiplexerErrorCode status how frame transmission succeeded
- * @return TInt KErrNone if frame added to send queue succesfully
- */
- IMPORT_C TInt QueueFrame( const TUint16 aChannelId,
- const TDesC8* aFrame,
- const TAny* aChannelPtr,
- TAny* aFrameInfo );
-
- /**
- * Cancels sending of frames to Domestic OS of certain channel and deletes queued frames
- * @since 2.8
- * @param aChannelId channel number to which canceling is done
- * @param aChannelPtr DIscChannel pointer
- * @return TInt KErrNone when canceling is done
- */
- IMPORT_C TInt CancelSending( const TUint16 aChannelId,
- const TAny* aChannelPtr );
-
- /**
- * Adds Dfc to empty queues. Can be called from any context.
- * @since 2.8
- * @return void
- */
- IMPORT_C void FlushQueues();
-
- /**
- * Function to complete user side asynchronous request. Uses DIscChannel pointer
- * @since 2.8
- * @param aOperation operation to complete
- * @param aCompleteStatus status of operation
- * @param aChannelPtr pointer to a DIscChannel
- * @return void
- */
- IMPORT_C void CompleteRequest( TUint16 aOperation,
- TInt aCompleteStatus,
- const TAny* aChannelPtr );
-
- /**
- * Function to notify client about uplink flow control status
- * @since 2.8
- * @param aULFlowStatus EIscFlowControlOn / EIscFlowControlOff
- * @param aChannelId Channel to be affected by the flow control
- * @param aChannelPtr pointer to DIscChannel
- * @return void
- */
- IMPORT_C void ULFlowControl( const TInt aULFlowStatus,
- const TUint16 aChannelId,
- const TAny* aChannelPtr );
-
- /**
- * Function to check if asycnhronous request is active
- * @since 2.8
- * @param const TUint16 aReqNumber request number
- * @param const TUint16 aChannelId channel number
- * @return TInt KRequestPending if request active, otherwise KErrNone
- */
- IMPORT_C TInt IsPending( const TUint16 aReqNumber,
- const TAny* aChannelPtr );
-
- /**
- * Copy data from user buffer to kernel side buffer by multiplexer.
- * This method will be deprecated in the future.
- * It is preffered to use GetThreadPtr instead.
- * @since 2.8
- * @param aUserBuffer pointer to source descriptor
- * @param aKernelBuffer pointer to destination descriptor
- * @param aChannelPtr DIscChannel pointer
- * @param aOffset Offset of the source buffer
- * @return KErrNone if successful
- */
- IMPORT_C TInt CopyFromUserBuffer( const TDesC8& aUserBuffer,
- TDes8& aKernelBuffer,
- const TAny* aChannelPtr,
- const TInt aOffset );
-
- /**
- * Copy data to user side buffer from kernel side by multiplexer.
- * This method will be deprecated in the future.
- * It is preffered to use GetThreadPtr instead.
- * @since 2.8
- * @param aUserBuffer pointer to destination descriptor
- * @param aKernelBuffer pointer to source descriptor
- * @param aChannelPtr DIscChannel pointer
- * @param aOffset Offset of the destination buffer
- * @return KErrNone if succesful
- */
- IMPORT_C TInt CopyToUserBuffer( TAny* aUserBuffer,
- const TDesC8& aKernelBuffer,
- const TAny* aChannelPtr,
- const TInt aOffset );
-
- /**
- * Returns a user side thread of a given channel.
- * @since 3.0
- * @param const TAny* aChannelPtr, channel pointer (DIscChannel).
- * @return DThread*, user side clients thread. Ownership is not given.
- */
- IMPORT_C DThread* GetThreadPtr( const TAny* aChannelPtr );
-
- /**
- * Notify multiplexer about down link flow control
- * @since 2.8
- * @param const TInt aDLFlowStatus EIscFlowControlOn / EIscFlowControlOff
- * @param const TUint16 aChannel channel number
- * @return void
- */
- void DLFlowControlNotify( const TInt aDLFlowStatus,
- const TUint16 aChannel,
- const TAny* aChannelPtr );
-
- /**
- * Function to tell current status of connection to Domestic OS
- * @since 2.8
- * @return TInt EIscConnectionOk / EIscConnectionNotOk
- */
- TInt ConnectionStatus();
-
- protected:
-
- /**
- * Function to disable interrupts
- * @since 2.8
- * @return TInt KErrNone if succesful
- */
- static TInt DisableIrqs();
-
- /**
- * Function to restore interrupts
- * @since 2.8
- * @param TInt aLevel level where interrupts should be restored
- * @return void
- */
- static void RestoreIrqs( TInt aLevel );
-
-
- private:
-
- /**
- * Function to connect to DataTransmission and Multiplexer ldds
- * @since 2.8
- * @return TInt KErrNone if succesful
- */
- TInt InitializeLdd2LddInterface();
-
- /**
- * Dfc to empty control channel and other send queues
- * @since 2.8
- * @param TAny* aPtr pointer to DIscDevice
- * @return static void
- */
- static void Flush( TAny* aPtr );
-
- /**
- * Notifies connection changes.
- * @since 2.8
- * @param TAny* aPtr
- * @return static void
- */
- static void NotifyConnection( TAny* aPtr );
-
-
- public: // Data
-
- static DIscMultiplexerBase* iIscMultiplexerInterface;
- static DIscDataTransmissionBase* iIscDataTransmissionInterface;
-
-
- private: // Data
-
- TUint32** iSend;
- TUint32** iTempSend;
- TUint32** iControlSend;
-
- TIscSendFrameInfo** iSendFrameParameters;
- TIscSendFrameInfo** iTempFrameParameters;
- TIscSendFrameInfo** iControlFrameParameters;
-
- static DIscSendQueue* iSendQueue;
- static DIscSendQueue* iTempQueue;
- static DIscSendQueue* iControlSendQueue;
-
- static TDfc* iSendDfc;
- static TDfc* iNotifyDfc;
-
- DIscMainRcvBuffer* iIscMainRcvBuffer;
-
- static TInt iConnectionStatus;
-
- };
-
-#endif // ISCDEVICE_H
-
-// End of File