From a1123646ac9f599d931a20217fad763cadbc5a13 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 24 Jul 2013 17:30:26 +0200 Subject: score: Create threadq implementation header Move implementation specific parts of tqdata.h, threadq.h and threadq.inl into new header file threadqimpl.h. The threadq.h contains now only the application visible API. Delete tqdata.h. --- cpukit/posix/include/rtems/posix/cond.h | 2 +- cpukit/posix/include/rtems/posix/psignalimpl.h | 1 + cpukit/posix/include/rtems/posix/threadsup.h | 6 +- cpukit/posix/src/pbarrierwait.c | 2 +- cpukit/posix/src/prwlockdestroy.c | 2 +- cpukit/posix/src/prwlockrdlock.c | 2 +- cpukit/posix/src/prwlocktimedrdlock.c | 2 +- cpukit/posix/src/prwlocktimedwrlock.c | 2 +- cpukit/posix/src/prwlocktryrdlock.c | 2 +- cpukit/posix/src/prwlocktrywrlock.c | 2 +- cpukit/posix/src/prwlockwrlock.c | 2 +- cpukit/posix/src/psignal.c | 2 +- cpukit/posix/src/psignalchecksignal.c | 1 - cpukit/posix/src/psignalclearprocesssignals.c | 1 - cpukit/posix/src/psignalclearsignals.c | 1 - cpukit/posix/src/psignalsetprocesssignals.c | 1 - cpukit/posix/src/psignalunblockthread.c | 2 +- cpukit/posix/src/pthread.c | 2 +- cpukit/posix/src/pthreadexit.c | 3 +- cpukit/posix/src/pthreadjoin.c | 2 +- cpukit/posix/src/sigtimedwait.c | 3 +- cpukit/rtems/include/rtems/rtems/region.h | 2 +- cpukit/rtems/src/barrierdelete.c | 6 +- cpukit/rtems/src/barrierrelease.c | 1 - cpukit/rtems/src/barrierwait.c | 1 - cpukit/rtems/src/partmp.c | 9 +- cpukit/rtems/src/regioncreate.c | 2 +- cpukit/rtems/src/regiongetsegment.c | 8 +- cpukit/rtems/src/regionmp.c | 1 + cpukit/rtems/src/regionprocessqueue.c | 7 +- cpukit/rtems/src/sem.c | 1 - cpukit/rtems/src/semcreate.c | 1 - cpukit/rtems/src/semdelete.c | 1 - cpukit/rtems/src/semflush.c | 1 - cpukit/rtems/src/semident.c | 1 - cpukit/rtems/src/semobtain.c | 1 - cpukit/rtems/src/semrelease.c | 1 - cpukit/rtems/src/signalmp.c | 1 + cpukit/rtems/src/taskident.c | 1 - cpukit/rtems/src/taskinitusers.c | 1 - cpukit/rtems/src/taskmp.c | 1 + cpukit/rtems/src/tasks.c | 1 - cpukit/score/Makefile.am | 3 +- cpukit/score/include/rtems/score/corebarrier.h | 2 +- cpukit/score/include/rtems/score/corebarrierimpl.h | 1 - cpukit/score/include/rtems/score/coremsg.h | 3 +- cpukit/score/include/rtems/score/coremsgimpl.h | 1 + cpukit/score/include/rtems/score/coremuteximpl.h | 1 + cpukit/score/include/rtems/score/corerwlock.h | 2 +- cpukit/score/include/rtems/score/corerwlockimpl.h | 1 - cpukit/score/include/rtems/score/coresem.h | 2 +- cpukit/score/include/rtems/score/coresemimpl.h | 4 +- cpukit/score/include/rtems/score/mpci.h | 1 - cpukit/score/include/rtems/score/thread.h | 2 +- cpukit/score/include/rtems/score/threadq.h | 412 +++----------------- cpukit/score/include/rtems/score/threadqimpl.h | 428 +++++++++++++++++++++ cpukit/score/include/rtems/score/tqdata.h | 118 ------ cpukit/score/inline/rtems/score/tqdata.inl | 71 ---- cpukit/score/preinstall.am | 12 +- cpukit/score/src/corebarrier.c | 3 +- cpukit/score/src/corebarrierrelease.c | 5 +- cpukit/score/src/corebarrierwait.c | 6 +- cpukit/score/src/coremsg.c | 1 - cpukit/score/src/coremutex.c | 1 - cpukit/score/src/coremutexflush.c | 1 - cpukit/score/src/coremutexseize.c | 1 - cpukit/score/src/coremutexseizeintr.c | 1 - cpukit/score/src/coremutexsurrender.c | 1 - cpukit/score/src/corerwlock.c | 2 +- cpukit/score/src/corerwlockobtainread.c | 3 +- cpukit/score/src/corerwlockobtainwrite.c | 3 +- cpukit/score/src/corerwlockrelease.c | 2 +- cpukit/score/src/corerwlocktimeout.c | 1 + cpukit/score/src/coresem.c | 1 - cpukit/score/src/coresemflush.c | 1 - cpukit/score/src/coresemseize.c | 1 - cpukit/score/src/coresemsurrender.c | 1 - cpukit/score/src/corespinlock.c | 1 - cpukit/score/src/mpci.c | 4 +- cpukit/score/src/threadchangepriority.c | 3 +- cpukit/score/src/threadclose.c | 2 +- cpukit/score/src/threadinitialize.c | 1 - cpukit/score/src/threadq.c | 7 +- cpukit/score/src/threadqdequeue.c | 9 +- cpukit/score/src/threadqdequeuefifo.c | 2 +- cpukit/score/src/threadqdequeuepriority.c | 2 +- cpukit/score/src/threadqenqueue.c | 2 +- cpukit/score/src/threadqenqueuefifo.c | 8 +- cpukit/score/src/threadqenqueuepriority.c | 3 +- cpukit/score/src/threadqextract.c | 8 +- cpukit/score/src/threadqextractfifo.c | 2 +- cpukit/score/src/threadqextractpriority.c | 2 +- cpukit/score/src/threadqextractwithproxy.c | 2 +- cpukit/score/src/threadqfirst.c | 8 +- cpukit/score/src/threadqfirstfifo.c | 7 +- cpukit/score/src/threadqfirstpriority.c | 7 +- cpukit/score/src/threadqflush.c | 7 +- cpukit/score/src/threadqprocesstimeout.c | 2 +- cpukit/score/src/threadqrequeue.c | 2 +- cpukit/score/src/threadqtimeout.c | 2 +- cpukit/score/src/threadreset.c | 2 +- testsuites/sptests/sp58/init.c | 1 - testsuites/sptests/spthreadq01/init.c | 2 +- 103 files changed, 570 insertions(+), 719 deletions(-) create mode 100644 cpukit/score/include/rtems/score/threadqimpl.h delete mode 100644 cpukit/score/include/rtems/score/tqdata.h delete mode 100644 cpukit/score/inline/rtems/score/tqdata.inl 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 -#include +#include #include 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 #include #include +#include #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 #include -#include +#include #include +#include +#include + /** * @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 #include -#include #include +#include /** * 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 #include -#include #include +#include /** * 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 #include -#include #include +#include /** * 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 #include -#include #include #include +#include /* * 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 #include -#include #include #include +#include /* * 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 #include -#include #include +#include /* * 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 #include -#include #include +#include /* * 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 #include -#include #include +#include /* * 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 #include -#include +#include #include #include #include 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 #include #include -#include #include #include #include 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 #include #include -#include #include #include #include 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 #include #include -#include #include #include #include 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 #include #include -#include #include #include #include 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 #include #include -#include +#include #include #include #include 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 #include #include -#include +#include #include #include #include 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 -#include #include #include #include - +#include 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 #include -#include +#include 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 #include -#include #include #include +#include #include #include #include -#include 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 #include #include -#include +#include #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 -#include -#include #include -#include -#include +#include 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 #include #include -#include /* * 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 #include #include -#include 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 -#include -#include -#include -#include -#include #include -#include -#include #include #include +#include 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 #include #include -#include +#include /* * 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 -#include -#include -#include -#include #include -#include +#include #include +#include 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 #include #include +#include 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 -#include -#include -#include -#include #include -#include #include +#include 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 #include #include -#include #if defined(RTEMS_MULTIPROCESSING) #include #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 #include #include -#include #if defined(RTEMS_MULTIPROCESSING) #include #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 #include #include -#include #if defined(RTEMS_MULTIPROCESSING) #include #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 #include #include -#include #if defined(RTEMS_MULTIPROCESSING) #include #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 #include #include -#include #if defined(RTEMS_MULTIPROCESSING) #include #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 #include #include -#include #if defined(RTEMS_MULTIPROCESSING) #include #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 #include #include -#include #if defined(RTEMS_MULTIPROCESSING) #include #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 #include #include +#include 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 #include #include -#include #include #include #include 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 #include #include -#include #include #include #include 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 #include #include +#include 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 #include #include -#include #include #include #include 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 +#include #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 -#include #include #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 +#include #include -#include #include #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 #include +#include #include #include 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 #include #include +#include #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 +#include /** * @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 -#include #include #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 +#include #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 -#include -#include -#include +#include #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 #include #include -#include #include /** 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 #include #include -#include +#include #include #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 - -#include -#include -#include +#include +#include +#include #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 +#include + +#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 -#include -#include -#include - -/** - * 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 -#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 directly; include 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 #include -#include -#include +#include 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 -#include #include -#include -#include +#include 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 -#include #include -#include -#include +#include +#include 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 #include -#include #include /* 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 #include #include -#include 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 #include #include -#include 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 #include #include -#include #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 #include #include -#include #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 #include #include -#include #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 #include -#include +#include 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 #include -#include +#include #include 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 #include -#include +#include #include 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 #include -#include +#include #include 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 #include +#include 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 #include -#include 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 #include #include -#include 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 #include #include -#include #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 #include #include -#include 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 #include #include -#include 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 #include #include -#include -#include +#include +#include #include #include 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 -#include #include -#include +#include 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 #include -#include +#include #include #include #include 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 #include #include -#include #include #include #include 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 +#include #include -#include -#include -#include -#include -#include 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 -#include -#include -#include -#include -#include -#include +#include +#include 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 +#include #include #include #include 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 +#include #include #include #include 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 +#include #include #include #include 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 +#include #include -#include -#include -#include -#include -#include +#include 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 +#include #include +#include #include /* 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 -#include -#include -#include -#include -#include -#include +#include 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 +#include #include #include #include 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 +#include #include #include #include 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 +#include #include 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 -#include -#include -#include -#include -#include -#include +#include 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 +#include #include -#include -#include -#include -#include -#include 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 +#include #include -#include -#include -#include -#include -#include 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 -#include -#include +#include #include -#include -#include -#include 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 +#include #include 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 +#include #include 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 +#include #include 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 -#include +#include #include 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 #include -#include /* 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 #include -#include +#include /* forward declarations to avoid warnings */ rtems_task Init(rtems_task_argument argument); -- cgit v1.2.3