diff options
Diffstat (limited to '')
-rw-r--r-- | c/src/exec/itron/src/task.c | 227 |
1 files changed, 0 insertions, 227 deletions
diff --git a/c/src/exec/itron/src/task.c b/c/src/exec/itron/src/task.c deleted file mode 100644 index 75c845288e..0000000000 --- a/c/src/exec/itron/src/task.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * COPYRIGHT (c) 1989-1999. - * 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.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#include <itron.h> - -#include <rtems/score/thread.h> -#include <rtems/score/userext.h> -#include <rtems/score/wkspace.h> -#include <rtems/score/apiext.h> -#include <rtems/score/sysstate.h> - -#include <rtems/itron/task.h> - -/* - * _ITRON_Task_Create_extension - * - * This routine is an extension routine that is invoked as part - * of creating any type of task or thread in the system. If the - * task is created via another API, then this routine is invoked - * and this API given the opportunity to initialize its extension - * area. - */ - -boolean _ITRON_Task_Create_extension( - Thread_Control *executing, - Thread_Control *created -) -{ - ITRON_API_Control *api; - - api = _Workspace_Allocate( sizeof( ITRON_API_Control ) ); - - if ( !api ) - return FALSE; - - created->API_Extensions[ THREAD_API_ITRON ] = api; - - /* - * Initialize the ITRON API extension - */ - - return TRUE; -} - -/* - * _ITRON_Task_Delete_extension - * - * This extension routine is invoked when a task is deleted. - */ - -User_extensions_routine _ITRON_Task_Delete_extension( - Thread_Control *executing, - Thread_Control *deleted -) -{ - (void) _Workspace_Free( deleted->API_Extensions[ THREAD_API_ITRON ] ); - - deleted->API_Extensions[ THREAD_API_ITRON ] = NULL; -} - -/* - * _ITRON_Task_Initialize_user_tasks - * - * This routine creates and starts all configured user - * initialzation threads. - */ - -void _ITRON_Task_Initialize_user_tasks( void ) -{ - unsigned32 index; - unsigned32 maximum; - ER return_value; - itron_initialization_tasks_table *user_tasks; - - /* - * NOTE: This is slightly different from the Ada implementation. - */ - - user_tasks = _ITRON_Task_User_initialization_tasks; - maximum = _ITRON_Task_Number_of_initialization_tasks; - - if ( !user_tasks || maximum == 0 ) - return; - - for ( index=0 ; index < maximum ; index++ ) { - - return_value = cre_tsk( - user_tasks[ index ].id, - &user_tasks[ index ].attributes - ); - - if ( return_value != E_OK ) - _Internal_error_Occurred( INTERNAL_ERROR_ITRON_API, TRUE, return_value ); - - return_value = sta_tsk( user_tasks[ index ].id, 0 ); - - if ( return_value != E_OK ) - _Internal_error_Occurred( INTERNAL_ERROR_ITRON_API, TRUE, return_value ); - - } -} - -/*PAGE - * - * _ITRON_Delete_task - */ - -ER _ITRON_Delete_task( - Thread_Control *the_thread -) -{ - Objects_Information *the_information; - - the_information = _Objects_Get_information( the_thread->Object.id ); - if ( !the_information ) { - return E_OBJ; /* XXX - should never happen */ - } - - _Thread_Close( the_information, the_thread ); - - _ITRON_Task_Free( the_thread ); - - return E_OK; -} - -/* - * At this point in time, the ITRON API does not need any other - * extensions. See the POSIX and RTEMS API extensions for - * examples of how they can be used. - */ - -/* - * Extension Tables - */ - -API_extensions_Control _ITRON_Task_API_extensions = { - { NULL, NULL }, - NULL, /* predriver */ - _ITRON_Task_Initialize_user_tasks, /* postdriver */ - NULL /* post switch */ -}; - -User_extensions_Control _ITRON_Task_User_extensions = { - { NULL, NULL }, - { { NULL, NULL }, NULL }, - { _ITRON_Task_Create_extension, /* create */ - NULL, /* start */ - NULL, /* restart */ - _ITRON_Task_Delete_extension, /* delete */ - NULL, /* switch */ - NULL, /* begin */ - NULL, /* exitted */ - NULL /* fatal */ - } -}; - -/* - * _ITRON_Task_Manager_initialization - * - * This routine initializes all Task Manager related data structures. - * - * Input parameters: - * maximum_tasks - number of tasks to initialize - * - * Output parameters: NONE - */ - -void _ITRON_Task_Manager_initialization( - unsigned32 maximum_tasks, - unsigned32 number_of_initialization_tasks, - itron_initialization_tasks_table *user_tasks -) -{ - - _ITRON_Task_Number_of_initialization_tasks = number_of_initialization_tasks; - _ITRON_Task_User_initialization_tasks = user_tasks; - - /* - * There may not be any ITRON_initialization tasks configured. - */ - -#if 0 - if ( user_tasks == NULL || number_of_initialization_tasks == 0 ) - _Internal_error_Occurred( INTERNAL_ERROR_ITRON_API, TRUE, -1 ); -#endif - - _Objects_Initialize_information( - &_ITRON_Task_Information, /* object information table */ - OBJECTS_ITRON_API, /* object API */ - OBJECTS_ITRON_TASKS, /* object class */ - maximum_tasks, /* maximum objects of this class */ - sizeof( Thread_Control ), /* size of this object's control block */ - FALSE, /* TRUE if names for this object are strings */ - ITRON_MAXIMUM_NAME_LENGTH /* maximum length of each object's name */ -#if defined(RTEMS_MULTIPROCESSING) - , - FALSE, /* TRUE if this is a global object class */ - NULL /* Proxy extraction support callout */ -#endif - ); - - /* - * Add all the extensions for this API - */ - - _User_extensions_Add_API_set( &_ITRON_Task_User_extensions ); - - _API_extensions_Add( &_ITRON_Task_API_extensions ); - - /* - * XXX MP not supported - * Register the MP Process Packet routine. - */ - -} |