diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-06-29 00:34:12 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-06-29 00:34:12 +0000 |
commit | 11e8bc5f0fa2d9485908874dbfe9cd65c1aec477 (patch) | |
tree | 8e21888988f4c1e22aff26478e3f158e60c444c6 /cpukit/score/include/rtems/score/thread.h | |
parent | 2010-06-28 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-11e8bc5f0fa2d9485908874dbfe9cd65c1aec477.tar.bz2 |
2010-06-28 Joel Sherrill <joel.sherrill@oarcorp.com>
PR 1573/cpukit
* configure.ac, posix/src/killinfo.c,
posix/src/psignalclearprocesssignals.c,
posix/src/psignalsetprocesssignals.c,
posix/src/psignalunblockthread.c, posix/src/pthreadcreate.c,
posix/src/pthreadkill.c, posix/src/pthreadsigmask.c,
rtems/src/signalsend.c, rtems/src/taskmode.c, score/Makefile.am,
score/preinstall.am, score/include/rtems/system.h,
score/include/rtems/score/context.h, score/include/rtems/score/isr.h,
score/include/rtems/score/thread.h, score/src/isr.c,
score/src/isrthreaddispatch.c, score/src/thread.c,
score/src/threaddispatch.c, score/src/threadloadenv.c: Add a per cpu
data structure which contains the information required by RTEMS for
each CPU core. This encapsulates information such as thread
executing, heir, idle and dispatch needed.
* score/include/rtems/score/percpu.h, score/src/percpu.c: New files.
Diffstat (limited to 'cpukit/score/include/rtems/score/thread.h')
-rw-r--r-- | cpukit/score/include/rtems/score/thread.h | 42 |
1 files changed, 8 insertions, 34 deletions
diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h index 1e05df8ed0..ca4b04fa22 100644 --- a/cpukit/score/include/rtems/score/thread.h +++ b/cpukit/score/include/rtems/score/thread.h @@ -24,6 +24,13 @@ * * This handler encapsulates functionality related to the management of * threads. This includes the creation, deletion, and scheduling of threads. + * + * The following variables are maintained as part of the per cpu data + * structure. + * + * + Idle thread pointer + * + Executing thread pointer + * + Heir thread pointer */ /**@{*/ @@ -55,6 +62,7 @@ extern "C" { typedef uint32_t Thread_CPU_usage_t; #endif +#include <rtems/score/percpu.h> #include <rtems/score/context.h> #include <rtems/score/cpu.h> #if defined(RTEMS_MULTIPROCESSING) @@ -147,10 +155,6 @@ typedef enum { #endif } Thread_CPU_budget_algorithms; -/** This type defines the Thread Control Block structure. - */ -typedef struct Thread_Control_struct Thread_Control; - /** This defines thes the entry point for the thread specific timeslice * budget management algorithm. */ @@ -363,10 +367,6 @@ struct Thread_Control_struct { /** This field is true if the thread is offered globally */ bool is_global; #endif - /** This field is is true if the post task context switch should be - * executed for this thread at the next context switch. - */ - bool do_post_task_switch_extension; /** This field is true if the thread is preemptible. */ bool is_preemptible; #if __RTEMS_ADA__ @@ -427,12 +427,6 @@ SCORE_EXTERN void *rtems_ada_self; SCORE_EXTERN Objects_Information _Thread_Internal_information; /** - * The following define the thread control pointers used to access - * and manipulate the idle thread. - */ -SCORE_EXTERN Thread_Control *_Thread_Idle; - -/** * The following context area contains the context of the "thread" * which invoked the start multitasking routine. This context is * restored as the last action of the stop multitasking routine. Thus @@ -449,12 +443,6 @@ SCORE_EXTERN Context_Control _Thread_BSP_context; SCORE_EXTERN volatile uint32_t _Thread_Dispatch_disable_level; /** - * If this is non-zero, then the post-task switch extension - * is run regardless of the state of the per thread flag. - */ -SCORE_EXTERN uint32_t _Thread_Do_post_task_switch_extension; - -/** * The following holds how many user extensions are in the system. This * is used to determine how many user extension data areas to allocate * per thread. @@ -473,20 +461,6 @@ SCORE_EXTERN uint32_t _Thread_Ticks_per_timeslice; SCORE_EXTERN Chain_Control *_Thread_Ready_chain; /** - * The following points to the thread which is currently executing. - * This thread is implicitly manipulated by numerous directives. - */ -SCORE_EXTERN Thread_Control *_Thread_Executing; - -/** - * The following points to the highest priority ready thread - * in the system. Unless the current thread is not preemptibl, - * then this thread will be context switched to when the next - * dispatch occurs. - */ -SCORE_EXTERN Thread_Control *_Thread_Heir; - -/** * The following points to the thread whose floating point * context is currently loaded. */ |