summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-24 17:30:26 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-26 11:55:45 +0200
commita1123646ac9f599d931a20217fad763cadbc5a13 (patch)
treed6aab593567af49a4f3198ea5aa38722b7cdb33f
parentscore: Delete threadq.inl (diff)
downloadrtems-a1123646ac9f599d931a20217fad763cadbc5a13.tar.bz2
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.
-rw-r--r--cpukit/posix/include/rtems/posix/cond.h2
-rw-r--r--cpukit/posix/include/rtems/posix/psignalimpl.h1
-rw-r--r--cpukit/posix/include/rtems/posix/threadsup.h6
-rw-r--r--cpukit/posix/src/pbarrierwait.c2
-rw-r--r--cpukit/posix/src/prwlockdestroy.c2
-rw-r--r--cpukit/posix/src/prwlockrdlock.c2
-rw-r--r--cpukit/posix/src/prwlocktimedrdlock.c2
-rw-r--r--cpukit/posix/src/prwlocktimedwrlock.c2
-rw-r--r--cpukit/posix/src/prwlocktryrdlock.c2
-rw-r--r--cpukit/posix/src/prwlocktrywrlock.c2
-rw-r--r--cpukit/posix/src/prwlockwrlock.c2
-rw-r--r--cpukit/posix/src/psignal.c2
-rw-r--r--cpukit/posix/src/psignalchecksignal.c1
-rw-r--r--cpukit/posix/src/psignalclearprocesssignals.c1
-rw-r--r--cpukit/posix/src/psignalclearsignals.c1
-rw-r--r--cpukit/posix/src/psignalsetprocesssignals.c1
-rw-r--r--cpukit/posix/src/psignalunblockthread.c2
-rw-r--r--cpukit/posix/src/pthread.c2
-rw-r--r--cpukit/posix/src/pthreadexit.c3
-rw-r--r--cpukit/posix/src/pthreadjoin.c2
-rw-r--r--cpukit/posix/src/sigtimedwait.c3
-rw-r--r--cpukit/rtems/include/rtems/rtems/region.h2
-rw-r--r--cpukit/rtems/src/barrierdelete.c6
-rw-r--r--cpukit/rtems/src/barrierrelease.c1
-rw-r--r--cpukit/rtems/src/barrierwait.c1
-rw-r--r--cpukit/rtems/src/partmp.c9
-rw-r--r--cpukit/rtems/src/regioncreate.c2
-rw-r--r--cpukit/rtems/src/regiongetsegment.c8
-rw-r--r--cpukit/rtems/src/regionmp.c1
-rw-r--r--cpukit/rtems/src/regionprocessqueue.c7
-rw-r--r--cpukit/rtems/src/sem.c1
-rw-r--r--cpukit/rtems/src/semcreate.c1
-rw-r--r--cpukit/rtems/src/semdelete.c1
-rw-r--r--cpukit/rtems/src/semflush.c1
-rw-r--r--cpukit/rtems/src/semident.c1
-rw-r--r--cpukit/rtems/src/semobtain.c1
-rw-r--r--cpukit/rtems/src/semrelease.c1
-rw-r--r--cpukit/rtems/src/signalmp.c1
-rw-r--r--cpukit/rtems/src/taskident.c1
-rw-r--r--cpukit/rtems/src/taskinitusers.c1
-rw-r--r--cpukit/rtems/src/taskmp.c1
-rw-r--r--cpukit/rtems/src/tasks.c1
-rw-r--r--cpukit/score/Makefile.am3
-rw-r--r--cpukit/score/include/rtems/score/corebarrier.h2
-rw-r--r--cpukit/score/include/rtems/score/corebarrierimpl.h1
-rw-r--r--cpukit/score/include/rtems/score/coremsg.h3
-rw-r--r--cpukit/score/include/rtems/score/coremsgimpl.h1
-rw-r--r--cpukit/score/include/rtems/score/coremuteximpl.h1
-rw-r--r--cpukit/score/include/rtems/score/corerwlock.h2
-rw-r--r--cpukit/score/include/rtems/score/corerwlockimpl.h1
-rw-r--r--cpukit/score/include/rtems/score/coresem.h2
-rw-r--r--cpukit/score/include/rtems/score/coresemimpl.h4
-rw-r--r--cpukit/score/include/rtems/score/mpci.h1
-rw-r--r--cpukit/score/include/rtems/score/thread.h2
-rw-r--r--cpukit/score/include/rtems/score/threadq.h412
-rw-r--r--cpukit/score/include/rtems/score/threadqimpl.h428
-rw-r--r--cpukit/score/include/rtems/score/tqdata.h118
-rw-r--r--cpukit/score/inline/rtems/score/tqdata.inl71
-rw-r--r--cpukit/score/preinstall.am12
-rw-r--r--cpukit/score/src/corebarrier.c3
-rw-r--r--cpukit/score/src/corebarrierrelease.c5
-rw-r--r--cpukit/score/src/corebarrierwait.c6
-rw-r--r--cpukit/score/src/coremsg.c1
-rw-r--r--cpukit/score/src/coremutex.c1
-rw-r--r--cpukit/score/src/coremutexflush.c1
-rw-r--r--cpukit/score/src/coremutexseize.c1
-rw-r--r--cpukit/score/src/coremutexseizeintr.c1
-rw-r--r--cpukit/score/src/coremutexsurrender.c1
-rw-r--r--cpukit/score/src/corerwlock.c2
-rw-r--r--cpukit/score/src/corerwlockobtainread.c3
-rw-r--r--cpukit/score/src/corerwlockobtainwrite.c3
-rw-r--r--cpukit/score/src/corerwlockrelease.c2
-rw-r--r--cpukit/score/src/corerwlocktimeout.c1
-rw-r--r--cpukit/score/src/coresem.c1
-rw-r--r--cpukit/score/src/coresemflush.c1
-rw-r--r--cpukit/score/src/coresemseize.c1
-rw-r--r--cpukit/score/src/coresemsurrender.c1
-rw-r--r--cpukit/score/src/corespinlock.c1
-rw-r--r--cpukit/score/src/mpci.c4
-rw-r--r--cpukit/score/src/threadchangepriority.c3
-rw-r--r--cpukit/score/src/threadclose.c2
-rw-r--r--cpukit/score/src/threadinitialize.c1
-rw-r--r--cpukit/score/src/threadq.c7
-rw-r--r--cpukit/score/src/threadqdequeue.c9
-rw-r--r--cpukit/score/src/threadqdequeuefifo.c2
-rw-r--r--cpukit/score/src/threadqdequeuepriority.c2
-rw-r--r--cpukit/score/src/threadqenqueue.c2
-rw-r--r--cpukit/score/src/threadqenqueuefifo.c8
-rw-r--r--cpukit/score/src/threadqenqueuepriority.c3
-rw-r--r--cpukit/score/src/threadqextract.c8
-rw-r--r--cpukit/score/src/threadqextractfifo.c2
-rw-r--r--cpukit/score/src/threadqextractpriority.c2
-rw-r--r--cpukit/score/src/threadqextractwithproxy.c2
-rw-r--r--cpukit/score/src/threadqfirst.c8
-rw-r--r--cpukit/score/src/threadqfirstfifo.c7
-rw-r--r--cpukit/score/src/threadqfirstpriority.c7
-rw-r--r--cpukit/score/src/threadqflush.c7
-rw-r--r--cpukit/score/src/threadqprocesstimeout.c2
-rw-r--r--cpukit/score/src/threadqrequeue.c2
-rw-r--r--cpukit/score/src/threadqtimeout.c2
-rw-r--r--cpukit/score/src/threadreset.c2
-rw-r--r--testsuites/sptests/sp58/init.c1
-rw-r--r--testsuites/sptests/spthreadq01/init.c2
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 0e3e68ccd1..cbaa87e38e 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 7425935126..2dd1ed6739 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 db9288c8e5..f1a87c9aed 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 1d7b9811c5..883358932a 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 a55e985df7..8db5cd0c85 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 e045b07679..5d56115643 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 6aec5f3873..c548512268 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 5772159842..88d555cbac 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 d682802784..c24c6756fb 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 189983632c..2c1d4faf3f 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 799fb7ae7e..b9f85ba000 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 62c746db61..1778cece17 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 53a4632d75..cb3703e3eb 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 429a3edfa6..07e4a216bc 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 90bd5032b4..389c3352bd 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 122e2f2d0d..3ad1c8ae31 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 51b034db21..fdf6137d6f 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 f4dcc214cd..121b0874e7 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 296c32be11..46e5ea1395 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 18039d3829..f7a9d459c2 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 c067c8480f..ba24c858ea 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 ce471b8169..37bf82eebb 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 8e958c34d9..8cfd1628bc 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 1840ca981c..ef1bba5a42 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 a233908bf1..5d9081e7be 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 a3b2d214e0..3b256dc4ef 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 b12647de76..01d8f65ae5 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 6622219c4a..8fea5f8083 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 41b52fabc3..7f45c20b4f 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 f2c11df9d9..4a07a2a423 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 40bec8d579..71368023c7 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 8afb1b6eec..3246d48794 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 5ae516dec1..31fafb5d85 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 93aac390a6..6353f6ceb6 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 a7b383bdc0..7a8f6d8fa5 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 ca7735febc..f204221c5e 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 e0f148cad3..109cb7ca80 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 ec778ac130..3deffcfa71 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 a63251c4e1..c3c0fb78f2 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 3b498f4c1d..6c6f84b4b6 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 4323f4e9ae..08b7be125e 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 49d0ad48a3..a8920e0e24 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 be9dcc285a..3cb6b7fa19 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 1505efc55e..ed4bd84d58 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 0353efb67d..f2bcf6af23 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 6e37c61a28..46df868829 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 d9f8f91c0b..c75a1a36f4 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 756cd969cd..aa7f0d99cd 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 3ed511495e..d9b43c4d22 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 a47f400b49..b67c79f78f 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 7a2040862a..fb9e6b2c33 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 35fbce59d0..0a743bfccc 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 0932c4763e..3cb9386a2d 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 c07350bc5a..d346ead6bc 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 3fec37953c..5879576bcf 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 0000000000..3d801c8dff
--- /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 c556d3ffe8..0000000000
--- 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 c5b85d2786..0000000000
--- 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 7fe0f6137b..1fabdc9841 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 04bd875a56..45b0d5a7c6 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 12fc3bcba2..818d1718cb 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 6ea1f250c2..aa9face886 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 72e1371b40..d876450b80 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 1d0f596867..4da98b1653 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 5e87f0c201..bbed737b7a 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 dc74beefe3..2cab59e961 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 70101d0899..2ddecc5211 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 e411f77f9f..ad1b84b5e0 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 2d49e836d8..8794e02d6d 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 fc3ce24140..ca9a214627 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 8c00a8f975..e5f3e73029 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 245390a4df..f37a5b60f0 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 1c3db0ef0b..8009379cbd 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 0257c121ea..94b461f5a2 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 4c691c8546..a4d1aa468b 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 5ed5ee68ba..cde444bfce 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 59fdbebafc..58a39299a2 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 0b4dba303f..c0acb1adb6 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 043f243607..9e009714b8 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 b919ddd2d2..b4437313a7 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 9866a5c507..df70f508ad 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 e9e8a0b112..bd0031fa7c 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 c5e694e9f3..20680e01f2 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 4cdc8edb90..34447a5c49 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 717cb593ad..afaf9fab69 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 49b4eae68e..fda101d36b 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 a4f00188da..92d5546608 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 91c6466073..c26581df79 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 a9d0c6bf3d..f2c4be0adc 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 9d0d40ccae..8e0e3e8baa 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 cd5df75dd7..5038738c12 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 c797d3bba3..2b79398490 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 d7245e5f59..6a3e891acf 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 1108188917..0b70e9819b 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 9b47302ed9..f8e89993d2 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 4a75a8b812..5553f85867 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 46eb8391d9..a8288afc6c 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 ee15d49bb3..6aaf445d33 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 c2a8cad5b7..840699e016 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 07e8e4e8de..7fe5b77868 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 a9527d1757..df280c1121 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 3d16b60d6b..2b4ffedaa6 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 cbe3652578..9924b18745 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);