summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cpukit/score/Makefile.am2
-rw-r--r--cpukit/score/include/rtems/score/corerwlockimpl.h15
-rw-r--r--cpukit/score/include/rtems/score/threadqimpl.h22
-rw-r--r--cpukit/score/src/corerwlockobtainread.c5
-rw-r--r--cpukit/score/src/corerwlockobtainwrite.c6
-rw-r--r--cpukit/score/src/corerwlocktimeout.c45
-rw-r--r--cpukit/score/src/threadqenqueue.c11
7 files changed, 14 insertions, 92 deletions
diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am
index 0a6beb4522..f8ad60da3a 100644
--- a/cpukit/score/Makefile.am
+++ b/cpukit/score/Makefile.am
@@ -174,7 +174,7 @@ libscore_a_SOURCES += src/percpuasm.c
## CORE_RWLOCK_C_FILES
if HAS_PTHREADS
libscore_a_SOURCES += src/corerwlock.c src/corerwlockobtainread.c \
- src/corerwlockobtainwrite.c src/corerwlockrelease.c src/corerwlocktimeout.c
+ src/corerwlockobtainwrite.c src/corerwlockrelease.c
endif
## CORE_SEMAPHORE_C_FILES
diff --git a/cpukit/score/include/rtems/score/corerwlockimpl.h b/cpukit/score/include/rtems/score/corerwlockimpl.h
index 66c3b1a112..331510ba02 100644
--- a/cpukit/score/include/rtems/score/corerwlockimpl.h
+++ b/cpukit/score/include/rtems/score/corerwlockimpl.h
@@ -168,21 +168,6 @@ CORE_RWLock_Status _CORE_RWLock_Release(
)
/**
- * @brief RWLock specific thread queue timeout.
- *
- * This routine processes a thread which timeouts while waiting on
- * an RWLock's thread queue. It is called by the watchdog handler.
- *
- * @param[in] id is the Id of thread to timeout
- * @param[in] ignored is an unused pointer to a caller defined area
- */
-
-void _CORE_RWLock_Timeout(
- Objects_Id id,
- void *ignored
-);
-
-/**
* This method is used to initialize core rwlock attributes.
*
* @param[in] the_attributes pointer to the attributes to initialize.
diff --git a/cpukit/score/include/rtems/score/threadqimpl.h b/cpukit/score/include/rtems/score/threadqimpl.h
index 2fa797467b..57bdf054b9 100644
--- a/cpukit/score/include/rtems/score/threadqimpl.h
+++ b/cpukit/score/include/rtems/score/threadqimpl.h
@@ -64,19 +64,6 @@ Thread_Control *_Thread_queue_Dequeue(
);
/**
- * @brief Enqueues the currently executing thread on the_thread_queue.
- *
- * This routine enqueues the currently executing thread on
- * the_thread_queue with an optional timeout.
- */
-#define _Thread_queue_Enqueue( _the_thread_queue, _the_thread, _timeout ) \
- _Thread_queue_Enqueue_with_handler( \
- _the_thread_queue, \
- _the_thread, \
- _timeout, \
- _Thread_queue_Timeout )
-
-/**
* @brief Blocks a thread and places it on a thread.
*
* This routine blocks a thread, places it on a thread, and optionally
@@ -89,11 +76,10 @@ Thread_Control *_Thread_queue_Dequeue(
* - INTERRUPT LATENCY:
* + single case
*/
-void _Thread_queue_Enqueue_with_handler(
- Thread_queue_Control *the_thread_queue,
- Thread_Control *the_thread,
- Watchdog_Interval timeout,
- Thread_queue_Timeout_callout handler
+void _Thread_queue_Enqueue(
+ Thread_queue_Control *the_thread_queue,
+ Thread_Control *the_thread,
+ Watchdog_Interval timeout
);
/**
diff --git a/cpukit/score/src/corerwlockobtainread.c b/cpukit/score/src/corerwlockobtainread.c
index c118e2900f..f3851b4fd3 100644
--- a/cpukit/score/src/corerwlockobtainread.c
+++ b/cpukit/score/src/corerwlockobtainread.c
@@ -84,11 +84,10 @@ void _CORE_RWLock_Obtain_for_reading(
executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;
_ISR_Enable( level );
- _Thread_queue_Enqueue_with_handler(
+ _Thread_queue_Enqueue(
&the_rwlock->Wait_queue,
executing,
- timeout,
- _CORE_RWLock_Timeout
+ timeout
);
/* return to API level so it can dispatch and we block */
diff --git a/cpukit/score/src/corerwlockobtainwrite.c b/cpukit/score/src/corerwlockobtainwrite.c
index 40da6c9f4e..ea7d25c0e3 100644
--- a/cpukit/score/src/corerwlockobtainwrite.c
+++ b/cpukit/score/src/corerwlockobtainwrite.c
@@ -74,13 +74,11 @@ void _CORE_RWLock_Obtain_for_writing(
executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;
_ISR_Enable( level );
- _Thread_queue_Enqueue_with_handler(
+ _Thread_queue_Enqueue(
&the_rwlock->Wait_queue,
executing,
- timeout,
- _CORE_RWLock_Timeout
+ timeout
);
-
/* return to API level so it can dispatch and we block */
}
diff --git a/cpukit/score/src/corerwlocktimeout.c b/cpukit/score/src/corerwlocktimeout.c
deleted file mode 100644
index 2e4b03f534..0000000000
--- a/cpukit/score/src/corerwlocktimeout.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * @file
- *
- * @brief RWLock Specific Thread Queue Timeout
- * @ingroup ScoreRWLock
- */
-
-/*
- * COPYRIGHT (c) 1989-2007.
- * 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/corerwlockimpl.h>
-#include <rtems/score/threadimpl.h>
-#include <rtems/score/threadqimpl.h>
-
-void _CORE_RWLock_Timeout(
- Objects_Id id,
- void *ignored
-)
-{
- Thread_Control *the_thread;
- Objects_Locations location;
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
-#if defined(RTEMS_MULTIPROCESSING)
- case OBJECTS_REMOTE: /* impossible */
-#endif
- break;
- case OBJECTS_LOCAL:
- _Thread_queue_Process_timeout( the_thread );
- _Objects_Put_without_thread_dispatch( &the_thread->Object );
- break;
- }
-}
diff --git a/cpukit/score/src/threadqenqueue.c b/cpukit/score/src/threadqenqueue.c
index c059556408..904855156b 100644
--- a/cpukit/score/src/threadqenqueue.c
+++ b/cpukit/score/src/threadqenqueue.c
@@ -101,11 +101,10 @@ static void _Thread_queue_Requeue_priority(
);
}
-void _Thread_queue_Enqueue_with_handler(
- Thread_queue_Control *the_thread_queue,
- Thread_Control *the_thread,
- Watchdog_Interval timeout,
- Thread_queue_Timeout_callout handler
+void _Thread_queue_Enqueue(
+ Thread_queue_Control *the_thread_queue,
+ Thread_Control *the_thread,
+ Watchdog_Interval timeout
)
{
ISR_lock_Context lock_context;
@@ -127,7 +126,7 @@ void _Thread_queue_Enqueue_with_handler(
if ( timeout ) {
_Watchdog_Initialize(
&the_thread->Timer,
- handler,
+ _Thread_queue_Timeout,
the_thread->Object.id,
NULL
);