36 #ifndef _RTEMS_CONFDEFS_THREADS_H 37 #define _RTEMS_CONFDEFS_THREADS_H 39 #ifndef __CONFIGURATION_TEMPLATE_h 40 #error "Do not include this file directly, use <rtems/confdefs.h> instead" 55 #ifndef CONFIGURE_MAXIMUM_TASKS 56 #define CONFIGURE_MAXIMUM_TASKS 0 59 #define _CONFIGURE_TASKS ( CONFIGURE_MAXIMUM_TASKS + _CONFIGURE_LIBBLOCK_TASKS ) 61 #ifndef CONFIGURE_MAXIMUM_POSIX_THREADS 62 #define CONFIGURE_MAXIMUM_POSIX_THREADS 0 65 #if CONFIGURE_MAXIMUM_POSIX_THREADS > 0 69 #if !defined(CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION) \ 70 && CONFIGURE_MAXIMUM_TASKS == 0 \ 71 && CONFIGURE_MAXIMUM_POSIX_THREADS == 0 72 #error "You must define one of CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION, CONFIGURE_MAXIMUM_TASKS, and CONFIGURE_MAXIMUM_POSIX_THREADS" 75 #if !defined(CONFIGURE_RTEMS_INIT_TASKS_TABLE) \ 76 && !defined(CONFIGURE_POSIX_INIT_THREAD_TABLE) \ 77 && !defined(CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION) 78 #error "You must define one of CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION, CONFIGURE_RTEMS_INIT_TASKS_TABLE, and CONFIGURE_POSIX_INIT_THREAD_TABLE" 81 #ifndef CONFIGURE_MAXIMUM_THREAD_NAME_SIZE 82 #define CONFIGURE_MAXIMUM_THREAD_NAME_SIZE THREAD_DEFAULT_MAXIMUM_NAME_SIZE 91 #ifdef CONFIGURE_SCHEDULER_CBS 94 #ifdef CONFIGURE_SCHEDULER_EDF 97 #ifdef CONFIGURE_SCHEDULER_EDF_SMP 100 #ifdef CONFIGURE_SCHEDULER_PRIORITY 103 #ifdef CONFIGURE_SCHEDULER_SIMPLE_SMP 106 #ifdef CONFIGURE_SCHEDULER_PRIORITY_SMP 109 #ifdef CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP 112 #ifdef CONFIGURE_SCHEDULER_STRONG_APA 115 #ifdef CONFIGURE_SCHEDULER_USER_PER_THREAD 116 CONFIGURE_SCHEDULER_USER_PER_THREAD User;
118 } Configuration_Scheduler_node;
121 const size_t _Scheduler_Node_size =
sizeof( Configuration_Scheduler_node );
128 #if CONFIGURE_MAXIMUM_USER_EXTENSIONS > 0 129 void *extensions[ CONFIGURE_MAXIMUM_USER_EXTENSIONS + 1 ];
131 Configuration_Scheduler_node Scheduler_nodes[ _CONFIGURE_SCHEDULER_COUNT ];
133 #ifdef RTEMS_POSIX_API 134 POSIX_API_Control API_POSIX;
136 #if CONFIGURE_MAXIMUM_THREAD_NAME_SIZE > 1 137 char name[ CONFIGURE_MAXIMUM_THREAD_NAME_SIZE ];
139 #ifdef _CONFIGURE_ENABLE_NEWLIB_REENTRANCY 140 struct _reent Newlib;
163 #if CONFIGURE_MAXIMUM_THREAD_NAME_SIZE > 1 167 Control.Join_queue.Queue.name
172 #ifdef RTEMS_POSIX_API 197 rtems_resource_maximum_per_allocation( _CONFIGURE_TASKS ) +
198 rtems_resource_maximum_per_allocation( CONFIGURE_MAXIMUM_POSIX_THREADS );
200 THREAD_INFORMATION_DEFINE(
202 OBJECTS_INTERNAL_API,
203 OBJECTS_INTERNAL_THREADS,
204 _CONFIGURE_MAXIMUM_PROCESSORS + _CONFIGURE_MPCI_RECEIVE_SERVER_COUNT
207 #if _CONFIGURE_TASKS > 0 208 THREAD_INFORMATION_DEFINE(
216 #if CONFIGURE_MAXIMUM_POSIX_THREADS > 0 217 const size_t _POSIX_Threads_Minimum_stack_size =
218 CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE;
220 THREAD_INFORMATION_DEFINE(
223 OBJECTS_POSIX_THREADS,
224 CONFIGURE_MAXIMUM_POSIX_THREADS
Definition: tasksdata.h:41
union _Thread_queue_Heads::@3986 Heads
Scheduler node specialization for EDF schedulers.
Definition: scheduleredf.h:90
Thread priority queue.
Definition: threadq.h:324
Evaluate Per-CPU Configuration Options.
Evaluate Unlimited Objects Configuration Options.
Evaluate Scheduler Configuration Options.
POSIX Threads Private Support.
POSIX Thread API Support.
Thread_queue_Priority_queue Priority
This is the set of threads for priority discipline waiting.
Definition: threadq.h:378
#define _Thread_queue_Heads_size
Size of the thread queue heads of a particular application.
Definition: thread.h:991
const size_t _Thread_Control_add_on_count
Thread control add-on count.
const Thread_Control_add_on _Thread_Control_add_ons[]
Thread control add-ons.
Evaluate MPCI Configuration Options.
Thread queue heads.
Definition: threadq.h:360
Definition: scheduleredfsmp.h:38
Evaluate User Extensions Configuration Options.
Thread control add-on.
Definition: thread.h:900
Scheduler node specialization for SMP schedulers.
Definition: schedulersmp.h:100
Scheduler node specialization for Deterministic Priority schedulers.
Definition: schedulerpriority.h:101
Scheduler node specialization for Strong APA schedulers.
Definition: schedulerstrongapa.h:66
Scheduler node for per-thread data.
Definition: schedulernode.h:79
Scheduler node specialization for Deterministic Priority SMP schedulers.
Definition: schedulerprioritysmp.h:66
Definition: schedulercbs.h:138
Thread_queue_Heads Thread_queue_Configured_heads
The configured thread queue heads.
Definition: thread.h:980
Evaluate Block Device Cache Configuration Options.
Constants and Structures Related with the Thread Control Block.
struct Thread_Configured_control Thread_Configured_control
The configured thread control block.
Definition: thread.h:969
Scheduler node specialization for Deterministic Priority Affinity SMP schedulers.
Definition: schedulerpriorityaffinitysmp.h:230
const size_t _Thread_Initial_thread_count
Count of configured threads.
const size_t _Thread_Maximum_name_size
Maximum size of a thread name in characters (including the terminating '\0' character).
Classic Tasks Manager Data Structures.