summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/include/librm.h
diff options
context:
space:
mode:
authorMichael Brown2006-05-24 01:42:45 +0200
committerMichael Brown2006-05-24 01:42:45 +0200
commit897313007b29afbb0c5e29c8b777c34ab812d95b (patch)
treef7c68cfb13fd20b4f0fbc5ad2ca4f89f381820a6 /src/arch/i386/include/librm.h
parentCope with regions bigger than 4GB. (diff)
downloadipxe-897313007b29afbb0c5e29c8b777c34ab812d95b.tar.gz
ipxe-897313007b29afbb0c5e29c8b777c34ab812d95b.tar.xz
ipxe-897313007b29afbb0c5e29c8b777c34ab812d95b.zip
Add __{text,data}16_array, since there's no way I can see to make the
usual __{text,data}16 trick work with arrays. gcc seems to accept the __asm__ ( asmlabel ) only after the [] of the array declaration, not before.
Diffstat (limited to 'src/arch/i386/include/librm.h')
-rw-r--r--src/arch/i386/include/librm.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/arch/i386/include/librm.h b/src/arch/i386/include/librm.h
index 17fcc78b..490f6eef 100644
--- a/src/arch/i386/include/librm.h
+++ b/src/arch/i386/include/librm.h
@@ -20,12 +20,20 @@ extern char *data16;
extern char *text16;
#define __data16( variable ) \
- _data16_ ## variable __asm__ ( #variable ) \
- __attribute__ (( section ( ".data16" ) ))
+ __attribute__ (( section ( ".data16" ) )) \
+ _data16_ ## variable __asm__ ( #variable )
+
+#define __data16_array( variable, array ) \
+ __attribute__ (( section ( ".data16" ) )) \
+ _data16_ ## variable array __asm__ ( #variable )
#define __text16( variable ) \
- _text16_ ## variable __asm__ ( #variable ) \
- __attribute__ (( section ( ".text16.data" ) ))
+ __attribute__ (( section ( ".text16.data" ) )) \
+ _text16_ ## variable __asm__ ( #variable )
+
+#define __text16_array( variable, array ) \
+ __attribute__ (( section ( ".text16.data" ) )) \
+ _text16_ ## variable array __asm__ ( #variable )
#define __use_data16( variable ) \
( * ( ( typeof ( _data16_ ## variable ) * ) \