diff packages/hal/arm/arch/current/include/hal_arch.h @ 115:6ed91473a1cd ecos-sw-2000-08-21

Merge from eCos master repository on 2000-08-21-22:40:54-BST
author jlarmour
date Fri, 25 Aug 2000 17:32:38 +0000
parents c37d3a9e1b28
children 0ae0bc38e387
line wrap: on
line diff
--- a/packages/hal/arm/arch/current/include/hal_arch.h
+++ b/packages/hal/arm/arch/current/include/hal_arch.h
@@ -279,6 +279,35 @@ externC void hal_idle_thread_action(cyg_
 #define HAL_IDLE_THREAD_ACTION(_count_) hal_idle_thread_action(_count_)
 
 //---------------------------------------------------------------------------
+// Table definition macros.
+// The ARM assembler has a slightly different syntax for some of this, so
+// we have to define alternatives here.
+// Note that the __string() and __xstring() macros used here are defined in
+// hal_tables.h.
+
+#ifndef CYG_HAL_TABLE_BEGIN
+#define CYG_HAL_TABLE_BEGIN( _label, _name )                                    \
+__asm__(".section \"" __string(.ecos.table.##_name##.begin) "\",\"aw\"\n"       \
+	".globl " __xstring(CYG_LABEL_DEFN(_label)) "\n"                        \
+	".type    " __xstring(CYG_LABEL_DEFN(_label)) ",object\n"               \
+	".p2align 2\n"                                                          \
+__xstring(CYG_LABEL_DEFN(_label)) ":\n"                                         \
+	".previous\n"                                                           \
+       )
+#endif
+
+#ifndef CYG_HAL_TABLE_END
+#define CYG_HAL_TABLE_END( _label, _name )                                      \
+__asm__(".section \"" __string(.ecos.table.##_name##.finish) "\",\"aw\"\n"      \
+	".globl " __xstring(CYG_LABEL_DEFN(_label)) "\n"                        \
+	".type    " __xstring(CYG_LABEL_DEFN(_label)) ",object\n"               \
+	".p2align 2\n"                                                          \
+__xstring(CYG_LABEL_DEFN(_label)) ":\n"                                         \
+	".previous\n"                                                           \
+       )
+#endif
+
+//---------------------------------------------------------------------------
 
 // Minimal and sensible stack sizes: the intention is that applications
 // will use these to provide a stack size in the first instance prior to