[rtems commit] score: Create threadq implementation header

Sebastian Huber sebh at rtems.org
Fri Jul 26 09:51:53 UTC 2013


Module:    rtems
Branch:    master
Commit:    a1123646ac9f599d931a20217fad763cadbc5a13
Changeset: http://git.rtems.org/rtems/commit/?id=a1123646ac9f599d931a20217fad763cadbc5a13

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Jul 24 17:30:26 2013 +0200

score: Create threadq implementation header

Move implementation specific parts of tqdata.h, threadq.h and
threadq.inl into new header file threadqimpl.h.  The threadq.h contains
now only the application visible API.

Delete tqdata.h.

---

 cpukit/posix/include/rtems/posix/cond.h            |    2 +-
 cpukit/posix/include/rtems/posix/psignalimpl.h     |    1 +
 cpukit/posix/include/rtems/posix/threadsup.h       |    6 +-
 cpukit/posix/src/pbarrierwait.c                    |    2 +-
 cpukit/posix/src/prwlockdestroy.c                  |    2 +-
 cpukit/posix/src/prwlockrdlock.c                   |    2 +-
 cpukit/posix/src/prwlocktimedrdlock.c              |    2 +-
 cpukit/posix/src/prwlocktimedwrlock.c              |    2 +-
 cpukit/posix/src/prwlocktryrdlock.c                |    2 +-
 cpukit/posix/src/prwlocktrywrlock.c                |    2 +-
 cpukit/posix/src/prwlockwrlock.c                   |    2 +-
 cpukit/posix/src/psignal.c                         |    2 +-
 cpukit/posix/src/psignalchecksignal.c              |    1 -
 cpukit/posix/src/psignalclearprocesssignals.c      |    1 -
 cpukit/posix/src/psignalclearsignals.c             |    1 -
 cpukit/posix/src/psignalsetprocesssignals.c        |    1 -
 cpukit/posix/src/psignalunblockthread.c            |    2 +-
 cpukit/posix/src/pthread.c                         |    2 +-
 cpukit/posix/src/pthreadexit.c                     |    3 +-
 cpukit/posix/src/pthreadjoin.c                     |    2 +-
 cpukit/posix/src/sigtimedwait.c                    |    3 +-
 cpukit/rtems/include/rtems/rtems/region.h          |    2 +-
 cpukit/rtems/src/barrierdelete.c                   |    6 +-
 cpukit/rtems/src/barrierrelease.c                  |    1 -
 cpukit/rtems/src/barrierwait.c                     |    1 -
 cpukit/rtems/src/partmp.c                          |    9 +-
 cpukit/rtems/src/regioncreate.c                    |    2 +-
 cpukit/rtems/src/regiongetsegment.c                |    8 +-
 cpukit/rtems/src/regionmp.c                        |    1 +
 cpukit/rtems/src/regionprocessqueue.c              |    7 +-
 cpukit/rtems/src/sem.c                             |    1 -
 cpukit/rtems/src/semcreate.c                       |    1 -
 cpukit/rtems/src/semdelete.c                       |    1 -
 cpukit/rtems/src/semflush.c                        |    1 -
 cpukit/rtems/src/semident.c                        |    1 -
 cpukit/rtems/src/semobtain.c                       |    1 -
 cpukit/rtems/src/semrelease.c                      |    1 -
 cpukit/rtems/src/signalmp.c                        |    1 +
 cpukit/rtems/src/taskident.c                       |    1 -
 cpukit/rtems/src/taskinitusers.c                   |    1 -
 cpukit/rtems/src/taskmp.c                          |    1 +
 cpukit/rtems/src/tasks.c                           |    1 -
 cpukit/score/Makefile.am                           |    3 +-
 cpukit/score/include/rtems/score/corebarrier.h     |    2 +-
 cpukit/score/include/rtems/score/corebarrierimpl.h |    1 -
 cpukit/score/include/rtems/score/coremsg.h         |    3 +-
 cpukit/score/include/rtems/score/coremsgimpl.h     |    1 +
 cpukit/score/include/rtems/score/coremuteximpl.h   |    1 +
 cpukit/score/include/rtems/score/corerwlock.h      |    2 +-
 cpukit/score/include/rtems/score/corerwlockimpl.h  |    1 -
 cpukit/score/include/rtems/score/coresem.h         |    2 +-
 cpukit/score/include/rtems/score/coresemimpl.h     |    4 +-
 cpukit/score/include/rtems/score/mpci.h            |    1 -
 cpukit/score/include/rtems/score/thread.h          |    2 +-
 cpukit/score/include/rtems/score/threadq.h         |  412 +++----------------
 cpukit/score/include/rtems/score/threadqimpl.h     |  428 ++++++++++++++++++++
 cpukit/score/include/rtems/score/tqdata.h          |  118 ------
 cpukit/score/inline/rtems/score/tqdata.inl         |   71 ----
 cpukit/score/preinstall.am                         |   12 +-
 cpukit/score/src/corebarrier.c                     |    3 +-
 cpukit/score/src/corebarrierrelease.c              |    5 +-
 cpukit/score/src/corebarrierwait.c                 |    6 +-
 cpukit/score/src/coremsg.c                         |    1 -
 cpukit/score/src/coremutex.c                       |    1 -
 cpukit/score/src/coremutexflush.c                  |    1 -
 cpukit/score/src/coremutexseize.c                  |    1 -
 cpukit/score/src/coremutexseizeintr.c              |    1 -
 cpukit/score/src/coremutexsurrender.c              |    1 -
 cpukit/score/src/corerwlock.c                      |    2 +-
 cpukit/score/src/corerwlockobtainread.c            |    3 +-
 cpukit/score/src/corerwlockobtainwrite.c           |    3 +-
 cpukit/score/src/corerwlockrelease.c               |    2 +-
 cpukit/score/src/corerwlocktimeout.c               |    1 +
 cpukit/score/src/coresem.c                         |    1 -
 cpukit/score/src/coresemflush.c                    |    1 -
 cpukit/score/src/coresemseize.c                    |    1 -
 cpukit/score/src/coresemsurrender.c                |    1 -
 cpukit/score/src/corespinlock.c                    |    1 -
 cpukit/score/src/mpci.c                            |    4 +-
 cpukit/score/src/threadchangepriority.c            |    3 +-
 cpukit/score/src/threadclose.c                     |    2 +-
 cpukit/score/src/threadinitialize.c                |    1 -
 cpukit/score/src/threadq.c                         |    7 +-
 cpukit/score/src/threadqdequeue.c                  |    9 +-
 cpukit/score/src/threadqdequeuefifo.c              |    2 +-
 cpukit/score/src/threadqdequeuepriority.c          |    2 +-
 cpukit/score/src/threadqenqueue.c                  |    2 +-
 cpukit/score/src/threadqenqueuefifo.c              |    8 +-
 cpukit/score/src/threadqenqueuepriority.c          |    3 +-
 cpukit/score/src/threadqextract.c                  |    8 +-
 cpukit/score/src/threadqextractfifo.c              |    2 +-
 cpukit/score/src/threadqextractpriority.c          |    2 +-
 cpukit/score/src/threadqextractwithproxy.c         |    2 +-
 cpukit/score/src/threadqfirst.c                    |    8 +-
 cpukit/score/src/threadqfirstfifo.c                |    7 +-
 cpukit/score/src/threadqfirstpriority.c            |    7 +-
 cpukit/score/src/threadqflush.c                    |    7 +-
 cpukit/score/src/threadqprocesstimeout.c           |    2 +-
 cpukit/score/src/threadqrequeue.c                  |    2 +-
 cpukit/score/src/threadqtimeout.c                  |    2 +-
 cpukit/score/src/threadreset.c                     |    2 +-
 testsuites/sptests/sp58/init.c                     |    1 -
 testsuites/sptests/spthreadq01/init.c              |    2 +-
 103 files changed, 570 insertions(+), 719 deletions(-)

diff --git a/cpukit/posix/include/rtems/posix/cond.h b/cpukit/posix/include/rtems/posix/cond.h
index 0e3e68c..cbaa87e 100644
--- a/cpukit/posix/include/rtems/posix/cond.h
+++ b/cpukit/posix/include/rtems/posix/cond.h
@@ -20,7 +20,7 @@
 #define _RTEMS_POSIX_COND_H
 
 #include <rtems/score/object.h>
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadq.h>
 
 #include <pthread.h>
 
diff --git a/cpukit/posix/include/rtems/posix/psignalimpl.h b/cpukit/posix/include/rtems/posix/psignalimpl.h
index 7425935..2dd1ed6 100644
--- a/cpukit/posix/include/rtems/posix/psignalimpl.h
+++ b/cpukit/posix/include/rtems/posix/psignalimpl.h
@@ -32,6 +32,7 @@
 #include <rtems/posix/pthread.h>
 #include <rtems/posix/sigset.h>
 #include <rtems/score/apiext.h>
