diff -r 000000000000 -r a41df078684a kerneltest/e32test/nkernsa/utils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/nkernsa/utils.h Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,134 @@ +// 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\utils.h +// +// + +#ifndef __UTILS_H__ +#define __UTILS_H__ +#include +#include + +extern "C" { + +extern TBool InitialThreadDefined; + +extern void SetupMemoryAllocator(); +extern TAny* malloc(TUint32 aSize); +extern void free(TAny* aCell); +extern TAny* realloc(TAny* aCell, TUint32 aSize); + +extern TUint32 round_to_page(TUint32 x); + +extern void SpinWait(TUint32 aTicks); +extern void nfcfspin(TUint32 aTicks); +extern void fcfspin(TUint64 aTicks); +extern void DebugPrint(const char*, int); + +extern void __cpu_idle(); +extern void __cpu_yield(); +extern TLinAddr __stack_pointer(); +extern TUint32 __cpu_status_reg(); +extern TUint32 __cpu_id(); +extern TUint32 __trace_cpu_num(); +extern void __finish(); + +extern void* memcpy(void*, const void*, unsigned); +extern void* memset(void*, int, unsigned); +extern void* memclr(void*, unsigned); +extern void* wordmove(void*, const void*, unsigned); + +extern TUint32 random(TUint32* aSeed); +extern void setup_block(TUint32* aBlock, TInt aNumWords); +extern TBool verify_block(const TUint32* aBlock, TInt aNumWords); +extern TBool verify_block_no_trace(const TUint32* aBlock, TInt aNumWords); +extern void setup_block_cpu(TUint32* aBlock, TInt aNumWords); +extern TInt verify_block_cpu_no_trace(const TUint32* aBlock, TInt aNumWords); + +extern TUint64 fast_counter(); +extern TUint64 fast_counter_freq(); +extern TUint32 norm_fast_counter(); // normalised to count between 1-2MHz +extern TUint32 norm_fast_counter_freq(); // normalised to count between 1-2MHz +extern void init_fast_counter(); +extern TInt __microseconds_to_fast_counter(TInt us); +extern TInt __microseconds_to_norm_fast_counter(TInt us); + +extern void DumpMemory(const char* msg, const void* data, int length); +} + +#define TEST_PRINT(s) \ + DEBUGPRINT("NKTEST: " s) +#define TEST_PRINT1(s, a) \ + DEBUGPRINT("NKTEST: " s, a) +#define TEST_PRINT2(s, a, b) \ + DEBUGPRINT("NKTEST: " s, a, b) +#define TEST_PRINT3(s, a, b, c) \ + DEBUGPRINT("NKTEST: " s, a, b, c) +#define TEST_PRINT4(s, a, b, c, d) \ + DEBUGPRINT("NKTEST: " s, a, b, c, d) +#define TEST_PRINT5(s, a, b, c, d, e) \ + DEBUGPRINT("NKTEST: " s, a, b, c, d, e) +#define TEST_PRINT6(s, a, b, c, d, e, f) \ + DEBUGPRINT("NKTEST: " s, a, b, c, d, e, f) +#define TEST_PRINT7(s, a, b, c, d, e, f, g) \ + DEBUGPRINT("NKTEST: " s, a, b, c, d, e, f, g) +#define TRACE_LINE() \ + DEBUGPRINT("NKTEST: line %d", __LINE__) + +#define TEST_RESULT(x, s) \ + do { if (!(x)) {DEBUGPRINT("NKTEST: " s); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0) +#define TEST_RESULT1(x, s, a) \ + do { if (!(x)) {DEBUGPRINT("NKTEST: " s, a); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0) +#define TEST_RESULT2(x, s, a, b) \ + do { if (!(x)) {DEBUGPRINT("NKTEST: " s, a, b); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0) +#define TEST_RESULT3(x, s, a, b, c) \ + do { if (!(x)) {DEBUGPRINT("NKTEST: " s, a, b, c); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0) +#define TEST_RESULT4(x, s, a, b, c, d) \ + do { if (!(x)) {DEBUGPRINT("NKTEST: " s, a, b, c, d); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0) + +#define TEST_OOM(p) TEST_RESULT(p, "Out of memory"); + +#define RANGE_CHECK(l,x,h) ((l)<=(x) && (x)<=(h)) + +#ifdef __SMP__ +#define for_each_cpu(cpu) \ +for((cpu)=0; (cpu)