From 89ee0b6936efb5371ec54c2bb37a0dbd492d0a98 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 28 Nov 2001 18:28:24 +0000 Subject: 2001-11-28 Joel Sherrill , This was tracked as PR91. * include/rtems/score/isr.h, inline/rtems/score/isr.inl, macros/rtems/score/isr.inl: Modified to allow any port to provide its own implementation of the macro _ISR_Is_in_progress. If the port overrides this macro, it must provide a non-inlined function implementation. --- cpukit/score/ChangeLog | 9 +++++++++ cpukit/score/include/rtems/score/isr.h | 18 ++++++++++++++++++ cpukit/score/inline/rtems/score/isr.inl | 26 -------------------------- cpukit/score/macros/rtems/score/isr.inl | 9 --------- 4 files changed, 27 insertions(+), 35 deletions(-) (limited to 'cpukit') diff --git a/cpukit/score/ChangeLog b/cpukit/score/ChangeLog index 8e74f602c0..890e7f7c63 100644 --- a/cpukit/score/ChangeLog +++ b/cpukit/score/ChangeLog @@ -1,3 +1,12 @@ +2001-11-28 Joel Sherrill , + + This was tracked as PR91. + * include/rtems/score/isr.h, inline/rtems/score/isr.inl, + macros/rtems/score/isr.inl: Modified to allow any port to provide + its own implementation of the macro _ISR_Is_in_progress. If the + port overrides this macro, it must provide a non-inlined function + implementation. + 2001-11-20 Joel Sherrill * src/threadhandler.c: When __USE__MAIN__ is defined by the toolset, diff --git a/cpukit/score/include/rtems/score/isr.h b/cpukit/score/include/rtems/score/isr.h index 84052339f1..276e9dada5 100644 --- a/cpukit/score/include/rtems/score/isr.h +++ b/cpukit/score/include/rtems/score/isr.h @@ -220,6 +220,24 @@ void _ISR_Handler( void ); void _ISR_Dispatch( void ); +/*PAGE + * + * _ISR_Is_in_progress + * + * DESCRIPTION: + * + * This function returns TRUE if the processor is currently servicing + * and interrupt and FALSE otherwise. A return value of TRUE indicates + * that the caller is an interrupt service routine, NOT a thread. The + */ + +#if (CPU_PROVIDES_ISR_IS_IN_PROGRESS == TRUE) +boolean _ISR_Is_in_progress( void ); +#else +#define _ISR_Is_in_progress() \ + (_ISR_Nest_level != 0) +#endif + #include #ifdef __cplusplus diff --git a/cpukit/score/inline/rtems/score/isr.inl b/cpukit/score/inline/rtems/score/isr.inl index 5b6e3918b9..61ff05952a 100644 --- a/cpukit/score/inline/rtems/score/isr.inl +++ b/cpukit/score/inline/rtems/score/isr.inl @@ -16,32 +16,6 @@ #ifndef __ISR_inl #define __ISR_inl -/*PAGE - * - * _ISR_Is_in_progress - * - * DESCRIPTION: - * - * This function returns TRUE if the processor is currently servicing - * and interrupt and FALSE otherwise. A return value of TRUE indicates - * that the caller is an interrupt service routine, NOT a thread. The - * directives available to an interrupt service routine are restricted. - */ - -#if defined(powerpc) -#define CPU_PROVIDES_ISR_IS_IN_PROGRESS -#endif - -#ifndef CPU_PROVIDES_ISR_IS_IN_PROGRESS - -RTEMS_INLINE_ROUTINE boolean _ISR_Is_in_progress( void ) -{ - return (_ISR_Nest_level != 0); -} -#else -#include -#endif - /*PAGE * * _ISR_Is_vector_number_valid diff --git a/cpukit/score/macros/rtems/score/isr.inl b/cpukit/score/macros/rtems/score/isr.inl index b4c5eea4a1..b75d6b002d 100644 --- a/cpukit/score/macros/rtems/score/isr.inl +++ b/cpukit/score/macros/rtems/score/isr.inl @@ -16,15 +16,6 @@ #ifndef __ISR_inl #define __ISR_inl -/*PAGE - * - * _ISR_Is_in_progress - * - */ - -#define _ISR_Is_in_progress() \ - (_ISR_Nest_level != 0) - /*PAGE * * _ISR_Is_vector_number_valid -- cgit v1.2.3