summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/corebarrierwait.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/src/corebarrierwait.c')
-rw-r--r--cpukit/score/src/corebarrierwait.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/cpukit/score/src/corebarrierwait.c b/cpukit/score/src/corebarrierwait.c
index 54e90965f0..33f1718a66 100644
--- a/cpukit/score/src/corebarrierwait.c
+++ b/cpukit/score/src/corebarrierwait.c
@@ -21,22 +21,19 @@
#include <rtems/score/corebarrierimpl.h>
#include <rtems/score/statesimpl.h>
-void _CORE_barrier_Do_seize(
- CORE_barrier_Control *the_barrier,
- Thread_Control *executing,
- bool wait,
- Watchdog_Interval timeout,
-#if defined(RTEMS_MULTIPROCESSING)
- Thread_queue_MP_callout mp_callout,
-#endif
- ISR_lock_Context *lock_context
+void _CORE_barrier_Seize(
+ CORE_barrier_Control *the_barrier,
+ Thread_Control *executing,
+ bool wait,
+ Watchdog_Interval timeout,
+ Thread_queue_Context *queue_context
)
{
uint32_t number_of_waiting_threads;
executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;
- _CORE_barrier_Acquire_critical( the_barrier, lock_context );
+ _CORE_barrier_Acquire_critical( the_barrier, queue_context );
number_of_waiting_threads = the_barrier->number_of_waiting_threads;
++number_of_waiting_threads;
@@ -46,7 +43,7 @@ void _CORE_barrier_Do_seize(
&& number_of_waiting_threads == the_barrier->Attributes.maximum_count
) {
executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
- _CORE_barrier_Surrender( the_barrier, mp_callout, lock_context );
+ _CORE_barrier_Surrender( the_barrier, queue_context );
} else {
the_barrier->number_of_waiting_threads = number_of_waiting_threads;
_Thread_queue_Enqueue_critical(
@@ -56,7 +53,7 @@ void _CORE_barrier_Do_seize(
STATES_WAITING_FOR_BARRIER,
timeout,
CORE_BARRIER_TIMEOUT,
- lock_context
+ &queue_context->Lock_context
);
}
}