--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/e32test/system/d_kucopy.h Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,178 @@
+// Copyright (c) 1999-2009 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\system\d_kucopy.h
+//
+//
+
+#if !defined(__D_KUCOPY_H__)
+#define __D_KUCOPY_H__
+#include <e32cmn.h>
+#ifndef __KERNEL_MODE__
+#include <e32std.h>
+#endif
+
+_LIT(KKUCopyLddName,"KUCopy");
+
+class TCapsKUCopyV01
+ {
+public:
+ TVersion iVersion;
+ };
+
+struct SCopyInfo
+ {
+ SCopyInfo()
+ : iPtr(NULL), iOffset(0), iLength(0)
+ {}
+ SCopyInfo(const TUint8* aPtr, TInt aOffset, TInt aLength)
+ : iPtr(aPtr), iOffset(aOffset), iLength(aLength)
+ {}
+ const TUint8* iPtr;
+ TInt iOffset;
+ TInt iLength;
+ };
+
+struct SSetInfo
+ {
+ SSetInfo()
+ : iPtr(NULL), iLength(0), iValue(0)
+ {}
+ SSetInfo(TUint8* aPtr, TInt aLength, TUint8 aValue)
+ : iPtr(aPtr), iLength(aLength), iValue(aValue)
+ {}
+ TUint8* iPtr;
+ TInt iLength;
+ TUint iValue;
+ };
+
+struct SDesInfo
+ {
+ TInt iLength;
+ TInt iMaxLength;
+ TAny* iPtr;
+ };
+
+class RKUCopy : public RBusLogicalChannel
+ {
+public:
+ enum TControl
+ {
+ EControlPut,
+ EControlGet,
+ EControlPut32,
+ EControlGet32,
+ EControlSet,
+ EControlLength,
+ EControlRead,
+ EControlRandomLength,
+ EControlReadRandom,
+ EControlDesPut8,
+ EControlDesGet8,
+ EControlDesInfo8,
+ EControlDesPut16,
+ EControlDesGet16,
+ EControlDesInfo16,
+ EControlKernBufAddr,
+ EControlRequestComplete,
+ EControlRequestCompleteLocal,
+ EControlQueueRequestComplete,
+ };
+public:
+#ifndef __KERNEL_MODE__
+ inline TInt Open();
+ inline void Put(TUint8* aDest, TInt aOffset, TInt aLength);
+ inline void Get(const TUint8* aSrc, TInt aOffset, TInt aLength);
+ inline void Put32(TUint32* aDest, TInt aOffset, TInt aLength);
+ inline void Get32(const TUint32* aSrc, TInt aOffset, TInt aLength);
+ inline void Set(TUint8* aDest, TInt aLength, TUint8 aValue);
+ inline TInt Length();
+ inline void Read(TUint8* aDest);
+ inline TInt RandomLength();
+ inline void ReadRandom(TUint8* aDest);
+ inline void DesPut(TDes8& aDest, const TDesC8& aSrc);
+ inline void DesGet(TDes8& aDest, const TDesC8& aSrc);
+ inline void DesInfo(const TDesC8& aDes, SDesInfo& aInfo);
+ inline void DesPut(TDes16& aDest, const TDesC16& aSrc);
+ inline void DesGet(TDes16& aDest, const TDesC16& aSrc);
+ inline void DesInfo(const TDesC16& aDes, SDesInfo& aInfo);
+ inline TUint8* KernelBufferAddress();
+ inline void RequestComplete(TRequestStatus* status);
+ inline void RequestCompleteLocal(TRequestStatus* status);
+ inline TInt QueueRequestComplete(TRequestStatus* status);
+#endif
+ };
+
+#ifndef __KERNEL_MODE__
+inline TInt RKUCopy::Open()
+ { return DoCreate(KKUCopyLddName,TVersion(1,0,0),KNullUnit,NULL,NULL); }
+
+inline void RKUCopy::Put(TUint8* aDest, TInt aOffset, TInt aLength)
+ { SCopyInfo info(aDest,aOffset,aLength); DoControl(EControlPut,&info); }
+
+inline void RKUCopy::Get(const TUint8* aSrc, TInt aOffset, TInt aLength)
+ { SCopyInfo info(aSrc,aOffset,aLength); DoControl(EControlGet,&info); }
+
+inline void RKUCopy::Put32(TUint32* aDest, TInt aOffset, TInt aLength)
+ { SCopyInfo info((const TUint8*)aDest,aOffset,aLength); DoControl(EControlPut32,&info); }
+
+inline void RKUCopy::Get32(const TUint32* aSrc, TInt aOffset, TInt aLength)
+ { SCopyInfo info((const TUint8*)aSrc,aOffset,aLength); DoControl(EControlGet32,&info); }
+
+inline void RKUCopy::Set(TUint8* aDest, TInt aLength, TUint8 aValue)
+ { SSetInfo info(aDest,aLength,aValue); DoControl(EControlSet,&info); }
+
+inline TInt RKUCopy::Length()
+ { return DoControl(EControlLength); }
+
+inline void RKUCopy::Read(TUint8* aDest)
+ { DoControl(EControlRead,aDest); }
+
+inline TInt RKUCopy::RandomLength()
+ { return DoControl(EControlRandomLength); }
+
+inline void RKUCopy::ReadRandom(TUint8* aDest)
+ { DoControl(EControlReadRandom,aDest); }
+
+inline void RKUCopy::DesPut(TDes8& aDest, const TDesC8& aSrc)
+ { DoControl(EControlDesPut8, &aDest, (TAny*)&aSrc); }
+
+inline void RKUCopy::DesGet(TDes8& aDest, const TDesC8& aSrc)
+ { DoControl(EControlDesGet8, &aDest, (TAny*)&aSrc); }
+
+inline void RKUCopy::DesInfo(const TDesC8& aDes, SDesInfo& aInfo)
+ { DoControl(EControlDesInfo8, (TAny*)&aDes, &aInfo); }
+
+inline void RKUCopy::DesPut(TDes16& aDest, const TDesC16& aSrc)
+ { DoControl(EControlDesPut16, &aDest, (TAny*)&aSrc); }
+
+inline void RKUCopy::DesGet(TDes16& aDest, const TDesC16& aSrc)
+ { DoControl(EControlDesGet16, &aDest, (TAny*)&aSrc); }
+
+inline void RKUCopy::DesInfo(const TDesC16& aDes, SDesInfo& aInfo)
+ { DoControl(EControlDesInfo16, (TAny*)&aDes, &aInfo); }
+
+inline TUint8* RKUCopy::KernelBufferAddress()
+ { return (TUint8*)DoControl(EControlKernBufAddr); }
+
+inline void RKUCopy::RequestComplete(TRequestStatus* status)
+ { DoControl(EControlRequestComplete, status); }
+
+inline void RKUCopy::RequestCompleteLocal(TRequestStatus* status)
+ { DoControl(EControlRequestCompleteLocal, status); }
+
+inline TInt RKUCopy::QueueRequestComplete(TRequestStatus* status)
+ { return DoControl(EControlQueueRequestComplete, status); }
+#endif
+
+#endif