2004-04-21 Theodore A. Roth * include/avr/sfr_defs.h: * include/avr/signal.h: Index: include/avr/sfr_defs.h =================================================================== RCS file: /cvsroot/avr-libc/avr-libc/include/avr/sfr_defs.h,v retrieving revision 1.11 diff -u -p -p -r1.11 sfr_defs.h --- include/avr/sfr_defs.h 9 Oct 2003 04:27:29 -0000 1.11 +++ include/avr/sfr_defs.h 21 Apr 2004 16:24:57 -0000 @@ -186,7 +186,57 @@ /*@}*/ #ifndef _VECTOR -#define _VECTOR(N) __vector_ ## N +# define _VECTOR(N) __vector_ ## N +# define __vector_1_TMP() __vector_1 +# define __vector_2_TMP() __vector_2 +# define __vector_3_TMP() __vector_3 +# define __vector_4_TMP() __vector_4 +# define __vector_5_TMP() __vector_5 +# define __vector_6_TMP() __vector_6 +# define __vector_7_TMP() __vector_7 +# define __vector_8_TMP() __vector_8 +# define __vector_9_TMP() __vector_9 +# define __vector_10_TMP() __vector_10 +# define __vector_11_TMP() __vector_11 +# define __vector_12_TMP() __vector_12 +# define __vector_13_TMP() __vector_13 +# define __vector_14_TMP() __vector_14 +# define __vector_15_TMP() __vector_15 +# define __vector_16_TMP() __vector_16 +# define __vector_17_TMP() __vector_17 +# define __vector_18_TMP() __vector_18 +# define __vector_19_TMP() __vector_19 +# define __vector_20_TMP() __vector_20 +# define __vector_21_TMP() __vector_21 +# define __vector_22_TMP() __vector_22 +# define __vector_23_TMP() __vector_23 +# define __vector_24_TMP() __vector_24 +# define __vector_25_TMP() __vector_25 +# define __vector_26_TMP() __vector_26 +# define __vector_27_TMP() __vector_27 +# define __vector_28_TMP() __vector_28 +# define __vector_29_TMP() __vector_29 +# define __vector_30_TMP() __vector_30 +# define __vector_31_TMP() __vector_31 +# define __vector_32_TMP() __vector_32 +# define __vector_33_TMP() __vector_33 +# define __vector_34_TMP() __vector_34 +# define __vector_35_TMP() __vector_35 +# define __vector_36_TMP() __vector_36 +# define __vector_37_TMP() __vector_37 +# define __vector_38_TMP() __vector_38 +# define __vector_39_TMP() __vector_39 +# define __vector_40_TMP() __vector_40 +# define __vector_41_TMP() __vector_41 +# define __vector_42_TMP() __vector_42 +# define __vector_43_TMP() __vector_43 +# define __vector_44_TMP() __vector_44 +# define __vector_45_TMP() __vector_45 +# define __vector_46_TMP() __vector_46 +# define __vector_47_TMP() __vector_47 +# define __vector_48_TMP() __vector_48 +# define __vector_49_TMP() __vector_49 +# define __vector_50_TMP() __vector_50 #endif #ifndef __ASSEMBLER__ Index: include/avr/signal.h =================================================================== RCS file: /cvsroot/avr-libc/avr-libc/include/avr/signal.h,v retrieving revision 1.7 diff -u -p -p -r1.7 signal.h --- include/avr/signal.h 30 Sep 2003 23:05:17 -0000 1.7 +++ include/avr/signal.h 21 Apr 2004 16:24:57 -0000 @@ -40,15 +40,27 @@ Introduces an interrupt handler function that runs with global interrupts initially disabled. */ -#ifdef __cplusplus -#define SIGNAL(signame) \ -extern "C" void signame(void); \ -void signame (void) __attribute__ ((signal)); \ -void signame (void) +#include + +#define _SIGNAME_TMP(signame) signame ## _TMP() + +#ifdef __ASSEMBLER__ + +# define SIGNAL(signame) _SIGNAME_TMP(signame) + #else -#define SIGNAL(signame) \ -void signame (void) __attribute__ ((signal)); \ -void signame (void) + +# ifdef __cplusplus +# define SIGNAL(signame) \ +extern "C" void _SIGNAME_TMP(signame)(void); \ +void _SIGNAME_TMP(signame) (void) __attribute__ ((signal)); \ +void _SIGNAME_TMP(signame) (void) +# else +# define SIGNAL(signame) \ +void _SIGNAME_TMP(signame) (void) __attribute__ ((signal)); \ +void _SIGNAME_TMP(signame) (void) +# endif + #endif /** \def INTERRUPT(signame) @@ -60,14 +72,14 @@ void signame (void) initially enabled. This allows interrupt handlers to be interrupted. */ #ifdef __cplusplus -#define INTERRUPT(signame) \ -extern "C" void signame(void); \ -void signame (void) __attribute__ ((interrupt)); \ -void signame (void) +#define INTERRUPT(signame) \ +extern "C" void _SIGNAME_TMP(signame)(void); \ +void _SIGNAME_TMP(signame) (void) __attribute__ ((interrupt)); \ +void _SIGNAME_TMP(signame) (void) #else -#define INTERRUPT(signame) \ -void signame (void) __attribute__ ((interrupt)); \ -void signame (void) +#define INTERRUPT(signame) \ +void _SIGNAME_TMP(signame) (void) __attribute__ ((interrupt)); \ +void _SIGNAME_TMP(signame) (void) #endif /** \def EMPTY_INTERRUPT(signame) @@ -82,14 +94,14 @@ void signame (void) \code EMPTY_INTERRUPT(SIG_ADC);\endcode */ #ifdef __cplusplus -#define EMPTY_INTERRUPT(signame) \ -extern "C" void signame(void); \ -void signame (void) __attribute__ ((naked)); \ -void signame (void) { __asm__ __volatile__ ("reti" ::); } +#define EMPTY_INTERRUPT(signame) \ +extern "C" void _SIGNAME_TMP(signame)(void); \ +void _SIGNAME_TMP(signame) (void) __attribute__ ((naked)); \ +void _SIGNAME_TMP(signame) (void) { __asm__ __volatile__ ("reti" ::); } #else -#define EMPTY_INTERRUPT(signame) \ -void signame (void) __attribute__ ((naked)); \ -void signame (void) { __asm__ __volatile__ ("reti" ::); } +#define EMPTY_INTERRUPT(signame) \ +void _SIGNAME_TMP(signame) (void) __attribute__ ((naked)); \ +void _SIGNAME_TMP(signame) (void) { __asm__ __volatile__ ("reti" ::); } #endif