kerneltest/e32test/nkernsa/nkutils.h
changeset 0 a41df078684a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/e32test/nkernsa/nkutils.h	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,80 @@
+// Copyright (c) 2006-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\nkernsa\nkutils.h
+// 
+//
+
+#ifndef __NKUTILS_H__
+#define __NKUTILS_H__
+#include <nk_priv.h>
+#include <nktest/utils.h>
+
+#ifndef __SMP__
+class NThreadGroup;
+#endif
+
+
+enum TExitCallBackInstance
+	{
+	EInContext=0,
+	EBeforeFree=1,
+	EAfterFree=2,
+	};
+
+typedef TInt NRequestStatus;
+
+typedef void (*TExitFunc)(TAny*, NThread*, TInt);
+
+extern NThread* CreateThread(const char* aName, NThreadFunction aFunc, TInt aPri, const TAny* aParams, TInt aPSize, TBool aResume, TInt aTimeslice, TExitFunc aExitFunc=0, TAny* aExitParam=0, TUint32 aCpuAffinity=0, NThreadGroup* aGroup=0);
+extern NThread* CreateThreadSignalOnExit(const char* aName, NThreadFunction aFunc, TInt aPri, const TAny* aParams, TInt aPSize, TInt aTimeslice, NFastSemaphore* aExitSem, TUint32 aCpuAffinity, NThreadGroup* aGroup=0);
+extern NThread* CreateUnresumedThreadSignalOnExit(const char* aName, NThreadFunction aFunc, TInt aPri, const TAny* aParams, TInt aPSize, TInt aTimeslice, NFastSemaphore* aExitSem, TUint32 aCpuAffinity, NThreadGroup* aGroup=0);
+extern void CreateThreadAndWaitForExit(const char* aName, NThreadFunction aFunc, TInt aPri, const TAny* aParams, TInt aPSize, TInt aTimeslice, TUint32 aCpuAffinity=0, NThreadGroup* aGroup=0);
+extern TDfcQue* CreateDfcQ(const char* aName, TInt aPri, TUint32 aCpuAffinity=0, NThreadGroup* aGroup=0);
+extern void DestroyDfcQ(TDfcQue* aQ);
+
+extern void FMWaitFull(NFastMutex* aMutex);
+extern void FMSignalFull(NFastMutex* aMutex);
+
+extern TInt WaitWithTimeout(NFastSemaphore* aS, TUint32 aTimeout);
+
+extern "C" TInt __timer_period();
+extern "C" TInt __microseconds_to_timeslice_ticks(TInt us);
+extern "C" TInt __fast_counter_to_timeslice_ticks(TUint64 aFCdelta);
+
+const TInt KStackSize = 4096;
+const TInt KTimeslice = 20000;	// microseconds
+
+const TUint32 KMinTimeout = 1;
+#ifdef __SMP__
+const TInt KSmallTimeslice = 500;
+#else
+const TInt KSmallTimeslice = 2;
+#endif
+
+extern void WaitForRequest(NRequestStatus& aStatus);
+extern void RequestComplete(NThread* aThread, NRequestStatus*& aStatus, TInt aValue);
+
+extern void InitBTraceHandler();
+extern void DumpBTraceBuffer();
+extern void StartBTrace();
+extern void StopBTrace();
+
+extern "C" void CheckPoint();
+
+#define __CHECKPOINT()	CheckPoint()
+
+
+#endif
+
+