Update contrib.
1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // e32test\nkernsa\utils.h
25 extern TBool InitialThreadDefined;
27 extern void SetupMemoryAllocator();
28 extern TAny* malloc(TUint32 aSize);
29 extern void free(TAny* aCell);
30 extern TAny* realloc(TAny* aCell, TUint32 aSize);
32 extern TUint32 round_to_page(TUint32 x);
34 extern void SpinWait(TUint32 aTicks);
35 extern void nfcfspin(TUint32 aTicks);
36 extern void fcfspin(TUint64 aTicks);
37 extern void DebugPrint(const char*, int);
39 extern void __cpu_idle();
40 extern void __cpu_yield();
41 extern TLinAddr __stack_pointer();
42 extern TUint32 __cpu_status_reg();
43 extern TUint32 __cpu_id();
44 extern TUint32 __trace_cpu_num();
45 extern void __finish();
47 extern void* memcpy(void*, const void*, unsigned);
48 extern void* memset(void*, int, unsigned);
49 extern void* memclr(void*, unsigned);
50 extern void* wordmove(void*, const void*, unsigned);
52 extern TUint32 random(TUint32* aSeed);
53 extern void setup_block(TUint32* aBlock, TInt aNumWords);
54 extern TBool verify_block(const TUint32* aBlock, TInt aNumWords);
55 extern TBool verify_block_no_trace(const TUint32* aBlock, TInt aNumWords);
56 extern void setup_block_cpu(TUint32* aBlock, TInt aNumWords);
57 extern TInt verify_block_cpu_no_trace(const TUint32* aBlock, TInt aNumWords);
59 extern TUint64 fast_counter();
60 extern TUint64 fast_counter_freq();
61 extern TUint32 norm_fast_counter(); // normalised to count between 1-2MHz
62 extern TUint32 norm_fast_counter_freq(); // normalised to count between 1-2MHz
63 extern void init_fast_counter();
64 extern TInt __microseconds_to_fast_counter(TInt us);
65 extern TInt __microseconds_to_norm_fast_counter(TInt us);
67 extern void DumpMemory(const char* msg, const void* data, int length);
70 #define TEST_PRINT(s) \
71 DEBUGPRINT("NKTEST: " s)
72 #define TEST_PRINT1(s, a) \
73 DEBUGPRINT("NKTEST: " s, a)
74 #define TEST_PRINT2(s, a, b) \
75 DEBUGPRINT("NKTEST: " s, a, b)
76 #define TEST_PRINT3(s, a, b, c) \
77 DEBUGPRINT("NKTEST: " s, a, b, c)
78 #define TEST_PRINT4(s, a, b, c, d) \
79 DEBUGPRINT("NKTEST: " s, a, b, c, d)
80 #define TEST_PRINT5(s, a, b, c, d, e) \
81 DEBUGPRINT("NKTEST: " s, a, b, c, d, e)
82 #define TEST_PRINT6(s, a, b, c, d, e, f) \
83 DEBUGPRINT("NKTEST: " s, a, b, c, d, e, f)
84 #define TEST_PRINT7(s, a, b, c, d, e, f, g) \
85 DEBUGPRINT("NKTEST: " s, a, b, c, d, e, f, g)
86 #define TRACE_LINE() \
87 DEBUGPRINT("NKTEST: line %d", __LINE__)
89 #define TEST_RESULT(x, s) \
90 do { if (!(x)) {DEBUGPRINT("NKTEST: " s); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0)
91 #define TEST_RESULT1(x, s, a) \
92 do { if (!(x)) {DEBUGPRINT("NKTEST: " s, a); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0)
93 #define TEST_RESULT2(x, s, a, b) \
94 do { if (!(x)) {DEBUGPRINT("NKTEST: " s, a, b); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0)
95 #define TEST_RESULT3(x, s, a, b, c) \
96 do { if (!(x)) {DEBUGPRINT("NKTEST: " s, a, b, c); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0)
97 #define TEST_RESULT4(x, s, a, b, c, d) \
98 do { if (!(x)) {DEBUGPRINT("NKTEST: " s, a, b, c, d); DEBUGPRINT("Line %d File %s", __LINE__, __FILE__);}} while(0)
100 #define TEST_OOM(p) TEST_RESULT(p, "Out of memory");
102 #define RANGE_CHECK(l,x,h) ((l)<=(x) && (x)<=(h))
105 #define for_each_cpu(cpu) \
106 for((cpu)=0; (cpu)<NKern::NumberOfCpus(); ++(cpu))
108 #define for_each_cpu(cpu) \
109 for((cpu)=0; (cpu)<1; ++(cpu))
115 static CircBuf* New(TInt aSlots);
118 TInt TryGet(TUint32& aOut);
119 TInt TryPut(TUint32 aIn);
121 void Put(TUint32 aIn);