diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-11-28 18:28:24 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-11-28 18:28:24 +0000 |
commit | 89ee0b6936efb5371ec54c2bb37a0dbd492d0a98 (patch) | |
tree | fa9676c30496a4b846101bf8175b0e4ccfae2473 /c/src | |
parent | 2001-11-28 Joel Sherrill <joel@OARcorp.com>, (diff) | |
download | rtems-89ee0b6936efb5371ec54c2bb37a0dbd492d0a98.tar.bz2 |
2001-11-28 Joel Sherrill <joel@OARcorp.com>,
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.
Diffstat (limited to 'c/src')
-rw-r--r-- | c/src/exec/score/ChangeLog | 9 | ||||
-rw-r--r-- | c/src/exec/score/include/rtems/score/isr.h | 18 | ||||
-rw-r--r-- | c/src/exec/score/inline/rtems/score/isr.inl | 26 | ||||
-rw-r--r-- | c/src/exec/score/macros/rtems/score/isr.inl | 9 |
4 files changed, 27 insertions, 35 deletions
diff --git a/c/src/exec/score/ChangeLog b/c/src/exec/score/ChangeLog index 8e74f602c0..890e7f7c63 100644 --- a/c/src/exec/score/ChangeLog +++ b/c/src/exec/score/ChangeLog @@ -1,3 +1,12 @@ +2001-11-28 Joel Sherrill <joel@OARcorp.com>, + + 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 <joel@OARcorp.com> * src/threadhandler.c: When __USE__MAIN__ is defined by the toolset, diff --git a/c/src/exec/score/include/rtems/score/isr.h b/c/src/exec/score/include/rtems/score/isr.h index 84052339f1..276e9dada5 100644 --- a/c/src/exec/score/include/rtems/score/isr.h +++ b/c/src/exec/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 <rtems/score/isr.inl> #ifdef __cplusplus diff --git a/c/src/exec/score/inline/rtems/score/isr.inl b/c/src/exec/score/inline/rtems/score/isr.inl index 5b6e3918b9..61ff05952a 100644 --- a/c/src/exec/score/inline/rtems/score/isr.inl +++ b/c/src/exec/score/inline/rtems/score/isr.inl @@ -18,32 +18,6 @@ /*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 <rtems/score/c_isr.inl> -#endif - -/*PAGE - * * _ISR_Is_vector_number_valid * * DESCRIPTION: diff --git a/c/src/exec/score/macros/rtems/score/isr.inl b/c/src/exec/score/macros/rtems/score/isr.inl index b4c5eea4a1..b75d6b002d 100644 --- a/c/src/exec/score/macros/rtems/score/isr.inl +++ b/c/src/exec/score/macros/rtems/score/isr.inl @@ -18,15 +18,6 @@ /*PAGE * - * _ISR_Is_in_progress - * - */ - -#define _ISR_Is_in_progress() \ - (_ISR_Nest_level != 0) - -/*PAGE - * * _ISR_Is_vector_number_valid * */ |