summaryrefslogtreecommitdiffstats
path: root/cpukit
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 /cpukit
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.
Diffstat (limited to 'cpukit')
-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
101 files changed, 569 insertions, 717 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(