kernel/eka/include/cpudefs.h
changeset 45 329ab0095843
parent 43 96e5fb8b040d
child 90 947f0dc9f7a8
child 256 c1f20ce4abcf
--- a/kernel/eka/include/cpudefs.h	Thu Jan 07 13:38:45 2010 +0200
+++ b/kernel/eka/include/cpudefs.h	Mon Jan 18 21:31:10 2010 +0200
@@ -618,6 +618,11 @@
 #endif
 #endif
 
+// Macro used to get the caller of the function containing a CHECK_PRECONDITIONS()
+#if defined(__ARMCC_VERSION) && __ARMCC_VERSION >= 200000
+#define PRECOND_FUNCTION_CALLER		__return_address()
+#endif
+
 #if !defined(__CPU_ARM_HAS_LDREX_STREX_V6K)
 #if defined(__CPU_ARM_HAS_LDREX_STREX)
 #define	__ATOMIC64_USE_SLOW_EXEC__
@@ -639,6 +644,15 @@
 #define	__crash()						asm("int 0xff " : : : "memory")
 #endif
 
+#ifdef __VC32__
+// Not available in the version of MSVC normally used
+// #define PRECOND_FUNCTION_CALLER		((TLinAddr)_ReturnAddress())
+#endif
+
 #endif	// __CPU_X86
 
+#ifdef __GCC32__
+#define PRECOND_FUNCTION_CALLER		((TLinAddr)__builtin_return_address(0))
 #endif
+
+#endif