Exclude file with Qt-style documentation.
[bertos.git] / cfg / cpu_detect.h
index 5e48b76e2371224f5ee75ba875733c642548cf53..2a285ba3cb8e6416be48bc1c586c0f6aeb8c2a6d 100755 (executable)
@@ -1,4 +1,4 @@
-/*!
+/**
  * \file
  * <!--
  * Copyright 2004, 2005 Develer S.r.l. (http://www.develer.com/)
 
 /*#*
  *#* $Log$
+ *#* Revision 1.4  2006/07/19 12:56:25  bernie
+ *#* Convert to new Doxygen style.
+ *#*
+ *#* Revision 1.3  2006/02/10 12:37:37  bernie
+ *#* Add support for ARM on IAR.
+ *#*
+ *#* Revision 1.2  2005/06/14 06:15:10  bernie
+ *#* Add X86_64 support.
+ *#*
  *#* Revision 1.1  2005/04/11 19:04:13  bernie
  *#* Move top-level headers to cfg/ subdir.
  *#*
 #ifndef CPU_DETECT_H
 #define CPU_DETECT_H
 
-#if defined(__IAR_SYSTEMS_ICC) || defined(__IAR_SYSTEMS_ICC__)
-       #define CPU_I196                1
+#if defined(__arm__) /* GCC */ \
+       || defined(__ARM4TM__) /* IAR: defined for all cores >= 4tm */
+       #define CPU_ARM                 1
+       #define CPU_ID                  arm
+#else
+       #define CPU_ARM                 0
+#endif
+
+#if (defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)) \
+       && !defined(__ARM4TM__) /* IAR: if not ARM assume I196 */
+       #define CPU_I196                1
        #define CPU_ID                  i196
 #else
        #define CPU_I196                0
 #endif
 
-#if defined(__i386__) || defined(_MSC_VER)
+#if defined(__i386__) /* GCC */ \
+       || (defined(_M_IX86) && !defined(_WIN64)) /* MSVC */
+       #define CPU_X86                 1
+       #define CPU_X86_32              1
+       #define CPU_X86_64              0
+       #define CPU_ID                  x86
+#elif defined(__x86_64__) /* GCC */ \
+       || (defined(_M_IX86) && defined(_WIN64)) /* MSVC */
        #define CPU_X86                 1
+       #define CPU_X86_32              0
+       #define CPU_X86_64              1
        #define CPU_ID                  x86
 #else
        #define CPU_X86                 0
+       #define CPU_I386                0
+       #define CPU_X86_64              0
 #endif
 
 #if defined (_ARCH_PPC) || defined(_ARCH_PPC64)
 
 
 /* Self-check for the detection: only one CPU must be detected */
-#if CPU_I196 + CPU_X86 + CPU_PPC + CPU_DSP56K + CPU_AVR == 0
+#if CPU_ARM + CPU_I196 + CPU_X86 + CPU_PPC + CPU_DSP56K + CPU_AVR == 0
        #error Unknown CPU
 #elif !defined(CPU_ID)
        #error CPU_ID not defined
-#elif CPU_I196 + CPU_X86 + CPU_PPC + CPU_DSP56K + CPU_AVR != 1
+#elif CPU_ARM + CPU_I196 + CPU_X86 + CPU_PPC + CPU_DSP56K + CPU_AVR != 1
        #error Internal CPU configuration error
 #endif