From 7f6a24abdd1793e394e4d5d49de1f4ca0e00297a Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 28 Aug 1995 15:30:29 +0000 Subject: Added unused priority ceiling parameter to rtems_semaphore_create. Rearranged code to created thread handler routines to initialize, start, restart, and "close/delete" a thread. Made internal threads their own object class. This now uses the thread support routines for starting and initializing a thread. Insured deleted tasks are freed to the Inactive pool associated with the correct Information block. Added an RTEMS API specific data area to the thread control block. Beginnings of removing the word "rtems" from the core. --- c/src/exec/score/include/rtems/score/threadq.h | 37 +++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 4 deletions(-) (limited to 'c/src/exec/score/include/rtems/score/threadq.h') diff --git a/c/src/exec/score/include/rtems/score/threadq.h b/c/src/exec/score/include/rtems/score/threadq.h index 291044ead1..27a36ab63e 100644 --- a/c/src/exec/score/include/rtems/score/threadq.h +++ b/c/src/exec/score/include/rtems/score/threadq.h @@ -36,6 +36,19 @@ typedef void ( *Thread_queue_Flush_callout )( Thread_Control * ); +/* + * The following type defines the callout used when a local task + * is extracted from a remote thread queue (i.e. it's proxy must + * extracted from the remote queue). + */ + +typedef void ( *Thread_queue_Extract_callout )( + Thread_Control * + ); + +EXTERN Thread_queue_Extract_callout + _Thread_queue_Extract_table[ OBJECTS_CLASSES_LAST + 1 ]; + /* * _Thread_queue_Dequeue * @@ -62,7 +75,7 @@ Thread_Control *_Thread_queue_Dequeue( void _Thread_queue_Enqueue( Thread_queue_Control *the_thread_queue, - rtems_interval timeout + rtems_interval timeout ); /* @@ -79,6 +92,20 @@ void _Thread_queue_Extract( Thread_Control *the_thread ); +/* + * _Thread_queue_Extract_with_proxy + * + * DESCRIPTION: + * + * This routine extracts the_thread from the_thread_queue + * and insures that if there is a proxy for this task on + * another node, it is also dealt with. + */ + +boolean _Thread_queue_Extract_with_proxy( + Thread_Control *the_thread +); + /* * _Thread_queue_First * @@ -118,9 +145,11 @@ void _Thread_queue_Flush( */ void _Thread_queue_Initialize( - Thread_queue_Control *the_thread_queue, - rtems_attribute attribute_set, - States_Control state + Thread_queue_Control *the_thread_queue, + Objects_Classes the_class, + Thread_queue_Disciplines the_discipline, + States_Control state, + Thread_queue_Extract_callout proxy_extract_callout ); /* -- cgit v1.2.3