+#include <rtems/score/threadq.h>
 
 #define _States_Is_interruptible_signal( _states ) \
   ( ((_states) & \
diff --git a/cpukit/posix/include/rtems/posix/threadsup.h b/cpukit/posix/include/rtems/posix/threadsup.h
index db9288c..f1a87c9 100644
--- a/cpukit/posix/include/rtems/posix/threadsup.h
+++ b/cpukit/posix/include/rtems/posix/threadsup.h
@@ -18,11 +18,13 @@
 #ifndef _RTEMS_POSIX_THREADSUP_H
 #define _RTEMS_POSIX_THREADSUP_H
 
-#include <sys/signal.h>
 #include <rtems/score/coresem.h>
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadq.h>
 #include <rtems/score/watchdog.h>
 
+#include <pthread.h>
+#include <signal.h>
+
 /**
  *  @defgroup POSIX_THREAD POSIX Thread API Extension
  *
diff --git a/cpukit/posix/src/pbarrierwait.c b/cpukit/posix/src/pbarrierwait.c
index 1d7b981..8833589 100644
--- a/cpukit/posix/src/pbarrierwait.c
+++ b/cpukit/posix/src/pbarrierwait.c
@@ -21,8 +21,8 @@
 #include <pthread.h>
 #include <errno.h>
 
-#include <rtems/system.h>
 #include <rtems/posix/barrierimpl.h>
+#include <rtems/score/thread.h>
 
 /**
  * This directive allows a thread to wait at a barrier.
diff --git a/cpukit/posix/src/prwlockdestroy.c b/cpukit/posix/src/prwlockdestroy.c
index a55e985..8db5cd0 100644
--- a/cpukit/posix/src/prwlockdestroy.c
+++ b/cpukit/posix/src/prwlockdestroy.c
@@ -20,8 +20,8 @@
 #include <pthread.h>
 #include <errno.h>
 
-#include <rtems/system.h>
 #include <rtems/posix/rwlockimpl.h>
+#include <rtems/score/threadqimpl.h>
 
 /**
  *  This directive allows a thread to delete a rwlock specified by
diff --git a/cpukit/posix/src/prwlockrdlock.c b/cpukit/posix/src/prwlockrdlock.c
index e045b07..5d56115 100644
--- a/cpukit/posix/src/prwlockrdlock.c
+++ b/cpukit/posix/src/prwlockrdlock.c
@@ -21,8 +21,8 @@
 #include <pthread.h>
 #include <errno.h>
 
-#include <rtems/system.h>
 #include <rtems/posix/rwlockimpl.h>
+#include <rtems/score/thread.h>
 
 /**
  * This directive attempts to obtain a read only lock on an rwlock instance.
diff --git a/cpukit/posix/src/prwlocktimedrdlock.c b/cpukit/posix/src/prwlocktimedrdlock.c
index 6aec5f3..c548512 100644
--- a/cpukit/posix/src/prwlocktimedrdlock.c
+++ b/cpukit/posix/src/prwlocktimedrdlock.c
@@ -21,9 +21,9 @@
 #include <pthread.h>
 #include <errno.h>
 
-#include <rtems/system.h>
 #include <rtems/posix/rwlockimpl.h>
 #include <rtems/posix/time.h>
+#include <rtems/score/thread.h>
 
 /*
  *  pthread_rwlock_timedrdlock
diff --git a/cpukit/posix/src/prwlocktimedwrlock.c b/cpukit/posix/src/prwlocktimedwrlock.c
index 5772159..88d555c 100644
--- a/cpukit/posix/src/prwlocktimedwrlock.c
+++ b/cpukit/posix/src/prwlocktimedwrlock.c
@@ -23,9 +23,9 @@
 #include <pthread.h>
 #include <errno.h>
 
-#include <rtems/system.h>
 #include <rtems/posix/rwlockimpl.h>
 #include <rtems/posix/time.h>
+#include <rtems/score/thread.h>
 
 /*
  *  pthread_rwlock_timedwrlock
diff --git a/cpukit/posix/src/prwlocktryrdlock.c b/cpukit/posix/src/prwlocktryrdlock.c
index d682802..c24c675 100644
--- a/cpukit/posix/src/prwlocktryrdlock.c
+++ b/cpukit/posix/src/prwlocktryrdlock.c
@@ -21,8 +21,8 @@
 #include <pthread.h>
 #include <errno.h>
 
-#include <rtems/system.h>
 #include <rtems/posix/rwlockimpl.h>
+#include <rtems/score/thread.h>
 
 /*
  *  pthread_rwlock_tryrdlock
diff --git a/cpukit/posix/src/prwlocktrywrlock.c b/cpukit/posix/src/prwlocktrywrlock.c
index 1899836..2c1d4fa 100644
--- a/cpukit/posix/src/prwlocktrywrlock.c
+++ b/cpukit/posix/src/prwlocktrywrlock.c
@@ -21,8 +21,8 @@
 #include <pthread.h>
 #include <errno.h>
 
-#include <rtems/system.h>
 #include <rtems/posix/rwlockimpl.h>
+#include <rtems/score/thread.h>
 
 /*
  *  pthread_rwlock_trywrlock
diff --git a/cpukit/posix/src/prwlockwrlock.c b/cpukit/posix/src/prwlockwrlock.c
index 799fb7a..b9f85ba 100644
--- a/cpukit/posix/src/prwlockwrlock.c
+++ b/cpukit/posix/src/prwlockwrlock.c
@@ -23,8 +23,8 @@
 #include <pthread.h>
 #include <errno.h>
 
-#include <rtems/system.h>
 #include <rtems/posix/rwlockimpl.h>
+#include <rtems/score/thread.h>
 
 /*
  *  pthread_rwlock_wrlock
diff --git a/cpukit/posix/src/psignal.c b/cpukit/posix/src/psignal.c
index 62c746d..1778cec 100644
--- a/cpukit/posix/src/psignal.c
+++ b/cpukit/posix/src/psignal.c
@@ -25,7 +25,7 @@
 
 #include <rtems/score/isrlevel.h>
 #include <rtems/score/statesimpl.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/watchdogimpl.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/posix/threadsup.h>
diff --git a/cpukit/posix/src/psignalchecksignal.c b/cpukit/posix/src/psignalchecksignal.c
index 53a4632..cb3703e 100644
--- a/cpukit/posix/src/psignalchecksignal.c
+++ b/cpukit/posix/src/psignalchecksignal.c
@@ -29,7 +29,6 @@
 #include <rtems/system.h>
 #include <rtems/score/isr.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/tqdata.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/seterr.h>
 #include <rtems/posix/threadsup.h>
diff --git a/cpukit/posix/src/psignalclearprocesssignals.c b/cpukit/posix/src/psignalclearprocesssignals.c
index 429a3ed..07e4a21 100644
--- a/cpukit/posix/src/psignalclearprocesssignals.c
+++ b/cpukit/posix/src/psignalclearprocesssignals.c
@@ -25,7 +25,6 @@
 #include <rtems/system.h>
 #include <rtems/score/isr.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/tqdata.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/seterr.h>
 #include <rtems/posix/threadsup.h>
diff --git a/cpukit/posix/src/psignalclearsignals.c b/cpukit/posix/src/psignalclearsignals.c
index 90bd503..389c335 100644
--- a/cpukit/posix/src/psignalclearsignals.c
+++ b/cpukit/posix/src/psignalclearsignals.c
@@ -25,7 +25,6 @@
 #include <rtems/system.h>
 #include <rtems/score/isr.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/tqdata.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/seterr.h>
 #include <rtems/posix/threadsup.h>
diff --git a/cpukit/posix/src/psignalsetprocesssignals.c b/cpukit/posix/src/psignalsetprocesssignals.c
index 122e2f2..3ad1c8a 100644
--- a/cpukit/posix/src/psignalsetprocesssignals.c
+++ b/cpukit/posix/src/psignalsetprocesssignals.c
@@ -25,7 +25,6 @@
 #include <rtems/system.h>
 #include <rtems/score/isr.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/tqdata.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/seterr.h>
 #include <rtems/posix/threadsup.h>
diff --git a/cpukit/posix/src/psignalunblockthread.c b/cpukit/posix/src/psignalunblockthread.c
index 51b034d..fdf6137 100644
--- a/cpukit/posix/src/psignalunblockthread.c
+++ b/cpukit/posix/src/psignalunblockthread.c
@@ -25,7 +25,7 @@
 #include <rtems/system.h>
 #include <rtems/score/isr.h>
 #include <rtems/score/threadimpl.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/watchdogimpl.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/seterr.h>
diff --git a/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c
index f4dcc21..121b087 100644
--- a/cpukit/posix/src/pthread.c
+++ b/cpukit/posix/src/pthread.c
@@ -27,7 +27,7 @@
 #include <rtems/score/apiext.h>
 #include <rtems/score/stack.h>
 #include <rtems/score/threadimpl.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/userextimpl.h>
 #include <rtems/score/watchdogimpl.h>
 #include <rtems/score/wkspace.h>
diff --git a/cpukit/posix/src/pthreadexit.c b/cpukit/posix/src/pthreadexit.c
index 296c32b..46e5ea1 100644
--- a/cpukit/posix/src/pthreadexit.c
+++ b/cpukit/posix/src/pthreadexit.c
@@ -19,12 +19,11 @@
 #endif
 
 #include <pthread.h>
-#include <errno.h>
 
 #include <rtems/posix/pthreadimpl.h>
 #include <rtems/score/apimutex.h>
 #include <rtems/score/threadimpl.h>
-
+#include <rtems/score/threadqimpl.h>
 
 void _POSIX_Thread_Exit(
   Thread_Control *the_thread,
diff --git a/cpukit/posix/src/pthreadjoin.c b/cpukit/posix/src/pthreadjoin.c
index 18039d3..f7a9d45 100644
--- a/cpukit/posix/src/pthreadjoin.c
+++ b/cpukit/posix/src/pthreadjoin.c
@@ -25,7 +25,7 @@
 
 #include <rtems/posix/pthreadimpl.h>
 #include <rtems/score/threadimpl.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 
 int pthread_join(
   pthread_t   thread,
diff --git a/cpukit/posix/src/sigtimedwait.c b/cpukit/posix/src/sigtimedwait.c
index c067c84..ba24c85 100644
--- a/cpukit/posix/src/sigtimedwait.c
+++ b/cpukit/posix/src/sigtimedwait.c
@@ -22,13 +22,12 @@
 #include <signal.h>
 #include <errno.h>
 
-#include <rtems/system.h>
 #include <rtems/posix/pthreadimpl.h>
 #include <rtems/posix/psignalimpl.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/seterr.h>
 #include <rtems/posix/time.h>
 #include <rtems/score/isr.h>
-#include <rtems/score/threadq.h>
 
 static int _POSIX_signals_Get_lowest(
   sigset_t   set
diff --git a/cpukit/rtems/include/rtems/rtems/region.h b/cpukit/rtems/include/rtems/rtems/region.h
index ce471b8..37bf82e 100644
--- a/cpukit/rtems/include/rtems/rtems/region.h
+++ b/cpukit/rtems/include/rtems/rtems/region.h
@@ -35,7 +35,7 @@
 #include <rtems/rtems/status.h>
 #include <rtems/rtems/types.h>
 #include <rtems/score/heap.h>
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadq.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/cpukit/rtems/src/barrierdelete.c b/cpukit/rtems/src/barrierdelete.c
index 8e958c3..8cfd162 100644
--- a/cpukit/rtems/src/barrierdelete.c
+++ b/cpukit/rtems/src/barrierdelete.c
@@ -18,12 +18,8 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/support.h>
 #include <rtems/rtems/barrierimpl.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 
 rtems_status_code rtems_barrier_delete(
   rtems_id   id
diff --git a/cpukit/rtems/src/barrierrelease.c b/cpukit/rtems/src/barrierrelease.c
index 1840ca9..ef1bba5 100644
--- a/cpukit/rtems/src/barrierrelease.c
+++ b/cpukit/rtems/src/barrierrelease.c
@@ -23,7 +23,6 @@
 #include <rtems/rtems/support.h>
 #include <rtems/rtems/barrierimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 /*
  *  rtems_barrier_release
diff --git a/cpukit/rtems/src/barrierwait.c b/cpukit/rtems/src/barrierwait.c
index a233908..5d9081e 100644
--- a/cpukit/rtems/src/barrierwait.c
+++ b/cpukit/rtems/src/barrierwait.c
@@ -23,7 +23,6 @@
 #include <rtems/rtems/support.h>
 #include <rtems/rtems/barrierimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 rtems_status_code rtems_barrier_wait(
   rtems_id        id,
diff --git a/cpukit/rtems/src/partmp.c b/cpukit/rtems/src/partmp.c
index a3b2d21..3b256dc 100644
--- a/cpukit/rtems/src/partmp.c
+++ b/cpukit/rtems/src/partmp.c
@@ -18,17 +18,10 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/rtems/status.h>
-#include <rtems/score/mpci.h>
-#include <rtems/score/mppkt.h>
-#include <rtems/score/object.h>
-#include <rtems/rtems/options.h>
 #include <rtems/rtems/partimpl.h>
-#include <rtems/score/thread.h>
-#include <rtems/rtems/support.h>
 #include <rtems/score/statesimpl.h>
 #include <rtems/score/threadimpl.h>
+#include <rtems/score/threadqimpl.h>
 
 RTEMS_STATIC_ASSERT(
   sizeof(Partition_MP_Packet) <= MP_PACKET_MINIMUM_PACKET_SIZE,
diff --git a/cpukit/rtems/src/regioncreate.c b/cpukit/rtems/src/regioncreate.c
index b12647d..01d8f65 100644
--- a/cpukit/rtems/src/regioncreate.c
+++ b/cpukit/rtems/src/regioncreate.c
@@ -23,7 +23,7 @@
 #include <rtems/rtems/support.h>
 #include <rtems/score/apimutex.h>
 #include <rtems/score/statesimpl.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 
 /*
  *  rtems_region_create
diff --git a/cpukit/rtems/src/regiongetsegment.c b/cpukit/rtems/src/regiongetsegment.c
index 6622219..8fea5f8 100644
--- a/cpukit/rtems/src/regiongetsegment.c
+++ b/cpukit/rtems/src/regiongetsegment.c
@@ -18,14 +18,10 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/support.h>
-#include <rtems/score/object.h>
-#include <rtems/rtems/optionsimpl.h>
 #include <rtems/rtems/regionimpl.h>
-#include <rtems/score/thread.h>
+#include <rtems/rtems/optionsimpl.h>
 #include <rtems/score/apimutex.h>
+#include <rtems/score/threadqimpl.h>
 
 rtems_status_code rtems_region_get_segment(
   rtems_id           id,
diff --git a/cpukit/rtems/src/regionmp.c b/cpukit/rtems/src/regionmp.c
index 41b52fa..7f45c20 100644
--- a/cpukit/rtems/src/regionmp.c
+++ b/cpukit/rtems/src/regionmp.c
@@ -29,6 +29,7 @@
 #include <rtems/rtems/support.h>
 #include <rtems/score/statesimpl.h>
 #include <rtems/score/threadimpl.h>
+#include <rtems/score/threadqimpl.h>
 
 RTEMS_STATIC_ASSERT(
   sizeof(Region_MP_Packet) <= MP_PACKET_MINIMUM_PACKET_SIZE,
diff --git a/cpukit/rtems/src/regionprocessqueue.c b/cpukit/rtems/src/regionprocessqueue.c
index f2c11df..4a07a2a 100644
--- a/cpukit/rtems/src/regionprocessqueue.c
+++ b/cpukit/rtems/src/regionprocessqueue.c
@@ -18,14 +18,9 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/support.h>
-#include <rtems/score/object.h>
-#include <rtems/rtems/options.h>
 #include <rtems/rtems/regionimpl.h>
-#include <rtems/score/thread.h>
 #include <rtems/score/apimutex.h>
+#include <rtems/score/threadqimpl.h>
 
 void _Region_Process_queue(
   Region_Control *the_region
diff --git a/cpukit/rtems/src/sem.c b/cpukit/rtems/src/sem.c
index 40bec8d..7136802 100644
--- a/cpukit/rtems/src/sem.c
+++ b/cpukit/rtems/src/sem.c
@@ -30,7 +30,6 @@
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #if defined(RTEMS_MULTIPROCESSING)
 #include <rtems/score/mpci.h>
 #endif
diff --git a/cpukit/rtems/src/semcreate.c b/cpukit/rtems/src/semcreate.c
index 8afb1b6..3246d48 100644
--- a/cpukit/rtems/src/semcreate.c
+++ b/cpukit/rtems/src/semcreate.c
@@ -29,7 +29,6 @@
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #if defined(RTEMS_MULTIPROCESSING)
 #include <rtems/score/mpci.h>
 #endif
diff --git a/cpukit/rtems/src/semdelete.c b/cpukit/rtems/src/semdelete.c
index 5ae516d..31fafb5 100644
--- a/cpukit/rtems/src/semdelete.c
+++ b/cpukit/rtems/src/semdelete.c
@@ -29,7 +29,6 @@
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #if defined(RTEMS_MULTIPROCESSING)
 #include <rtems/score/mpci.h>
 #endif
diff --git a/cpukit/rtems/src/semflush.c b/cpukit/rtems/src/semflush.c
index 93aac39..6353f6c 100644
--- a/cpukit/rtems/src/semflush.c
+++ b/cpukit/rtems/src/semflush.c
@@ -29,7 +29,6 @@
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #if defined(RTEMS_MULTIPROCESSING)
 #include <rtems/score/mpci.h>
 #endif
diff --git a/cpukit/rtems/src/semident.c b/cpukit/rtems/src/semident.c
index a7b383b..7a8f6d8 100644
--- a/cpukit/rtems/src/semident.c
+++ b/cpukit/rtems/src/semident.c
@@ -29,7 +29,6 @@
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #if defined(RTEMS_MULTIPROCESSING)
 #include <rtems/score/mpci.h>
 #endif
diff --git a/cpukit/rtems/src/semobtain.c b/cpukit/rtems/src/semobtain.c
index ca7735f..f204221 100644
--- a/cpukit/rtems/src/semobtain.c
+++ b/cpukit/rtems/src/semobtain.c
@@ -29,7 +29,6 @@
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #if defined(RTEMS_MULTIPROCESSING)
 #include <rtems/score/mpci.h>
 #endif
diff --git a/cpukit/rtems/src/semrelease.c b/cpukit/rtems/src/semrelease.c
index e0f148c..109cb7c 100644
--- a/cpukit/rtems/src/semrelease.c
+++ b/cpukit/rtems/src/semrelease.c
@@ -44,7 +44,6 @@
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #if defined(RTEMS_MULTIPROCESSING)
 #include <rtems/score/mpci.h>
 #endif
diff --git a/cpukit/rtems/src/signalmp.c b/cpukit/rtems/src/signalmp.c
index ec778ac..3deffcf 100644
--- a/cpukit/rtems/src/signalmp.c
+++ b/cpukit/rtems/src/signalmp.c
@@ -30,6 +30,7 @@
 #include <rtems/rtems/support.h>
 #include <rtems/score/statesimpl.h>
 #include <rtems/score/threadimpl.h>
+#include <rtems/score/threadqimpl.h>
 
 RTEMS_STATIC_ASSERT(
   sizeof(Signal_MP_Packet) <= MP_PACKET_MINIMUM_PACKET_SIZE,
diff --git a/cpukit/rtems/src/taskident.c b/cpukit/rtems/src/taskident.c
index a63251c..c3c0fb7 100644
--- a/cpukit/rtems/src/taskident.c
+++ b/cpukit/rtems/src/taskident.c
@@ -26,7 +26,6 @@
 #include <rtems/score/stack.h>
 #include <rtems/rtems/tasksimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #include <rtems/score/tod.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/score/apiext.h>
diff --git a/cpukit/rtems/src/taskinitusers.c b/cpukit/rtems/src/taskinitusers.c
index 3b498f4..6c6f84b 100644
--- a/cpukit/rtems/src/taskinitusers.c
+++ b/cpukit/rtems/src/taskinitusers.c
@@ -28,7 +28,6 @@
 #include <rtems/score/stack.h>
 #include <rtems/rtems/tasksimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #include <rtems/score/tod.h>
 #include <rtems/score/wkspace.h>
 #include <rtems/score/apiext.h>
diff --git a/cpukit/rtems/src/taskmp.c b/cpukit/rtems/src/taskmp.c
index 4323f4e..08b7be1 100644
--- a/cpukit/rtems/src/taskmp.c
+++ b/cpukit/rtems/src/taskmp.c
@@ -30,6 +30,7 @@
 #include <rtems/rtems/support.h>
 #include <rtems/score/statesimpl.h>
 #include <rtems/score/threadimpl.h>
+#include <rtems/score/threadqimpl.h>
 
 RTEMS_STATIC_ASSERT(
   sizeof(RTEMS_tasks_MP_Packet) <= MP_PACKET_MINIMUM_PACKET_SIZE,
diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c
index 49d0ad4..a8920e0 100644
--- a/cpukit/rtems/src/tasks.c
+++ b/cpukit/rtems/src/tasks.c
@@ -29,7 +29,6 @@
 #include <rtems/score/stack.h>
 #include <rtems/rtems/tasksimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 #include <rtems/score/tod.h>
 #include <rtems/score/userextimpl.h>
 #include <rtems/score/wkspace.h>
diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am
index be9dcc2..3cb6b7f 100644
--- a/cpukit/score/Makefile.am
+++ b/cpukit/score/Makefile.am
@@ -62,12 +62,12 @@ include_rtems_score_HEADERS += include/rtems/score/thread.h
 include_rtems_score_HEADERS += include/rtems/score/threadimpl.h
 include_rtems_score_HEADERS += include/rtems/score/threaddispatch.h
 include_rtems_score_HEADERS += include/rtems/score/threadq.h
+include_rtems_score_HEADERS += include/rtems/score/threadqimpl.h
 include_rtems_score_HEADERS += include/rtems/score/threadsync.h
 include_rtems_score_HEADERS += include/rtems/score/timespec.h
 include_rtems_score_HEADERS += include/rtems/score/timestamp.h
 include_rtems_score_HEADERS += include/rtems/score/timestamp64.h
 include_rtems_score_HEADERS += include/rtems/score/tod.h
-include_rtems_score_HEADERS += include/rtems/score/tqdata.h
 include_rtems_score_HEADERS += include/rtems/score/userext.h
 include_rtems_score_HEADERS += include/rtems/score/userextimpl.h
 include_rtems_score_HEADERS += include/rtems/score/watchdog.h
@@ -102,7 +102,6 @@ endif
 ## inline
 include_rtems_score_HEADERS += inline/rtems/score/object.inl
 include_rtems_score_HEADERS += inline/rtems/score/tod.inl
-include_rtems_score_HEADERS += inline/rtems/score/tqdata.inl
 
 if HAS_MP
 ## We only build multiprocessing related files if HAS_MP was defined
diff --git a/cpukit/score/include/rtems/score/corebarrier.h b/cpukit/score/include/rtems/score/corebarrier.h
index 1505efc..ed4bd84 100644
--- a/cpukit/score/include/rtems/score/corebarrier.h
+++ b/cpukit/score/include/rtems/score/corebarrier.h
@@ -19,7 +19,7 @@
 #ifndef _RTEMS_SCORE_COREBARRIER_H
 #define _RTEMS_SCORE_COREBARRIER_H
 
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadq.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/cpukit/score/include/rtems/score/corebarrierimpl.h b/cpukit/score/include/rtems/score/corebarrierimpl.h
index 0353efb..f2bcf6a 100644
--- a/cpukit/score/include/rtems/score/corebarrierimpl.h
+++ b/cpukit/score/include/rtems/score/corebarrierimpl.h
@@ -20,7 +20,6 @@
 #define _RTEMS_SCORE_COREBARRIERIMPL_H
 
 #include <rtems/score/corebarrier.h>
-#include <rtems/score/threadq.h>
 #include <rtems/score/watchdog.h>
 
 #ifdef __cplusplus
diff --git a/cpukit/score/include/rtems/score/coremsg.h b/cpukit/score/include/rtems/score/coremsg.h
index 6e37c61..46df868 100644
--- a/cpukit/score/include/rtems/score/coremsg.h
+++ b/cpukit/score/include/rtems/score/coremsg.h
@@ -19,9 +19,8 @@
 #ifndef _RTEMS_SCORE_COREMSG_H
 #define _RTEMS_SCORE_COREMSG_H
 
-#include <rtems/score/thread.h>
+#include <rtems/score/chain.h>
 #include <rtems/score/threadq.h>
-#include <rtems/score/priority.h>
 #include <rtems/score/watchdog.h>
 
 #ifdef __cplusplus
diff --git a/cpukit/score/include/rtems/score/coremsgimpl.h b/cpukit/score/include/rtems/score/coremsgimpl.h
index d9f8f91..c75a1a3 100644
--- a/cpukit/score/include/rtems/score/coremsgimpl.h
+++ b/cpukit/score/include/rtems/score/coremsgimpl.h
@@ -21,6 +21,7 @@
 
 #include <rtems/score/coremsg.h>
 #include <rtems/score/chainimpl.h>
+#include <rtems/score/threadqimpl.h>
 
 #include <limits.h>
 #include <string.h>
diff --git a/cpukit/score/include/rtems/score/coremuteximpl.h b/cpukit/score/include/rtems/score/coremuteximpl.h
index 756cd96..aa7f0d9 100644
--- a/cpukit/score/include/rtems/score/coremuteximpl.h
+++ b/cpukit/score/include/rtems/score/coremuteximpl.h
@@ -22,6 +22,7 @@
 #include <rtems/score/chainimpl.h>
 #include <rtems/score/sysstate.h>
 #include <rtems/score/threadimpl.h>
+#include <rtems/score/threadqimpl.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/cpukit/score/include/rtems/score/corerwlock.h b/cpukit/score/include/rtems/score/corerwlock.h
index 3ed5114..d9b43c4 100644
--- a/cpukit/score/include/rtems/score/corerwlock.h
+++ b/cpukit/score/include/rtems/score/corerwlock.h
@@ -19,7 +19,7 @@
 #ifndef _RTEMS_SCORE_CORERWLOCK_H
 #define _RTEMS_SCORE_CORERWLOCK_H
 
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadq.h>
 
 /**
  *  @defgroup ScoreRWLock RWLock Handler
diff --git a/cpukit/score/include/rtems/score/corerwlockimpl.h b/cpukit/score/include/rtems/score/corerwlockimpl.h
index a47f400..b67c79f 100644
--- a/cpukit/score/include/rtems/score/corerwlockimpl.h
+++ b/cpukit/score/include/rtems/score/corerwlockimpl.h
@@ -20,7 +20,6 @@
 #define _RTEMS_SCORE_CORERWLOCKIMPL_H
 
 #include <rtems/score/corerwlock.h>
-#include <rtems/score/threadq.h>
 #include <rtems/score/watchdog.h>
 
 #ifdef __cplusplus
diff --git a/cpukit/score/include/rtems/score/coresem.h b/cpukit/score/include/rtems/score/coresem.h
index 7a20408..fb9e6b2 100644
--- a/cpukit/score/include/rtems/score/coresem.h
+++ b/cpukit/score/include/rtems/score/coresem.h
@@ -21,7 +21,7 @@
 #ifndef _RTEMS_SCORE_CORESEM_H
 #define _RTEMS_SCORE_CORESEM_H
 
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadq.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/cpukit/score/include/rtems/score/coresemimpl.h b/cpukit/score/include/rtems/score/coresemimpl.h
index 35fbce5..0a743bf 100644
--- a/cpukit/score/include/rtems/score/coresemimpl.h
+++ b/cpukit/score/include/rtems/score/coresemimpl.h
@@ -20,9 +20,7 @@
 #define _RTEMS_SCORE_CORESEMIMPL_H
 
 #include <rtems/score/coresem.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threaddispatch.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/cpukit/score/include/rtems/score/mpci.h b/cpukit/score/include/rtems/score/mpci.h
index 0932c47..3cb9386 100644
--- a/cpukit/score/include/rtems/score/mpci.h
+++ b/cpukit/score/include/rtems/score/mpci.h
@@ -39,7 +39,6 @@ extern "C" {
 #include <rtems/score/mppkt.h>
 #include <rtems/score/thread.h>
 #include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
 #include <rtems/score/watchdog.h>
 
 /**
diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h
index c07350b..d346ead 100644
--- a/cpukit/score/include/rtems/score/thread.h
+++ b/cpukit/score/include/rtems/score/thread.h
@@ -28,7 +28,7 @@
 #include <rtems/score/priority.h>
 #include <rtems/score/stack.h>
 #include <rtems/score/states.h>
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadq.h>
 #include <rtems/score/watchdog.h>
 
 #ifdef __cplusplus
diff --git a/cpukit/score/include/rtems/score/threadq.h b/cpukit/score/include/rtems/score/threadq.h
index 3fec379..5879576 100644
--- a/cpukit/score/include/rtems/score/threadq.h
+++ b/cpukit/score/include/rtems/score/threadq.h
@@ -1,14 +1,14 @@
 /**
- *  @file  rtems/score/threadq.h
+ *  @file
  *
- *  Constants and Structures Associated with the Manipulation of Objects
+ *  @brief Constants and Structures Needed to Declare a Thread Queue
  *
- *  This include file contains all the constants and structures associated
- *  with the manipulation of objects.
+ *  This include file contains all the constants and structures
+ *  needed to declare a thread queue.
  */
 
 /*
- *  COPYRIGHT (c) 1989-2009.
+ *  COPYRIGHT (c) 1989-2008.
  *  On-Line Applications Research Corporation (OAR).
  *
  *  The license and distribution terms for this file may be
@@ -19,363 +19,77 @@
 #ifndef _RTEMS_SCORE_THREADQ_H
 #define _RTEMS_SCORE_THREADQ_H
 
-#include <rtems/score/tqdata.h>
-
-#include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/watchdog.h>
+#include <rtems/score/chain.h>
+#include <rtems/score/states.h>
+#include <rtems/score/threadsync.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /**
- *  @defgroup ScoreThreadQ Thread Queue Handler
+ *  @defgroup ScoreThreadQueue Thread Queue Handler
  *
  *  @ingroup Score
  *
- *  This handler encapsulates functionality related to managing sets of threads
- *  blocked waiting for resources.
+ *  This handler defines the data shared between the thread and thread
+ *  queue handlers.  Having this handler define these data structure
+ *  avoids potentially circular references.
  */
 /**@{*/
 
 /**
- *  Constant for indefinite wait.
- */
-#define THREAD_QUEUE_WAIT_FOREVER  WATCHDOG_NO_TIMEOUT
-
-/**
- *  The following type defines the callout used when a remote task
- *  is extracted from a local thread queue.
- */
-typedef void ( *Thread_queue_Flush_callout )(
-                  Thread_Control *
-             );
-
-/**
- *  The following type defines the callout used for timeout processing
- *  methods.
- */
-typedef void ( *Thread_queue_Timeout_callout )(
-                 Objects_Id,
-                 void *
-             );
-
-/**
- *  @brief Gets a pointer to a thread waiting on the_thread_queue.
- *
- *  This function returns a pointer to a thread waiting on
- *  the_thread_queue.  The selection of this thread is based on
- *  the discipline of the_thread_queue.  If no threads are waiting
- *  on the_thread_queue, then NULL is returned.
- */
-Thread_Control *_Thread_queue_Dequeue(
-  Thread_queue_Control *the_thread_queue
-);
-
-/**
- *  @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, _timeout ) \
-  _Thread_queue_Enqueue_with_handler( \
-    _the_thread_queue, \
-    _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
- *  starts a timeout timer.
- *
- *  @param[in] the_thread_queue pointer to threadq
- *  @param[in] timeout interval to wait
- *
- *  - INTERRUPT LATENCY:
- *    + single case
- */
-void _Thread_queue_Enqueue_with_handler(
-  Thread_queue_Control*        the_thread_queue,
-  Watchdog_Interval            timeout,
-  Thread_queue_Timeout_callout handler
-);
-
-/**
- *  @brief Invoked when a thread changes priority and is blocked.
- *
- *  This routine is invoked when a thread changes priority and is
- *  blocked on a thread queue.  If the queue is priority ordered,
- *  the_thread is removed from the_thread_queue and reinserted using
- *  its new priority.  This method has no impact on the state of the_thread
- *  or of any timeouts associated with this blocking.
- *
- *  @param[in] the_thread_queue pointer to a threadq header
- *  @param[in] the_thread pointer to a thread control block
- */
-void _Thread_queue_Requeue(
-  Thread_queue_Control *the_thread_queue,
-  Thread_Control       *the_thread
-);
-
-/**
- *  @brief Extracts thread from thread queue.
- *
- *  This routine removes @a the_thread from @a the_thread_queue
- *  and cancels any timeouts associated with this blocking.
- *
- *  @param[in] the_thread_queue is the pointer to the ThreadQ header
- *  @param[in] the_thread is the pointer to a thread control block that is to be removed
- */
-void _Thread_queue_Extract(
-  Thread_queue_Control *the_thread_queue,
-  Thread_Control       *the_thread
-);
-
-/**
- *  @brief Extracts the_thread from the_thread_queue.
- *
- *  This routine extracts the_thread from the_thread_queue
- *  and ensures that if there is a proxy for this task on
- *  another node, it is also dealt with.
- */
-bool _Thread_queue_Extract_with_proxy(
-  Thread_Control       *the_thread
-);
-
-/**
- *  @brief Gets a pointer to the "first" thread on the_thread_queue.
- *
- *  This function returns a pointer to the "first" thread
- *  on the_thread_queue.  The "first" thread is selected
- *  based on the discipline of the_thread_queue.
- *
- *  @param[in] the_thread_queue pointer to thread queue
- *
- *  @retval first thread or NULL
- */
-Thread_Control *_Thread_queue_First(
-  Thread_queue_Control *the_thread_queue
-);
-
-/**
- *  @brief Unblocks all threads blocked on the_thread_queue.
- *
- *  This routine unblocks all threads blocked on the_thread_queue
- *  and cancels any associated timeouts.
- *
- *  @param[in] the_thread_queue is the pointer to a threadq header
- *  @param[in] remote_extract_callout points to a method to invoke to 
- *             invoke when a remote thread is unblocked
- *  @param[in] status is the status which will be returned to
- *             all unblocked threads
- */
-void _Thread_queue_Flush(
-  Thread_queue_Control       *the_thread_queue,
-  Thread_queue_Flush_callout  remote_extract_callout,
-  uint32_t                    status
-);
-
-/**
- *  @brief Initialize the_thread_queue.
- *
- *  This routine initializes the_thread_queue based on the
- *  discipline indicated in attribute_set.  The state set on
- *  threads which block on the_thread_queue is state.
- *
- *  @param[in] the_thread_queue is the pointer to a threadq header
- *  @param[in] the_discipline is the queueing discipline
- *  @param[in] state is the state of waiting threads
- *  @param[in] timeout_status is the return on a timeout
- */
-void _Thread_queue_Initialize(
-  Thread_queue_Control         *the_thread_queue,
-  Thread_queue_Disciplines      the_discipline,
-  States_Control                state,
-  uint32_t                      timeout_status
-);
-
-/**
- *  @brief Removes a thread from the specified PRIORITY based
- *  threadq, unblocks it, and cancels its timeout timer.
- *
- *  This routine removes a thread from the specified PRIORITY based
- *  threadq, unblocks it, and cancels its timeout timer.
- *
- *  - INTERRUPT LATENCY:
- *    + single case
- *
- * @param[in] the_thread_queue is a pointer to a thread queue
- *
- * @retval thread dequeued
- * @retval NULL if no thread are waiting on the_thread_queue
- */
-Thread_Control *_Thread_queue_Dequeue_priority(
-  Thread_queue_Control *the_thread_queue
-);
-
-/**
- *  @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 using the
- *  priority discipline.
- *
- *  @param[in] the_thread_queue is the pointer to threadq
- *  @param[in] the_thread is the thread to insert
- *  @param[in] level_p is a pointer to an interrupt level to be returned
- *
- *  @retval This methods returns an indication of the blocking state as
- *          well as filling in *@ level_p with the previous interrupt level.
- *
- *  - INTERRUPT LATENCY:
- *    + forward less than
- *    + forward equal
- */
-Thread_blocking_operation_States _Thread_queue_Enqueue_priority (
-  Thread_queue_Control *the_thread_queue,
-  Thread_Control       *the_thread,
-  ISR_Level            *level_p
-);
-
-/**
- *  @brief Removes the_thread and cancels related timeouts.
- *
- *  This routine removes the_thread from the_thread_queue
- *  and cancels any timeouts associated with this blocking.
- *  @param[in] the_thread_queue pointer to a threadq header
- *  @param[in] the_thread pointer to a thread control block
- *  @param[in] requeuing true if requeuing and should not alter
- *         timeout or state
- *  - INTERRUPT LATENCY:
- *    + EXTRACT_PRIORITY
- */
-void _Thread_queue_Extract_priority_helper(
-  Thread_queue_Control *the_thread_queue,
-  Thread_Control       *the_thread,
-  bool                  requeuing
-);
-
-/**
- *  @brief Wraps the underlying call and hides the requeuing argument.
- *
- * This macro wraps the underlying call and hides the requeuing argument.
- */
-
-#define _Thread_queue_Extract_priority( _the_thread_queue, _the_thread ) \
-  _Thread_queue_Extract_priority_helper( _the_thread_queue, _the_thread, false )
-/**
- *  @brief Get highest priority thread on the_thread_queue.
- *
- *  This function returns a pointer to the "first" thread
- *  on @a the_thread_queue.  The "first" thread is the highest
- *  priority thread waiting on @a the_thread_queue.
- *
- *  @param[in] the_thread_queue is the pointer to the thread queue
- *  @retval first thread or NULL
- */
-Thread_Control *_Thread_queue_First_priority(
-  Thread_queue_Control *the_thread_queue
-);
-
-/**
- *  @brief Gets a pointer to the thread which has been waiting the longest.
- *
- *  This function returns a pointer to the thread which has
- *  been waiting the longest on  the_thread_queue.  If no
- *  threads are waiting on the_thread_queue, then NULL is returned.
- *
- *  @param[in] the_thread_queue is the pointer to threadq
- *
- *  @retval thread dequeued or NULL
- *
- *  - INTERRUPT LATENCY:
- *    + check sync
- *    + FIFO
- */
-Thread_Control *_Thread_queue_Dequeue_fifo(
-  Thread_queue_Control *the_thread_queue
-);
-
-/**
- *  @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 using the
- *  FIFO discipline.
- *
- *    @param[in] the_thread_queue pointer to threadq
- *    @param[in] the_thread pointer to the thread to block
- *    @param[in] level_p interrupt level in case the operation blocks actually
- *
- *  - INTERRUPT LATENCY:
- *    + single case
- */
-Thread_blocking_operation_States _Thread_queue_Enqueue_fifo (
-  Thread_queue_Control *the_thread_queue,
-  Thread_Control       *the_thread,
-  ISR_Level            *level_p
-);
-
-/**
- *  @brief Removes the_thread from the_thread_queue and cancels any timeouts.
- *
- *  This routine removes the_thread from the_thread_queue
- *  and cancels any timeouts associated with this blocking.
- */
-void _Thread_queue_Extract_fifo(
-  Thread_queue_Control *the_thread_queue,
-  Thread_Control       *the_thread
-);
-
-/**
- *  @brief Gets a pointer to the "first" thread on the_thread_queue.
- *
- *  This function returns a pointer to the "first" thread
- *  on the_thread_queue.  The first thread is the thread
- *  which has been waiting longest on the_thread_queue.
- *
- *  @param[in] the_thread_queue is the pointer to threadq
- *
- *  @retval first thread or NULL
- */
-Thread_Control *_Thread_queue_First_fifo(
-  Thread_queue_Control *the_thread_queue
-);
-
-/**
- *  @brief Thread queue timeout.
- *
- *  This routine is invoked when a task's request has not
- *  been satisfied after the timeout interval specified to
- *  enqueue.  The task represented by ID will be unblocked and
- *  its status code will be set in it's control block to indicate
- *  that a timeout has occurred.
- *
- *  @param[in] id thread id
- */
-void _Thread_queue_Timeout (
-  Objects_Id  id,
-  void       *ignored
-);
-
-/**
- *  @brief Process thread queue timeout.
- *
- * This is a shared helper routine which makes it easier to have multiple
- * object class specific timeout routines.
- *
- * @param[in] the_thread is the thread to extract
- *
- * @note This method assumes thread dispatching is disabled
- *       and is expected to be called via the processing of
- *       a clock tick.
- */
-void _Thread_queue_Process_timeout(
-  Thread_Control *the_thread
-);
+ *  The following enumerated type details all of the disciplines
+ *  supported by the Thread Queue Handler.
+ */
+typedef enum {
+  THREAD_QUEUE_DISCIPLINE_FIFO,     /* FIFO queue discipline */
+  THREAD_QUEUE_DISCIPLINE_PRIORITY  /* PRIORITY queue discipline */
+}   Thread_queue_Disciplines;
+
+/**
+ *  This is one of the constants used to manage the priority queues.
+ *
+ *  There are four chains used to maintain a priority -- each chain
+ *  manages a distinct set of task priorities.  The number of chains
+ *  is determined by TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS.
+ *  The following set must be consistent.
+ *
+ *  The set below configures 4 headers -- each contains 64 priorities.
+ *  Header x manages priority range (x*64) through ((x*64)+63).  If
+ *  the priority is more than half way through the priority range it
+ *  is in, then the search is performed from the rear of the chain.
+ *  This halves the search time to find the insertion point.
+ */
+#define TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS 4
+
+/**
+ *  This is the structure used to manage sets of tasks which are blocked
+ *  waiting to acquire a resource.
+ */
+typedef struct {
+  /** This union contains the data structures used to manage the blocked
+   *  set of tasks which varies based upon the discipline.
+   */
+  union {
+    /** This is the FIFO discipline list. */
+    Chain_Control Fifo;
+    /** This is the set of lists for priority discipline waiting. */
+    Chain_Control Priority[TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS];
+  } Queues;
+  /** This field is used to manage the critical section. */
+  Thread_blocking_operation_States sync_state;
+  /** This field indicates the thread queue's blocking discipline. */
+  Thread_queue_Disciplines discipline;
+  /** This indicates the blocking state for threads waiting on this
+   *  thread queue.
+   */
+  States_Control           state;
+  /** This is the status value returned to threads which timeout while
+   *  waiting on this thread queue.
+   */
+  uint32_t                 timeout_status;
+}   Thread_queue_Control;
 
 /**@}*/
 
diff --git a/cpukit/score/include/rtems/score/threadqimpl.h b/cpukit/score/include/rtems/score/threadqimpl.h
new file mode 100644
index 0000000..3d801c8
--- /dev/null
+++ b/cpukit/score/include/rtems/score/threadqimpl.h
@@ -0,0 +1,428 @@
+/**
+ *  @file  rtems/score/threadq.h
+ *
+ *  Constants and Structures Associated with the Manipulation of Objects
+ *
+ *  This include file contains all the constants and structures associated
+ *  with the manipulation of objects.
+ */
+
+/*
+ *  COPYRIGHT (c) 1989-2009.
+ *  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.com/license/LICENSE.
+ */
+
+#ifndef _RTEMS_SCORE_THREADQIMPL_H
+#define _RTEMS_SCORE_THREADQIMPL_H
+
+#include <rtems/score/threadq.h>
+#include <rtems/score/thread.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ *  @addtogroup ScoreThreadQueue
+ */
+/**@{*/
+
+/**
+ *  Constant for indefinite wait.
+ */
+#define THREAD_QUEUE_WAIT_FOREVER  WATCHDOG_NO_TIMEOUT
+
+/**
+ *  This is one of the constants used to manage the priority queues.
+ *  @ref TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS for more details.
+ */
+#define TASK_QUEUE_DATA_PRIORITIES_PER_HEADER      64
+
+/**
+ *  This is one of the constants used to manage the priority queues.
+ *  @ref TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS for more details.
+ */
+#define TASK_QUEUE_DATA_REVERSE_SEARCH_MASK        0x20
+
+/**
+ *  The following type defines the callout used when a remote task
+ *  is extracted from a local thread queue.
+ */
+typedef void ( *Thread_queue_Flush_callout )(
+                  Thread_Control *
+             );
+
+/**
+ *  The following type defines the callout used for timeout processing
+ *  methods.
+ */
+typedef void ( *Thread_queue_Timeout_callout )(
+                 Objects_Id,
+                 void *
+             );
+
+/**
+ *  @brief Gets a pointer to a thread waiting on the_thread_queue.
+ *
+ *  This function returns a pointer to a thread waiting on
+ *  the_thread_queue.  The selection of this thread is based on
+ *  the discipline of the_thread_queue.  If no threads are waiting
+ *  on the_thread_queue, then NULL is returned.
+ */
+Thread_Control *_Thread_queue_Dequeue(
+  Thread_queue_Control *the_thread_queue
+);
+
+/**
+ *  @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, _timeout ) \
+  _Thread_queue_Enqueue_with_handler( \
+    _the_thread_queue, \
+    _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
+ *  starts a timeout timer.
+ *
+ *  @param[in] the_thread_queue pointer to threadq
+ *  @param[in] timeout interval to wait
+ *
+ *  - INTERRUPT LATENCY:
+ *    + single case
+ */
+void _Thread_queue_Enqueue_with_handler(
+  Thread_queue_Control*        the_thread_queue,
+  Watchdog_Interval            timeout,
+  Thread_queue_Timeout_callout handler
+);
+
+/**
+ *  @brief Invoked when a thread changes priority and is blocked.
+ *
+ *  This routine is invoked when a thread changes priority and is
+ *  blocked on a thread queue.  If the queue is priority ordered,
+ *  the_thread is removed from the_thread_queue and reinserted using
+ *  its new priority.  This method has no impact on the state of the_thread
+ *  or of any timeouts associated with this blocking.
+ *
+ *  @param[in] the_thread_queue pointer to a threadq header
+ *  @param[in] the_thread pointer to a thread control block
+ */
+void _Thread_queue_Requeue(
+  Thread_queue_Control *the_thread_queue,
+  Thread_Control       *the_thread
+);
+
+/**
+ *  @brief Extracts thread from thread queue.
+ *
+ *  This routine removes @a the_thread from @a the_thread_queue
+ *  and cancels any timeouts associated with this blocking.
+ *
+ *  @param[in] the_thread_queue is the pointer to the ThreadQ header
+ *  @param[in] the_thread is the pointer to a thread control block that is to be removed
+ */
+void _Thread_queue_Extract(
+  Thread_queue_Control *the_thread_queue,
+  Thread_Control       *the_thread
+);
+
+/**
+ *  @brief Extracts the_thread from the_thread_queue.
+ *
+ *  This routine extracts the_thread from the_thread_queue
+ *  and ensures that if there is a proxy for this task on
+ *  another node, it is also dealt with.
+ */
+bool _Thread_queue_Extract_with_proxy(
+  Thread_Control       *the_thread
+);
+
+/**
+ *  @brief Gets a pointer to the "first" thread on the_thread_queue.
+ *
+ *  This function returns a pointer to the "first" thread
+ *  on the_thread_queue.  The "first" thread is selected
+ *  based on the discipline of the_thread_queue.
+ *
+ *  @param[in] the_thread_queue pointer to thread queue
+ *
+ *  @retval first thread or NULL
+ */
+Thread_Control *_Thread_queue_First(
+  Thread_queue_Control *the_thread_queue
+);
+
+/**
+ *  @brief Unblocks all threads blocked on the_thread_queue.
+ *
+ *  This routine unblocks all threads blocked on the_thread_queue
+ *  and cancels any associated timeouts.
+ *
+ *  @param[in] the_thread_queue is the pointer to a threadq header
+ *  @param[in] remote_extract_callout points to a method to invoke to 
+ *             invoke when a remote thread is unblocked
+ *  @param[in] status is the status which will be returned to
+ *             all unblocked threads
+ */
+void _Thread_queue_Flush(
+  Thread_queue_Control       *the_thread_queue,
+  Thread_queue_Flush_callout  remote_extract_callout,
+  uint32_t                    status
+);
+
+/**
+ *  @brief Initialize the_thread_queue.
+ *
+ *  This routine initializes the_thread_queue based on the
+ *  discipline indicated in attribute_set.  The state set on
+ *  threads which block on the_thread_queue is state.
+ *
+ *  @param[in] the_thread_queue is the pointer to a threadq header
+ *  @param[in] the_discipline is the queueing discipline
+ *  @param[in] state is the state of waiting threads
+ *  @param[in] timeout_status is the return on a timeout
+ */
+void _Thread_queue_Initialize(
+  Thread_queue_Control         *the_thread_queue,
+  Thread_queue_Disciplines      the_discipline,
+  States_Control                state,
+  uint32_t                      timeout_status
+);
+
+/**
+ *  @brief Removes a thread from the specified PRIORITY based
+ *  threadq, unblocks it, and cancels its timeout timer.
+ *
+ *  This routine removes a thread from the specified PRIORITY based
+ *  threadq, unblocks it, and cancels its timeout timer.
+ *
+ *  - INTERRUPT LATENCY:
+ *    + single case
+ *
+ * @param[in] the_thread_queue is a pointer to a thread queue
+ *
+ * @retval thread dequeued
+ * @retval NULL if no thread are waiting on the_thread_queue
+ */
+Thread_Control *_Thread_queue_Dequeue_priority(
+  Thread_queue_Control *the_thread_queue
+);
+
+/**
+ *  @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 using the
+ *  priority discipline.
+ *
+ *  @param[in] the_thread_queue is the pointer to threadq
+ *  @param[in] the_thread is the thread to insert
+ *  @param[in] level_p is a pointer to an interrupt level to be returned
+ *
+ *  @retval This methods returns an indication of the blocking state as
+ *          well as filling in *@ level_p with the previous interrupt level.
+ *
+ *  - INTERRUPT LATENCY:
+ *    + forward less than
+ *    + forward equal
+ */
+Thread_blocking_operation_States _Thread_queue_Enqueue_priority (
+  Thread_queue_Control *the_thread_queue,
+  Thread_Control       *the_thread,
+  ISR_Level            *level_p
+);
+
+/**
+ *  @brief Removes the_thread and cancels related timeouts.
+ *
+ *  This routine removes the_thread from the_thread_queue
+ *  and cancels any timeouts associated with this blocking.
+ *  @param[in] the_thread_queue pointer to a threadq header
+ *  @param[in] the_thread pointer to a thread control block
+ *  @param[in] requeuing true if requeuing and should not alter
+ *         timeout or state
+ *  - INTERRUPT LATENCY:
+ *    + EXTRACT_PRIORITY
+ */
+void _Thread_queue_Extract_priority_helper(
+  Thread_queue_Control *the_thread_queue,
+  Thread_Control       *the_thread,
+  bool                  requeuing
+);
+
+/**
+ *  @brief Wraps the underlying call and hides the requeuing argument.
+ *
+ * This macro wraps the underlying call and hides the requeuing argument.
+ */
+
+#define _Thread_queue_Extract_priority( _the_thread_queue, _the_thread ) \
+  _Thread_queue_Extract_priority_helper( _the_thread_queue, _the_thread, false )
+/**
+ *  @brief Get highest priority thread on the_thread_queue.
+ *
+ *  This function returns a pointer to the "first" thread
+ *  on @a the_thread_queue.  The "first" thread is the highest
+ *  priority thread waiting on @a the_thread_queue.
+ *
+ *  @param[in] the_thread_queue is the pointer to the thread queue
+ *  @retval first thread or NULL
+ */
+Thread_Control *_Thread_queue_First_priority(
+  Thread_queue_Control *the_thread_queue
+);
+
+/**
+ *  @brief Gets a pointer to the thread which has been waiting the longest.
+ *
+ *  This function returns a pointer to the thread which has
+ *  been waiting the longest on  the_thread_queue.  If no
+ *  threads are waiting on the_thread_queue, then NULL is returned.
+ *
+ *  @param[in] the_thread_queue is the pointer to threadq
+ *
+ *  @retval thread dequeued or NULL
+ *
+ *  - INTERRUPT LATENCY:
+ *    + check sync
+ *    + FIFO
+ */
+Thread_Control *_Thread_queue_Dequeue_fifo(
+  Thread_queue_Control *the_thread_queue
+);
+
+/**
+ *  @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 using the
+ *  FIFO discipline.
+ *
+ *    @param[in] the_thread_queue pointer to threadq
+ *    @param[in] the_thread pointer to the thread to block
+ *    @param[in] level_p interrupt level in case the operation blocks actually
+ *
+ *  - INTERRUPT LATENCY:
+ *    + single case
+ */
+Thread_blocking_operation_States _Thread_queue_Enqueue_fifo (
+  Thread_queue_Control *the_thread_queue,
+  Thread_Control       *the_thread,
+  ISR_Level            *level_p
+);
+
+/**
+ *  @brief Removes the_thread from the_thread_queue and cancels any timeouts.
+ *
+ *  This routine removes the_thread from the_thread_queue
+ *  and cancels any timeouts associated with this blocking.
+ */
+void _Thread_queue_Extract_fifo(
+  Thread_queue_Control *the_thread_queue,
+  Thread_Control       *the_thread
+);
+
+/**
+ *  @brief Gets a pointer to the "first" thread on the_thread_queue.
+ *
+ *  This function returns a pointer to the "first" thread
+ *  on the_thread_queue.  The first thread is the thread
+ *  which has been waiting longest on the_thread_queue.
+ *
+ *  @param[in] the_thread_queue is the pointer to threadq
+ *
+ *  @retval first thread or NULL
+ */
+Thread_Control *_Thread_queue_First_fifo(
+  Thread_queue_Control *the_thread_queue
+);
+
+/**
+ *  @brief Thread queue timeout.
+ *
+ *  This routine is invoked when a task's request has not
+ *  been satisfied after the timeout interval specified to
+ *  enqueue.  The task represented by ID will be unblocked and
+ *  its status code will be set in it's control block to indicate
+ *  that a timeout has occurred.
+ *
+ *  @param[in] id thread id
+ */
+void _Thread_queue_Timeout (
+  Objects_Id  id,
+  void       *ignored
+);
+
+/**
+ *  @brief Process thread queue timeout.
+ *
+ * This is a shared helper routine which makes it easier to have multiple
+ * object class specific timeout routines.
+ *
+ * @param[in] the_thread is the thread to extract
+ *
+ * @note This method assumes thread dispatching is disabled
+ *       and is expected to be called via the processing of
+ *       a clock tick.
+ */
+void _Thread_queue_Process_timeout(
+  Thread_Control *the_thread
+);
+
+/**
+ * This function returns the index of the priority chain on which
+ * a thread of the_priority should be placed.
+ */
+
+RTEMS_INLINE_ROUTINE uint32_t   _Thread_queue_Header_number (
+  Priority_Control the_priority
+)
+{
+  return (the_priority / TASK_QUEUE_DATA_PRIORITIES_PER_HEADER);
+}
+
+/**
+ * This function returns true if the_priority indicates that the
+ * enqueue search should start at the front of this priority
+ * group chain, and false if the search should start at the rear.
+ */
+
+RTEMS_INLINE_ROUTINE bool _Thread_queue_Is_reverse_search (
+  Priority_Control the_priority
+)
+{
+  return ( the_priority & TASK_QUEUE_DATA_REVERSE_SEARCH_MASK );
+}
+
+/**
+ * This routine is invoked to indicate that the specified thread queue is
+ * entering a critical section.
+ */
+
+RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (
+  Thread_queue_Control *the_thread_queue
+)
+{
+  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
+}
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */
diff --git a/cpukit/score/include/rtems/score/tqdata.h b/cpukit/score/include/rtems/score/tqdata.h
deleted file mode 100644
index c556d3f..0000000
--- a/cpukit/score/include/rtems/score/tqdata.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/**
- *  @file  rtems/score/tqdata.h
- *
- *  @brief Constants and Structures Needed to Declare a Thread Queue
- *
- *  This include file contains all the constants and structures
- *  needed to declare a thread queue.
- */
-
-/*
- *  COPYRIGHT (c) 1989-2008.
- *  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.com/license/LICENSE.
- */
-
-#ifndef _RTEMS_SCORE_TQDATA_H
-#define _RTEMS_SCORE_TQDATA_H
-
-/**
- *  @defgroup ScoreThreadQData Thread Queue Handler Data Definition
- *
- *  @ingroup Score
- *
- *  This handler defines the data shared between the thread and thread
- *  queue handlers.  Having this handler define these data structure
- *  avoids potentially circular references.
- */
-/**@{*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/score/chain.h>
-#include <rtems/score/priority.h>
-#include <rtems/score/states.h>
-#include <rtems/score/threadsync.h>
-
-/**
- *  The following enumerated type details all of the disciplines
- *  supported by the Thread Queue Handler.
- */
-typedef enum {
-  THREAD_QUEUE_DISCIPLINE_FIFO,     /* FIFO queue discipline */
-  THREAD_QUEUE_DISCIPLINE_PRIORITY  /* PRIORITY queue discipline */
-}   Thread_queue_Disciplines;
-
-/**
- *  This is one of the constants used to manage the priority queues.
- *
- *  There are four chains used to maintain a priority -- each chain
- *  manages a distinct set of task priorities.  The number of chains
- *  is determined by TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS.
- *  The following set must be consistent.
- *
- *  The set below configures 4 headers -- each contains 64 priorities.
- *  Header x manages priority range (x*64) through ((x*64)+63).  If
- *  the priority is more than half way through the priority range it
- *  is in, then the search is performed from the rear of the chain.
- *  This halves the search time to find the insertion point.
- */
-#define TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS 4
-
-/**
- *  This is one of the constants used to manage the priority queues.
- *  @ref TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS for more details.
- */
-#define TASK_QUEUE_DATA_PRIORITIES_PER_HEADER      64
-
-/**
- *  This is one of the constants used to manage the priority queues.
- *  @ref TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS for more details.
- */
-#define TASK_QUEUE_DATA_REVERSE_SEARCH_MASK        0x20
-
-/**
- *  This is the structure used to manage sets of tasks which are blocked
- *  waiting to acquire a resource.
- */
-typedef struct {
-  /** This union contains the data structures used to manage the blocked
-   *  set of tasks which varies based upon the discipline.
-   */
-  union {
-    /** This is the FIFO discipline list. */
-    Chain_Control Fifo;
-    /** This is the set of lists for priority discipline waiting. */
-    Chain_Control Priority[TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS];
-  } Queues;
-  /** This field is used to manage the critical section. */
-  Thread_blocking_operation_States sync_state;
-  /** This field indicates the thread queue's blocking discipline. */
-  Thread_queue_Disciplines discipline;
-  /** This indicates the blocking state for threads waiting on this
-   *  thread queue.
-   */
-  States_Control           state;
-  /** This is the status value returned to threads which timeout while
-   *  waiting on this thread queue.
-   */
-  uint32_t                 timeout_status;
-}   Thread_queue_Control;
-
-#ifndef __RTEMS_APPLICATION__
-#include <rtems/score/tqdata.inl>
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/score/inline/rtems/score/tqdata.inl b/cpukit/score/inline/rtems/score/tqdata.inl
deleted file mode 100644
index c5b85d2..0000000
--- a/cpukit/score/inline/rtems/score/tqdata.inl
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * @file
- *
- * @brief Inlined Routines Needed to Support the Thread Queue Data
- *
- * This file contains the static inline implementation of the inlined
- * routines needed to support the Thread Queue Data.
- */
-
-/*
- *  COPYRIGHT (c) 1989-2008.
- *  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.com/license/LICENSE.
- */
-
-#ifndef _RTEMS_SCORE_TQDATA_H
-# error "Never use <rtems/score/tqdata.inl> directly; include <rtems/score/tqdata.h> instead."
-#endif
-
-#ifndef _RTEMS_SCORE_TQDATA_INL
-#define _RTEMS_SCORE_TQDATA_INL
-
-/**
- * @addtogroup ScoreThreadQ
- */
-/**@{**/
-
-/**
- * This function returns the index of the priority chain on which
- * a thread of the_priority should be placed.
- */
-
-RTEMS_INLINE_ROUTINE uint32_t   _Thread_queue_Header_number (
-  Priority_Control the_priority
-)
-{
-  return (the_priority / TASK_QUEUE_DATA_PRIORITIES_PER_HEADER);
-}
-
-/**
- * This function returns true if the_priority indicates that the
- * enqueue search should start at the front of this priority
- * group chain, and false if the search should start at the rear.
- */
-
-RTEMS_INLINE_ROUTINE bool _Thread_queue_Is_reverse_search (
-  Priority_Control the_priority
-)
-{
-  return ( the_priority & TASK_QUEUE_DATA_REVERSE_SEARCH_MASK );
-}
-
-/**
- * This routine is invoked to indicate that the specified thread queue is
- * entering a critical section.
- */
-
-RTEMS_INLINE_ROUTINE void _Thread_queue_Enter_critical_section (
-  Thread_queue_Control *the_thread_queue
-)
-{
-  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;
-}
-
-/** @} */
-
-#endif
-/* end of include file */
diff --git a/cpukit/score/preinstall.am b/cpukit/score/preinstall.am
index 7fe0f61..1fabdc9 100644
--- a/cpukit/score/preinstall.am
+++ b/cpukit/score/preinstall.am
@@ -231,6 +231,10 @@ $(PROJECT_INCLUDE)/rtems/score/threadq.h: include/rtems/score/threadq.h $(PROJEC
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/threadq.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/threadq.h
 
+$(PROJECT_INCLUDE)/rtems/score/threadqimpl.h: include/rtems/score/threadqimpl.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/threadqimpl.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/threadqimpl.h
+
 $(PROJECT_INCLUDE)/rtems/score/threadsync.h: include/rtems/score/threadsync.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/threadsync.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/threadsync.h
@@ -251,10 +255,6 @@ $(PROJECT_INCLUDE)/rtems/score/tod.h: include/rtems/score/tod.h $(PROJECT_INCLUD
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/tod.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/tod.h
 
-$(PROJECT_INCLUDE)/rtems/score/tqdata.h: include/rtems/score/tqdata.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/tqdata.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/tqdata.h
-
 $(PROJECT_INCLUDE)/rtems/score/userext.h: include/rtems/score/userext.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/userext.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/userext.h
@@ -339,10 +339,6 @@ $(PROJECT_INCLUDE)/rtems/score/tod.inl: inline/rtems/score/tod.inl $(PROJECT_INC
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/tod.inl
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/tod.inl
 
-$(PROJECT_INCLUDE)/rtems/score/tqdata.inl: inline/rtems/score/tqdata.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/tqdata.inl
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/tqdata.inl
-
 if HAS_MP
 $(PROJECT_INCLUDE)/rtems/score/mppkt.inl: inline/rtems/score/mppkt.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/mppkt.inl
diff --git a/cpukit/score/src/corebarrier.c b/cpukit/score/src/corebarrier.c
index 04bd875..45b0d5a 100644
--- a/cpukit/score/src/corebarrier.c
+++ b/cpukit/score/src/corebarrier.c
@@ -20,8 +20,7 @@
 
 #include <rtems/score/corebarrierimpl.h>
 #include <rtems/score/statesimpl.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 
 void _CORE_barrier_Initialize(
   CORE_barrier_Control       *the_barrier,
diff --git a/cpukit/score/src/corebarrierrelease.c b/cpukit/score/src/corebarrierrelease.c
index 12fc3bc..818d171 100644
--- a/cpukit/score/src/corebarrierrelease.c
+++ b/cpukit/score/src/corebarrierrelease.c
@@ -19,11 +19,8 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/score/isr.h>
 #include <rtems/score/corebarrierimpl.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 
 uint32_t _CORE_barrier_Release(
   CORE_barrier_Control                *the_barrier,
diff --git a/cpukit/score/src/corebarrierwait.c b/cpukit/score/src/corebarrierwait.c
index 6ea1f25..aa9face 100644
--- a/cpukit/score/src/corebarrierwait.c
+++ b/cpukit/score/src/corebarrierwait.c
@@ -18,11 +18,9 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/score/isr.h>
 #include <rtems/score/corebarrierimpl.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/isrlevel.h>
+#include <rtems/score/threadqimpl.h>
 
 void _CORE_barrier_Wait(
   CORE_barrier_Control                *the_barrier,
diff --git a/cpukit/score/src/coremsg.c b/cpukit/score/src/coremsg.c
index 72e1371..d876450 100644
--- a/cpukit/score/src/coremsg.c
+++ b/cpukit/score/src/coremsg.c
@@ -20,7 +20,6 @@
 
 #include <rtems/score/coremsgimpl.h>
 #include <rtems/score/statesimpl.h>
-#include <rtems/score/threadq.h>
 #include <rtems/score/wkspace.h>
 
 /*
diff --git a/cpukit/score/src/coremutex.c b/cpukit/score/src/coremutex.c
index 1d0f596..4da98b1 100644
--- a/cpukit/score/src/coremutex.c
+++ b/cpukit/score/src/coremutex.c
@@ -22,7 +22,6 @@
 #include <rtems/score/isr.h>
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 CORE_mutex_Status _CORE_mutex_Initialize(
   CORE_mutex_Control           *the_mutex,
diff --git a/cpukit/score/src/coremutexflush.c b/cpukit/score/src/coremutexflush.c
index 5e87f0c..bbed737 100644
--- a/cpukit/score/src/coremutexflush.c
+++ b/cpukit/score/src/coremutexflush.c
@@ -22,7 +22,6 @@
 #include <rtems/score/isr.h>
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 void _CORE_mutex_Flush(
   CORE_mutex_Control         *the_mutex,
diff --git a/cpukit/score/src/coremutexseize.c b/cpukit/score/src/coremutexseize.c
index dc74bee..2cab59e 100644
--- a/cpukit/score/src/coremutexseize.c
+++ b/cpukit/score/src/coremutexseize.c
@@ -23,7 +23,6 @@
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/schedulerimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 #if defined(__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__)
 void _CORE_mutex_Seize(
diff --git a/cpukit/score/src/coremutexseizeintr.c b/cpukit/score/src/coremutexseizeintr.c
index 70101d0..2ddecc5 100644
--- a/cpukit/score/src/coremutexseizeintr.c
+++ b/cpukit/score/src/coremutexseizeintr.c
@@ -22,7 +22,6 @@
 #include <rtems/score/isr.h>
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 #if defined(__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__)
 int _CORE_mutex_Seize_interrupt_trylock(
diff --git a/cpukit/score/src/coremutexsurrender.c b/cpukit/score/src/coremutexsurrender.c
index e411f77..ad1b84b 100644
--- a/cpukit/score/src/coremutexsurrender.c
+++ b/cpukit/score/src/coremutexsurrender.c
@@ -22,7 +22,6 @@
 #include <rtems/score/isr.h>
 #include <rtems/score/coremuteximpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 #ifdef __RTEMS_STRICT_ORDER_MUTEX__
   static inline void _CORE_mutex_Push_priority(
diff --git a/cpukit/score/src/corerwlock.c b/cpukit/score/src/corerwlock.c
index 2d49e83..8794e02 100644
--- a/cpukit/score/src/corerwlock.c
+++ b/cpukit/score/src/corerwlock.c
@@ -20,7 +20,7 @@
 
 #include <rtems/score/corerwlockimpl.h>
 #include <rtems/score/statesimpl.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 
 void _CORE_RWLock_Initialize(
   CORE_RWLock_Control       *the_rwlock,
diff --git a/cpukit/score/src/corerwlockobtainread.c b/cpukit/score/src/corerwlockobtainread.c
index fc3ce24..ca9a214 100644
--- a/cpukit/score/src/corerwlockobtainread.c
+++ b/cpukit/score/src/corerwlockobtainread.c
@@ -18,9 +18,8 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
 #include <rtems/score/corerwlockimpl.h>
-#include <rtems/score/thread.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/watchdog.h>
 
 void _CORE_RWLock_Obtain_for_reading(
diff --git a/cpukit/score/src/corerwlockobtainwrite.c b/cpukit/score/src/corerwlockobtainwrite.c
index 8c00a8f..e5f3e73 100644
--- a/cpukit/score/src/corerwlockobtainwrite.c
+++ b/cpukit/score/src/corerwlockobtainwrite.c
@@ -18,9 +18,8 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
 #include <rtems/score/corerwlockimpl.h>
-#include <rtems/score/thread.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/watchdog.h>
 
 void _CORE_RWLock_Obtain_for_writing(
diff --git a/cpukit/score/src/corerwlockrelease.c b/cpukit/score/src/corerwlockrelease.c
index 245390a..f37a5b6 100644
--- a/cpukit/score/src/corerwlockrelease.c
+++ b/cpukit/score/src/corerwlockrelease.c
@@ -21,7 +21,7 @@
 
 #include <rtems/system.h>
 #include <rtems/score/corerwlockimpl.h>
-#include <rtems/score/thread.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/watchdog.h>
 
 CORE_RWLock_Status _CORE_RWLock_Release(
diff --git a/cpukit/score/src/corerwlocktimeout.c b/cpukit/score/src/corerwlocktimeout.c
index 1c3db0e..8009379 100644
--- a/cpukit/score/src/corerwlocktimeout.c
+++ b/cpukit/score/src/corerwlocktimeout.c
@@ -20,6 +20,7 @@
 
 #include <rtems/score/corerwlockimpl.h>
 #include <rtems/score/threadimpl.h>
+#include <rtems/score/threadqimpl.h>
 
 void _CORE_RWLock_Timeout(
   Objects_Id  id,
diff --git a/cpukit/score/src/coresem.c b/cpukit/score/src/coresem.c
index 0257c12..94b461f 100644
--- a/cpukit/score/src/coresem.c
+++ b/cpukit/score/src/coresem.c
@@ -20,7 +20,6 @@
 
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/statesimpl.h>
-#include <rtems/score/threadq.h>
 
 void _CORE_semaphore_Initialize(
   CORE_semaphore_Control          *the_semaphore,
diff --git a/cpukit/score/src/coresemflush.c b/cpukit/score/src/coresemflush.c
index 4c691c8..a4d1aa4 100644
--- a/cpukit/score/src/coresemflush.c
+++ b/cpukit/score/src/coresemflush.c
@@ -22,7 +22,6 @@
 #include <rtems/score/isr.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 void _CORE_semaphore_Flush(
   CORE_semaphore_Control     *the_semaphore,
diff --git a/cpukit/score/src/coresemseize.c b/cpukit/score/src/coresemseize.c
index 5ed5ee6..cde444b 100644
--- a/cpukit/score/src/coresemseize.c
+++ b/cpukit/score/src/coresemseize.c
@@ -23,7 +23,6 @@
 #include <rtems/score/isr.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 #if defined(RTEMS_SCORE_CORESEM_ENABLE_SEIZE_BODY)
 
diff --git a/cpukit/score/src/coresemsurrender.c b/cpukit/score/src/coresemsurrender.c
index 59fdbeb..58a3929 100644
--- a/cpukit/score/src/coresemsurrender.c
+++ b/cpukit/score/src/coresemsurrender.c
@@ -23,7 +23,6 @@
 #include <rtems/score/isr.h>
 #include <rtems/score/coresemimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 CORE_semaphore_Status _CORE_semaphore_Surrender(
   CORE_semaphore_Control                *the_semaphore,
diff --git a/cpukit/score/src/corespinlock.c b/cpukit/score/src/corespinlock.c
index 0b4dba3..c0acb1a 100644
--- a/cpukit/score/src/corespinlock.c
+++ b/cpukit/score/src/corespinlock.c
@@ -22,7 +22,6 @@
 #include <rtems/system.h>
 #include <rtems/score/corespinlockimpl.h>
 #include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
 
 void _CORE_spinlock_Initialize(
   CORE_spinlock_Control       *the_spinlock,
diff --git a/cpukit/score/src/mpci.c b/cpukit/score/src/mpci.c
index 043f243..9e00971 100644
--- a/cpukit/score/src/mpci.c
+++ b/cpukit/score/src/mpci.c
@@ -27,8 +27,8 @@
 #include <rtems/score/cpu.h>
 #include <rtems/score/interr.h>
 #include <rtems/score/threadimpl.h>
-#include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadqimpl.h>
+#include <rtems/score/stackimpl.h>
 #include <rtems/score/watchdog.h>
 #include <rtems/score/sysstate.h>
 
diff --git a/cpukit/score/src/threadchangepriority.c b/cpukit/score/src/threadchangepriority.c
index b919ddd..b443731 100644
--- a/cpukit/score/src/threadchangepriority.c
+++ b/cpukit/score/src/threadchangepriority.c
@@ -20,9 +20,8 @@
 #endif
 
 #include <rtems/score/threadimpl.h>
-#include <rtems/score/isr.h>
 #include <rtems/score/schedulerimpl.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 
 void _Thread_Change_priority(
   Thread_Control   *the_thread,
diff --git a/cpukit/score/src/threadclose.c b/cpukit/score/src/threadclose.c
index 9866a5c..df70f50 100644
--- a/cpukit/score/src/threadclose.c
+++ b/cpukit/score/src/threadclose.c
@@ -20,7 +20,7 @@
 
 #include <rtems/score/threadimpl.h>
 #include <rtems/score/schedulerimpl.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/userextimpl.h>
 #include <rtems/score/watchdogimpl.h>
 #include <rtems/score/wkspace.h>
diff --git a/cpukit/score/src/threadinitialize.c b/cpukit/score/src/threadinitialize.c
index e9e8a0b..bd0031f 100644
--- a/cpukit/score/src/threadinitialize.c
+++ b/cpukit/score/src/threadinitialize.c
@@ -20,7 +20,6 @@
 #include <rtems/score/threadimpl.h>
 #include <rtems/score/schedulerimpl.h>
 #include <rtems/score/stackimpl.h>
-#include <rtems/score/threadq.h>
 #include <rtems/score/userextimpl.h>
 #include <rtems/score/watchdogimpl.h>
 #include <rtems/score/wkspace.h>
diff --git a/cpukit/score/src/threadq.c b/cpukit/score/src/threadq.c
index c5e694e..20680e0 100644
--- a/cpukit/score/src/threadq.c
+++ b/cpukit/score/src/threadq.c
@@ -18,13 +18,8 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/chainimpl.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
 
 void _Thread_queue_Initialize(
   Thread_queue_Control         *the_thread_queue,
diff --git a/cpukit/score/src/threadqdequeue.c b/cpukit/score/src/threadqdequeue.c
index 4cdc8ed..34447a5 100644
--- a/cpukit/score/src/threadqdequeue.c
+++ b/cpukit/score/src/threadqdequeue.c
@@ -19,13 +19,8 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/score/chain.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadqimpl.h>
+#include <rtems/score/isrlevel.h>
 
 Thread_Control *_Thread_queue_Dequeue(
   Thread_queue_Control *the_thread_queue
diff --git a/cpukit/score/src/threadqdequeuefifo.c b/cpukit/score/src/threadqdequeuefifo.c
index 717cb59..afaf9fa 100644
--- a/cpukit/score/src/threadqdequeuefifo.c
+++ b/cpukit/score/src/threadqdequeuefifo.c
@@ -18,7 +18,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/chainimpl.h>
 #include <rtems/score/isrlevel.h>
 #include <rtems/score/threadimpl.h>
diff --git a/cpukit/score/src/threadqdequeuepriority.c b/cpukit/score/src/threadqdequeuepriority.c
index 49b4eae..fda101d 100644
--- a/cpukit/score/src/threadqdequeuepriority.c
+++ b/cpukit/score/src/threadqdequeuepriority.c
@@ -18,7 +18,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/chainimpl.h>
 #include <rtems/score/isrlevel.h>
 #include <rtems/score/threadimpl.h>
diff --git a/cpukit/score/src/threadqenqueue.c b/cpukit/score/src/threadqenqueue.c
index a4f0018..92d5546 100644
--- a/cpukit/score/src/threadqenqueue.c
+++ b/cpukit/score/src/threadqenqueue.c
@@ -21,7 +21,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/isrlevel.h>
 #include <rtems/score/threadimpl.h>
 #include <rtems/score/watchdogimpl.h>
diff --git a/cpukit/score/src/threadqenqueuefifo.c b/cpukit/score/src/threadqenqueuefifo.c
index 91c6466..c26581d 100644
--- a/cpukit/score/src/threadqenqueuefifo.c
+++ b/cpukit/score/src/threadqenqueuefifo.c
@@ -18,13 +18,9 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/chainimpl.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
+#include <rtems/score/isrlevel.h>
 
 Thread_blocking_operation_States _Thread_queue_Enqueue_fifo (
   Thread_queue_Control *the_thread_queue,
diff --git a/cpukit/score/src/threadqenqueuepriority.c b/cpukit/score/src/threadqenqueuepriority.c
index a9d0c6b..f2c4be0 100644
--- a/cpukit/score/src/threadqenqueuepriority.c
+++ b/cpukit/score/src/threadqenqueuepriority.c
@@ -18,8 +18,9 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/chainimpl.h>
+#include <rtems/score/isrlevel.h>
 #include <rtems/score/statesimpl.h>
 
 /*
diff --git a/cpukit/score/src/threadqextract.c b/cpukit/score/src/threadqextract.c
index 9d0d40c..8e0e3e8 100644
--- a/cpukit/score/src/threadqextract.c
+++ b/cpukit/score/src/threadqextract.c
@@ -19,13 +19,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/score/chain.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadqimpl.h>
 
 void _Thread_queue_Extract(
   Thread_queue_Control *the_thread_queue,
diff --git a/cpukit/score/src/threadqextractfifo.c b/cpukit/score/src/threadqextractfifo.c
index cd5df75..5038738 100644
--- a/cpukit/score/src/threadqextractfifo.c
+++ b/cpukit/score/src/threadqextractfifo.c
@@ -19,7 +19,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/chainimpl.h>
 #include <rtems/score/isrlevel.h>
 #include <rtems/score/threadimpl.h>
diff --git a/cpukit/score/src/threadqextractpriority.c b/cpukit/score/src/threadqextractpriority.c
index c797d3b..2b79398 100644
--- a/cpukit/score/src/threadqextractpriority.c
+++ b/cpukit/score/src/threadqextractpriority.c
@@ -18,7 +18,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/chainimpl.h>
 #include <rtems/score/isrlevel.h>
 #include <rtems/score/threadimpl.h>
diff --git a/cpukit/score/src/threadqextractwithproxy.c b/cpukit/score/src/threadqextractwithproxy.c
index d7245e5..6a3e891 100644
--- a/cpukit/score/src/threadqextractwithproxy.c
+++ b/cpukit/score/src/threadqextractwithproxy.c
@@ -23,7 +23,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/statesimpl.h>
 
 bool _Thread_queue_Extract_with_proxy(
diff --git a/cpukit/score/src/threadqfirst.c b/cpukit/score/src/threadqfirst.c
index 1108188..0b70e98 100644
--- a/cpukit/score/src/threadqfirst.c
+++ b/cpukit/score/src/threadqfirst.c
@@ -18,13 +18,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/score/chain.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
+#include <rtems/score/threadqimpl.h>
 
 Thread_Control *_Thread_queue_First(
   Thread_queue_Control *the_thread_queue
diff --git a/cpukit/score/src/threadqfirstfifo.c b/cpukit/score/src/threadqfirstfifo.c
index 9b47302..f8e8999 100644
--- a/cpukit/score/src/threadqfirstfifo.c
+++ b/cpukit/score/src/threadqfirstfifo.c
@@ -18,13 +18,8 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/chainimpl.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
 
 Thread_Control *_Thread_queue_First_fifo(
   Thread_queue_Control *the_thread_queue
diff --git a/cpukit/score/src/threadqfirstpriority.c b/cpukit/score/src/threadqfirstpriority.c
index 4a75a8b..5553f85 100644
--- a/cpukit/score/src/threadqfirstpriority.c
+++ b/cpukit/score/src/threadqfirstpriority.c
@@ -22,13 +22,8 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/chainimpl.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
 
 Thread_Control *_Thread_queue_First_priority (
   Thread_queue_Control *the_thread_queue
diff --git a/cpukit/score/src/threadqflush.c b/cpukit/score/src/threadqflush.c
index 46eb839..a8288af 100644
--- a/cpukit/score/src/threadqflush.c
+++ b/cpukit/score/src/threadqflush.c
@@ -18,13 +18,8 @@
 #include "config.h"
 #endif
 
-#include <rtems/system.h>
-#include <rtems/score/chain.h>
-#include <rtems/score/isr.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/object.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/threadq.h>
-#include <rtems/score/tqdata.h>
 
 void _Thread_queue_Flush(
   Thread_queue_Control       *the_thread_queue,
diff --git a/cpukit/score/src/threadqprocesstimeout.c b/cpukit/score/src/threadqprocesstimeout.c
index ee15d49..6aaf445 100644
--- a/cpukit/score/src/threadqprocesstimeout.c
+++ b/cpukit/score/src/threadqprocesstimeout.c
@@ -18,7 +18,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/threadimpl.h>
 
 void _Thread_queue_Process_timeout(
diff --git a/cpukit/score/src/threadqrequeue.c b/cpukit/score/src/threadqrequeue.c
index c2a8cad..840699e 100644
--- a/cpukit/score/src/threadqrequeue.c
+++ b/cpukit/score/src/threadqrequeue.c
@@ -18,7 +18,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/statesimpl.h>
 
 void _Thread_queue_Requeue(
diff --git a/cpukit/score/src/threadqtimeout.c b/cpukit/score/src/threadqtimeout.c
index 07e8e4e..7fe5b77 100644
--- a/cpukit/score/src/threadqtimeout.c
+++ b/cpukit/score/src/threadqtimeout.c
@@ -18,7 +18,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/threadimpl.h>
 
 void _Thread_queue_Timeout(
diff --git a/cpukit/score/src/threadreset.c b/cpukit/score/src/threadreset.c
index a9527d1..df280c1 100644
--- a/cpukit/score/src/threadreset.c
+++ b/cpukit/score/src/threadreset.c
@@ -19,7 +19,7 @@
 #endif
 
 #include <rtems/score/threadimpl.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 #include <rtems/score/watchdogimpl.h>
 
 void _Thread_Reset(
diff --git a/testsuites/sptests/sp58/init.c b/testsuites/sptests/sp58/init.c
index 3d16b60..2b4ffed 100644
--- a/testsuites/sptests/sp58/init.c
+++ b/testsuites/sptests/sp58/init.c
@@ -15,7 +15,6 @@
 
 #include <sys/types.h>
 #include <rtems/score/timespec.h>
-#include <rtems/score/threadq.h>
 
 /* forward declarations to avoid warnings */
 rtems_task Init(rtems_task_argument argument);
diff --git a/testsuites/sptests/spthreadq01/init.c b/testsuites/sptests/spthreadq01/init.c
index cbe3652..9924b18 100644
--- a/testsuites/sptests/spthreadq01/init.c
+++ b/testsuites/sptests/spthreadq01/init.c
@@ -14,7 +14,7 @@
 #include <tmacros.h>
 
 #include <sys/types.h>
-#include <rtems/score/threadq.h>
+#include <rtems/score/threadqimpl.h>
 
 /* forward declarations to avoid warnings */
 rtems_task Init(rtems_task_argument argument);




More information about the vc mailing list