summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/threadqflush.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-03-23 10:01:31 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-03-29 07:26:42 +0200
commit1e1a91ed11458ddbb27b94d0001d8f0fc2ef7a97 (patch)
tree5e7cb0e88da11528eb7fb4bae9148564c949d066 /cpukit/score/src/threadqflush.c
parentlibcpu/m68k/mcf5272/clock/ckinit.c: Fix warning by including <rtems/clockdrv.h> (diff)
downloadrtems-1e1a91ed11458ddbb27b94d0001d8f0fc2ef7a97.tar.bz2
score: Remove Thread_queue_Queue::operations field
Remove the Thread_queue_Queue::operations field to reduce the size of this structure. Add a thread queue operations parameter to the _Thread_queue_First(), _Thread_queue_First_locked(), _Thread_queue_Enqueue(), _Thread_queue_Dequeue() and _Thread_queue_Flush() functions. This is a preparation patch to reduce the size of several synchronization objects.
Diffstat (limited to 'cpukit/score/src/threadqflush.c')
-rw-r--r--cpukit/score/src/threadqflush.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/cpukit/score/src/threadqflush.c b/cpukit/score/src/threadqflush.c
index 8dca3f9fd4..13d2a5b1ac 100644
--- a/cpukit/score/src/threadqflush.c
+++ b/cpukit/score/src/threadqflush.c
@@ -22,13 +22,14 @@
#include <rtems/score/objectimpl.h>
void _Thread_queue_Flush(
- Thread_queue_Control *the_thread_queue,
+ Thread_queue_Control *the_thread_queue,
+ const Thread_queue_Operations *operations,
#if defined(RTEMS_MULTIPROCESSING)
- Thread_queue_Flush_callout remote_extract_callout,
+ Thread_queue_Flush_callout remote_extract_callout,
#else
- Thread_queue_Flush_callout remote_extract_callout RTEMS_UNUSED,
+ Thread_queue_Flush_callout remote_extract_callout RTEMS_UNUSED,
#endif
- uint32_t status
+ uint32_t status
)
{
ISR_lock_Context lock_context;
@@ -36,7 +37,14 @@ void _Thread_queue_Flush(
_Thread_queue_Acquire( the_thread_queue, &lock_context );
- while ( (the_thread = _Thread_queue_First_locked( the_thread_queue ) ) ) {
+ while (
+ (
+ the_thread = _Thread_queue_First_locked(
+ the_thread_queue,
+ operations
+ )
+ )
+ ) {
#if defined(RTEMS_MULTIPROCESSING)
if ( _Objects_Is_local_id( the_thread->Object.id ) )
#endif
@@ -44,7 +52,7 @@ void _Thread_queue_Flush(
_Thread_queue_Extract_critical(
&the_thread_queue->Queue,
- the_thread_queue->operations,
+ operations,
the_thread,
&lock_context
);