From 897313007b29afbb0c5e29c8b777c34ab812d95b Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 23 May 2006 23:42:45 +0000 Subject: [PATCH] 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. --- src/arch/i386/include/libkir.h | 2 ++ src/arch/i386/include/librm.h | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/arch/i386/include/libkir.h b/src/arch/i386/include/libkir.h index 0923e222..ba7995ce 100644 --- a/src/arch/i386/include/libkir.h +++ b/src/arch/i386/include/libkir.h @@ -12,7 +12,9 @@ /* Access to variables in .data16 and .text16 in a way compatible with librm */ #define __data16( variable ) variable +#define __data16_array( variable, array ) variable array #define __text16( variable ) variable +#define __text16_array( variable,array ) variable array #define __use_data16( variable ) variable #define __use_text16( variable ) variable #define __from_data16( variable ) variable 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 ) * ) \