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. --- c/src/exec/score/include/rtems/score/isr.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'c/src/exec/score/include') 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 #ifdef __cplusplus -- cgit v1.2.3