Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FreeRTOS/FreeRTOS-Kernel.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'include/FreeRTOS.h')
-rw-r--r--include/FreeRTOS.h28
1 files changed, 26 insertions, 2 deletions
diff --git a/include/FreeRTOS.h b/include/FreeRTOS.h
index 23526bb02..6eb498cd2 100644
--- a/include/FreeRTOS.h
+++ b/include/FreeRTOS.h
@@ -509,12 +509,36 @@
#endif /* configUSE_TIMERS */
+#ifndef portHAS_NESTED_INTERRUPTS
+ #if defined( portSET_INTERRUPT_MASK_FROM_ISR ) && defined( portCLEAR_INTERRUPT_MASK_FROM_ISR )
+ #define portHAS_NESTED_INTERRUPTS 1
+ #else
+ #define portHAS_NESTED_INTERRUPTS 0
+ #endif
+#endif
+
#ifndef portSET_INTERRUPT_MASK_FROM_ISR
- #define portSET_INTERRUPT_MASK_FROM_ISR() 0
+ #if ( portHAS_NESTED_INTERRUPTS == 1 )
+ #error portSET_INTERRUPT_MASK_FROM_ISR must be defined for ports that support nested interrupts (i.e. portHAS_NESTED_INTERRUPTS is set to 1)
+ #else
+ #define portSET_INTERRUPT_MASK_FROM_ISR() 0
+ #endif
+#else
+ #if ( portHAS_NESTED_INTERRUPTS == 0 )
+ #error portSET_INTERRUPT_MASK_FROM_ISR must not be defined for ports that do not support nested interrupts (i.e. portHAS_NESTED_INTERRUPTS is set to 0)
+ #endif
#endif
#ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR
- #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) ( uxSavedStatusValue )
+ #if ( portHAS_NESTED_INTERRUPTS == 1 )
+ #error portCLEAR_INTERRUPT_MASK_FROM_ISR must be defined for ports that support nested interrupts (i.e. portHAS_NESTED_INTERRUPTS is set to 1)
+ #else
+ #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) ( uxSavedStatusValue )
+ #endif
+#else
+ #if ( portHAS_NESTED_INTERRUPTS == 0 )
+ #error portCLEAR_INTERRUPT_MASK_FROM_ISR must not be defined for ports that do not support nested interrupts (i.e. portHAS_NESTED_INTERRUPTS is set to 0)
+ #endif
#endif
#ifndef portCLEAN_UP_TCB