diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-03-23 10:01:31 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-03-29 07:26:42 +0200 |
commit | 1e1a91ed11458ddbb27b94d0001d8f0fc2ef7a97 (patch) | |
tree | 5e7cb0e88da11528eb7fb4bae9148564c949d066 /cpukit/score/src/threadqflush.c | |
parent | libcpu/m68k/mcf5272/clock/ckinit.c: Fix warning by including <rtems/clockdrv.h> (diff) | |
download | rtems-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.c | 20 |
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 ); |