kernel/eka/drivers/dma/dma2_shared.cpp
changeset 45 329ab0095843
child 130 c30940f6d922
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/drivers/dma/dma2_shared.cpp	Mon Jan 18 21:31:10 2010 +0200
@@ -0,0 +1,210 @@
+// Copyright (c) 2002-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:
+// e32/drivers/dma2_shared.cpp
+// DMA Platform Independent Layer (PIL)
+//
+//
+
+#include <drivers/dmadefs.h>
+
+
+//
+// Exported default constructor.
+//
+#ifdef DMA_APIV2
+KEXPORT_C
+#endif
+TDmaTransferConfig::TDmaTransferConfig()
+	: iAddr(0),
+	  iAddrMode(KDmaAddrModeConstant),
+	  iElementSize(0),
+	  iElementsPerFrame(0),
+	  iElementsPerPacket(0),
+	  iFramesPerTransfer(0),
+	  iElementSkip(0),
+	  iFrameSkip(0),
+	  iBurstSize(KDmaBurstSizeAny),
+	  iFlags(0),
+	  iSyncFlags(KDmaSyncAuto),
+	  iPslTargetInfo(0),
+	  iRepeatCount(0),
+	  iDelta(~0u),
+	  iReserved(0)
+	{
+	}
+
+
+//
+// General use version.
+//
+#ifdef DMA_APIV2
+KEXPORT_C
+#endif
+TDmaTransferConfig::TDmaTransferConfig(
+	TUint32 aAddr,
+	TUint aTransferFlags,
+	TDmaAddrMode aAddrMode,
+	TUint aSyncFlags,
+	TDmaBurstSize aBurstSize,
+	TUint aElementSize,
+	TUint aElementsPerPacket,
+	TUint aPslTargetInfo,
+	TInt aRepeatCount
+	)
+	:
+	iAddr(aAddr),
+	iAddrMode(aAddrMode),
+	iElementSize(aElementSize),
+	iElementsPerFrame(0),
+	iElementsPerPacket(aElementsPerPacket),
+	iFramesPerTransfer(0),
+	iElementSkip(0),
+	iFrameSkip(0),
+	iBurstSize(aBurstSize),
+	iFlags(aTransferFlags),
+	iSyncFlags(aSyncFlags),
+	iPslTargetInfo(aPslTargetInfo),
+	iRepeatCount(aRepeatCount),
+	iDelta(~0u),
+	iReserved(0)
+	{
+	}
+
+
+//
+// 1D/2D version.
+//
+#ifdef DMA_APIV2
+KEXPORT_C
+#endif
+TDmaTransferConfig::TDmaTransferConfig(
+	TUint32 aAddr,
+	TUint aElementSize,
+	TUint aElementsPerFrame,
+	TUint aFramesPerTransfer,
+	TInt aElementSkip,
+	TInt aFrameSkip,
+	TUint aTransferFlags,
+	TUint aSyncFlags,
+	TDmaBurstSize aBurstSize,
+	TUint aElementsPerPacket,
+	TUint aPslTargetInfo,
+	TInt aRepeatCount
+	)
+	:
+	iAddr(aAddr),
+	iAddrMode( // deduce transfer mode from skips
+		(aFrameSkip != 0) ? KDmaAddrMode2DIndex :
+		(aElementSkip != 0)? KDmaAddrMode1DIndex :
+		KDmaAddrModePostIncrement),
+	iElementSize(aElementSize),
+	iElementsPerFrame(aElementsPerFrame),
+	iElementsPerPacket(aElementsPerPacket),
+	iFramesPerTransfer(aFramesPerTransfer),
+	iElementSkip(aElementSkip),
+	iFrameSkip(aFrameSkip),
+	iBurstSize(aBurstSize),
+	iFlags(aTransferFlags),
+	iSyncFlags(aSyncFlags),
+	iPslTargetInfo(aPslTargetInfo),
+	iRepeatCount(aRepeatCount),
+	iDelta(~0u),
+	iReserved(0)
+	{
+	}
+
+
+//
+// Exported default constructor.
+//
+#ifdef DMA_APIV2
+KEXPORT_C
+#endif
+TDmaTransferArgs::TDmaTransferArgs()
+	: iTransferCount(0),
+	  iGraphicsOps(KDmaGraphicsOpNone),
+	  iFlags(0),
+	  iChannelPriority(KDmaPriorityNone),
+	  iPslRequestInfo(0),
+	  iDelta(~0u),
+	  iReserved1(0),
+	  iChannelCookie(0),
+	  iReserved2(0)
+	{
+	}
+
+
+//
+// .
+//
+#ifdef DMA_APIV2
+KEXPORT_C
+#endif
+TDmaTransferArgs::TDmaTransferArgs (
+	TUint aSrcAddr,
+	TUint aDstAddr,
+	TUint aCount,
+	TUint aDmaTransferFlags,
+	TUint aDmaSyncFlags,
+	TUint aDmaPILFlags,
+	TDmaAddrMode aMode,
+	TUint aElementSize,
+	TUint aChannelPriority,
+	TDmaBurstSize aBurstSize,
+	TUint aPslRequestInfo,
+	TDmaGraphicsOps aGraphicOp,
+	TUint32 aColour
+	)
+	:
+	iSrcConfig(aSrcAddr, aDmaTransferFlags, aMode, aDmaSyncFlags, aBurstSize, aElementSize),
+	iDstConfig(aDstAddr, aDmaTransferFlags, aMode, aDmaSyncFlags, aBurstSize, aElementSize),
+	iTransferCount(aCount),
+	iGraphicsOps(aGraphicOp),
+	iColour(aColour),
+	iFlags(aDmaPILFlags),
+	iChannelPriority(aChannelPriority),
+	iPslRequestInfo(aPslRequestInfo)
+	{
+	}
+
+
+//
+// .
+//
+#ifdef DMA_APIV2
+KEXPORT_C
+#endif
+TDmaTransferArgs::TDmaTransferArgs(
+	const TDmaTransferConfig& aSrc,
+	const TDmaTransferConfig& aDst,
+	TUint32 aFlags,
+	TUint aChannelPriority,
+	TUint aPslRequestInfo,
+	TDmaGraphicsOps aGraphicOp,
+	TUint32 aColour
+	)
+	: iSrcConfig(aSrc),
+	  iDstConfig(aDst),
+	  iTransferCount(0),
+	  iGraphicsOps(aGraphicOp),
+	  iColour(aColour),
+	  iFlags(aFlags),
+	  iChannelPriority(aChannelPriority),
+	  iPslRequestInfo(aPslRequestInfo),
+	  iDelta(~0u),
+	  iReserved1(0),
+	  iChannelCookie(0),
+	  iReserved2(0)
+	{
+	}