diff options
Diffstat (limited to 'cpukit/score/include/rtems/score/threadimpl.h')
-rw-r--r-- | cpukit/score/include/rtems/score/threadimpl.h | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h index 4dcef0b7d8..7b8f89c346 100644 --- a/cpukit/score/include/rtems/score/threadimpl.h +++ b/cpukit/score/include/rtems/score/threadimpl.h @@ -32,6 +32,7 @@ #include <rtems/score/sysstate.h> #include <rtems/score/threadqimpl.h> #include <rtems/score/todimpl.h> +#include <rtems/score/freechain.h> #include <rtems/config.h> #ifdef __cplusplus @@ -54,11 +55,17 @@ extern "C" { */ SCORE_EXTERN void *rtems_ada_self; +typedef struct { + Objects_Information Objects; + + Freechain_Control Free_thread_queue_heads; +} Thread_Information; + /** * The following defines the information control block used to * manage this class of objects. */ -SCORE_EXTERN Objects_Information _Thread_Internal_information; +SCORE_EXTERN Thread_Information _Thread_Internal_information; /** * The following points to the thread whose floating point @@ -89,6 +96,19 @@ SCORE_EXTERN struct _reent **_Thread_libc_reent; RTEMS_CONTAINER_OF( node, Thread_Control, Resource_node ) #endif +void _Thread_Initialize_information( + Thread_Information *information, + Objects_APIs the_api, + uint16_t the_class, + uint32_t maximum, + bool is_string, + uint32_t maximum_name_length +#if defined(RTEMS_MULTIPROCESSING) + , + bool supports_global +#endif +); + /** * @brief Initialize thread handler. * @@ -154,7 +174,7 @@ void _Thread_Stack_Free( * guaranteed to be of at least minimum size. */ bool _Thread_Initialize( - Objects_Information *information, + Thread_Information *information, Thread_Control *the_thread, const struct Scheduler_Control *scheduler, void *stack_area, @@ -736,7 +756,7 @@ RTEMS_INLINE_ROUTINE uint32_t _Thread_Get_maximum_internal_threads(void) RTEMS_INLINE_ROUTINE Thread_Control *_Thread_Internal_allocate( void ) { return (Thread_Control *) - _Objects_Allocate_unprotected( &_Thread_Internal_information ); + _Objects_Allocate_unprotected( &_Thread_Internal_information.Objects ); } /** |