projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update the CPU information when the user change the BeRTOS version.
[bertos.git]
/
bertos
/
cfg
/
compiler.h
diff --git
a/bertos/cfg/compiler.h
b/bertos/cfg/compiler.h
index 5cacf1dca66fe20041b8e2fa0aa5133b66aad3d0..4d0c33be9a11a6eac62421476db70d5887712b9a 100644
(file)
--- a/
bertos/cfg/compiler.h
+++ b/
bertos/cfg/compiler.h
@@
-181,6
+181,12
@@
#define RESTRICT __restrict__
#define MUST_CHECK __attribute__((warn_unused_result))
#define PACKED __attribute__((packed))
#define RESTRICT __restrict__
#define MUST_CHECK __attribute__((warn_unused_result))
#define PACKED __attribute__((packed))
+ #if CPU_ARM | CPU_CM3
+ #define NAKED __attribute__((naked))
+ #else
+ #define NAKED
+ #endif
+
/**
* Force compiler to realod context variable.
*/
/**
* Force compiler to realod context variable.
*/
@@
-190,6
+196,10
@@
#define DEPRECATED __attribute__((__deprecated__))
#endif
#define DEPRECATED __attribute__((__deprecated__))
#endif
+ #if GNUC_PREREQ(4,5)
+ #define UNREACHABLE() __builtin_unreachable()
+ #endif
+
#ifndef __cplusplus
#define ASSERT_TYPE_EQUAL(var1, var2) \
STATIC_ASSERT(__builtin_types_compatible_p(typeof(var1), typeof(var2)))
#ifndef __cplusplus
#define ASSERT_TYPE_EQUAL(var1, var2) \
STATIC_ASSERT(__builtin_types_compatible_p(typeof(var1), typeof(var2)))
@@
-323,6
+333,9
@@
#define MEMORY_BARRIER /* nothing */
#warning No memory barrier defined for select compiler. If you use the kernel check it.
#endif
#define MEMORY_BARRIER /* nothing */
#warning No memory barrier defined for select compiler. If you use the kernel check it.
#endif
+#ifndef UNREACHABLE
+#define UNREACHABLE() for (;;)
+#endif
/* Misc definitions */
/* Misc definitions */
@@
-441,7
+454,7
@@
typedef unsigned char page_t; /**< Type for banked memory pages. */
#if CPU_X86
/* 32bit or 64bit (32bit for _WIN64). */
typedef long ssize_t;
#if CPU_X86
/* 32bit or 64bit (32bit for _WIN64). */
typedef long ssize_t;
- #elif CPU_ARM
+ #elif CPU_ARM
|| CPU_CM3
typedef int ssize_t;
#elif CPU_AVR
/* 16bit (missing in avr-libc's sys/types.h). */
typedef int ssize_t;
#elif CPU_AVR
/* 16bit (missing in avr-libc's sys/types.h). */