summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-03-18 11:56:42 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-03-19 08:34:27 +0100
commita3dd225b88eaadc2832cdb65ee9287f8aceea095 (patch)
treedbe6b3cd250722d6f6ed9259cf95f1190e5c3b38
parentscore: Delete _Assert_Thread_dispatching_repressed (diff)
downloadrtems-a3dd225b88eaadc2832cdb65ee9287f8aceea095.tar.bz2
score: Delete _Assert_Owner_of_giant()
Add _Debug_Is_owner_of_giant(). This makes it possible to assert the opposite.
-rw-r--r--cpukit/score/include/rtems/score/assert.h12
-rw-r--r--cpukit/score/include/rtems/score/isrlevel.h6
-rw-r--r--cpukit/score/src/threaddispatchdisablelevel.c8
3 files changed, 13 insertions, 13 deletions
diff --git a/cpukit/score/include/rtems/score/assert.h b/cpukit/score/include/rtems/score/assert.h
index 0248b3c4e5..707222b6d3 100644
--- a/cpukit/score/include/rtems/score/assert.h
+++ b/cpukit/score/include/rtems/score/assert.h
@@ -49,12 +49,14 @@ extern "C" {
#endif
/**
- * @brief Asserts that current thread of execution owns the giant lock.
+ * @brief Returns true if the current thread of execution owns the giant lock.
*/
-#if defined( RTEMS_DEBUG ) && defined( RTEMS_SMP )
- void _Assert_Owner_of_giant( void );
-#else
- #define _Assert_Owner_of_giant() ( ( void ) 0 )
+#if defined( RTEMS_DEBUG )
+ #if defined( RTEMS_SMP )
+ bool _Debug_Is_owner_of_giant( void );
+ #else
+ #define _Debug_Is_owner_of_giant() (true)
+ #endif
#endif
#ifdef __cplusplus
diff --git a/cpukit/score/include/rtems/score/isrlevel.h b/cpukit/score/include/rtems/score/isrlevel.h
index 94d1e917b5..a7a9b2e78c 100644
--- a/cpukit/score/include/rtems/score/isrlevel.h
+++ b/cpukit/score/include/rtems/score/isrlevel.h
@@ -58,7 +58,7 @@ typedef uint32_t ISR_Level;
#define _ISR_Disable( _level ) \
do { \
_CPU_ISR_Disable( _level ); \
- _Assert_Owner_of_giant(); \
+ _Assert( _Debug_Is_owner_of_giant() ); \
RTEMS_COMPILER_MEMORY_BARRIER(); \
} while (0)
@@ -76,7 +76,7 @@ typedef uint32_t ISR_Level;
#define _ISR_Enable( _level ) \
do { \
RTEMS_COMPILER_MEMORY_BARRIER(); \
- _Assert_Owner_of_giant(); \
+ _Assert( _Debug_Is_owner_of_giant() ); \
_CPU_ISR_Enable( _level ); \
} while (0)
@@ -102,7 +102,7 @@ typedef uint32_t ISR_Level;
#define _ISR_Flash( _level ) \
do { \
RTEMS_COMPILER_MEMORY_BARRIER(); \
- _Assert_Owner_of_giant(); \
+ _Assert( _Debug_Is_owner_of_giant() ); \
_CPU_ISR_Flash( _level ); \
RTEMS_COMPILER_MEMORY_BARRIER(); \
} while (0)
diff --git a/cpukit/score/src/threaddispatchdisablelevel.c b/cpukit/score/src/threaddispatchdisablelevel.c
index abd8c97cd5..68b4d76381 100644
--- a/cpukit/score/src/threaddispatchdisablelevel.c
+++ b/cpukit/score/src/threaddispatchdisablelevel.c
@@ -142,13 +142,11 @@ void _Giant_Release( void )
}
#if defined( RTEMS_DEBUG )
-void _Assert_Owner_of_giant( void )
+bool _Debug_Is_owner_of_giant( void )
{
Giant_Control *giant = &_Giant;
- _Assert(
- giant->owner_cpu == _SMP_Get_current_processor()
- || !_System_state_Is_up( _System_state_Get() )
- );
+ return giant->owner_cpu == _SMP_Get_current_processor()
+ || !_System_state_Is_up( _System_state_Get() );
}
#endif