aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/stdconst.h
diff options
context:
space:
mode:
Diffstat (limited to 'AT91SAM7S256/Source/stdconst.h')
-rw-r--r--AT91SAM7S256/Source/stdconst.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/AT91SAM7S256/Source/stdconst.h b/AT91SAM7S256/Source/stdconst.h
index fa1c59e..6c08175 100644
--- a/AT91SAM7S256/Source/stdconst.h
+++ b/AT91SAM7S256/Source/stdconst.h
@@ -20,6 +20,8 @@
#ifndef STDCONST
#define STDCONST
+#include "config.h"
+
#ifndef NULL
#define NULL ((void *)0)
#endif
@@ -44,5 +46,29 @@ typedef char* PSZ;
#define BASETYPES
+#ifdef __GNUC__
+#define DEFINE_DATA(type, name) \
+ extern const type name ## _; \
+ const type * const name = &name ## _; \
+ const type name ## _
+#define BEGIN_DATA {
+#define END_DATA }
+#define POINTER_TO_DATA(name) (&name ## _)
+#define SIZEOF_DATA(name) (sizeof_ ## name)
+#else
+#define DEFINE_DATA(type, name) \
+ const type name[]
+#define BEGIN_DATA
+#define END_DATA
+#define POINTER_TO_DATA(name) (name)
+#define SIZEOF_DATA(name) (sizeof (name))
+#endif
+
+#ifdef __GNUC__
+#define __ramfunc __attribute__ ((section (".fastrun"), optimize ("no-jump-tables")))
+#define __ramdata __attribute__ ((section (".data")))
+#else
+#define __ramdata
+#endif
#endif