[PATCH 12/32] score: Add _Thread_Dispatch_disable_with_CPU()

Sebastian Huber sebastian.huber at embedded-brains.de
Wed May 18 09:20:31 UTC 2016


Update #2555.
Update #2626.
---
 cpukit/score/include/rtems/score/threaddispatch.h | 28 +++++++++++++++++++----
 1 file changed, 23 insertions(+), 5 deletions(-)

diff --git a/cpukit/score/include/rtems/score/threaddispatch.h b/cpukit/score/include/rtems/score/threaddispatch.h
index 4ef5538..bf846e3 100644
--- a/cpukit/score/include/rtems/score/threaddispatch.h
+++ b/cpukit/score/include/rtems/score/threaddispatch.h
@@ -238,23 +238,23 @@ void _Thread_Do_dispatch( Per_CPU_Control *cpu_self, ISR_Level level );
 
 /**
  * @brief Disables thread dispatching inside a critical section (interrupts
- * disabled).
+ * disabled) with the current processor.
  *
  * This function does not acquire the Giant lock.
  *
+ * @param[in] cpu_self The current processor.
  * @param[in] lock_context The lock context of the corresponding
  * _ISR_lock_ISR_disable() that started the critical section.
  *
  * @return The current processor.
  */
-RTEMS_INLINE_ROUTINE Per_CPU_Control *_Thread_Dispatch_disable_critical(
+RTEMS_INLINE_ROUTINE Per_CPU_Control *_Thread_Dispatch_disable_with_CPU(
+  Per_CPU_Control        *cpu_self,
   const ISR_lock_Context *lock_context
 )
 {
-  Per_CPU_Control *cpu_self;
-  uint32_t         disable_level;
+  uint32_t disable_level;
 
-  cpu_self = _Per_CPU_Get();
   disable_level = cpu_self->thread_dispatch_disable_level;
   _Profiling_Thread_dispatch_disable_critical(
     cpu_self,
@@ -267,6 +267,24 @@ RTEMS_INLINE_ROUTINE Per_CPU_Control *_Thread_Dispatch_disable_critical(
 }
 
 /**
+ * @brief Disables thread dispatching inside a critical section (interrupts
+ * disabled).
+ *
+ * This function does not acquire the Giant lock.
+ *
+ * @param[in] lock_context The lock context of the corresponding
+ * _ISR_lock_ISR_disable() that started the critical section.
+ *
+ * @return The current processor.
+ */
+RTEMS_INLINE_ROUTINE Per_CPU_Control *_Thread_Dispatch_disable_critical(
+  const ISR_lock_Context *lock_context
+)
+{
+  return _Thread_Dispatch_disable_with_CPU( _Per_CPU_Get(), lock_context );
+}
+
+/**
  * @brief Disables thread dispatching.
  *
  * This function does not acquire the Giant lock.
-- 
1.8.4.5



More information about the devel mailing list