diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-03-22 10:43:06 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-03-22 11:56:43 +0100 |
commit | 688fbc4401ad89abb2ecdd64c8137297ac5e07ba (patch) | |
tree | 2c8d359e73dd8802baf5995fbb2cc59c5a933fca /cpukit/score/src/threadqextract.c | |
parent | score: Move _Thread_blocking_operation_Cancel() (diff) | |
download | rtems-688fbc4401ad89abb2ecdd64c8137297ac5e07ba.tar.bz2 |
score: Move _Thread_queue_Extract()
Move _Thread_queue_Dequeue(). We need all or no thread queue functions
so it makes no sense to have them in separate modules. One module
enables compiler optimizations without link-time optimization. Make
_Thread_blocking_operation_Finalize() static since it is use now only in
one module.
Diffstat (limited to '')
-rw-r--r-- | cpukit/score/src/threadqextract.c | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/cpukit/score/src/threadqextract.c b/cpukit/score/src/threadqextract.c deleted file mode 100644 index d12d3c889a..0000000000 --- a/cpukit/score/src/threadqextract.c +++ /dev/null @@ -1,71 +0,0 @@ -/** - * @file - * - * @brief Extracts Thread from Thread Queue - * - * @ingroup ScoreThreadQ - */ - -/* - * COPYRIGHT (c) 1989-2014. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#include <rtems/score/chainimpl.h> -#include <rtems/score/threadimpl.h> -#include <rtems/score/threadqimpl.h> -#include <rtems/score/watchdogimpl.h> - -void _Thread_queue_Extract_with_return_code( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread, - uint32_t return_code -) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { - _ISR_Enable( level ); - return; - } - - if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_FIFO ) { - _Chain_Extract_unprotected( &the_thread->Object.Node ); - } else { /* must be THREAD_QUEUE_DISCIPLINE_PRIORITY */ - _RBTree_Extract( - &the_thread->Wait.queue->Queues.Priority, - &the_thread->RBNode - ); - } - - the_thread->Wait.return_code = return_code; - - /* - * We found a thread to unblock. - * - * NOTE: This is invoked with interrupts still disabled. - */ - _Thread_blocking_operation_Finalize( the_thread, level ); -} - -void _Thread_queue_Extract( - Thread_queue_Control *the_thread_queue, - Thread_Control *the_thread -) -{ - _Thread_queue_Extract_with_return_code( - the_thread_queue, - the_thread, - the_thread->Wait.return_code - ); -} |