From ccd54344d904b657123e4e4ba795a32212382be2 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 7 Jan 2016 09:55:45 +0100 Subject: score: Introduce Thread_Entry_information This avoids potential dead code in _Thread_Handler(). It gets rid of the dangerous function pointer casts. Update #2514. --- cpukit/rtems/src/taskstart.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'cpukit/rtems/src/taskstart.c') diff --git a/cpukit/rtems/src/taskstart.c b/cpukit/rtems/src/taskstart.c index d6f15d8624..39b3e9ca1d 100644 --- a/cpukit/rtems/src/taskstart.c +++ b/cpukit/rtems/src/taskstart.c @@ -44,9 +44,18 @@ rtems_status_code rtems_task_start( rtems_task_argument argument ) { - Thread_Control *the_thread; - Objects_Locations location; - bool successfully_started; + Thread_Entry_information entry = { + .adaptor = _Thread_Entry_adaptor_numeric, + .Kinds = { + .Numeric = { + .entry = entry_point, + .argument = argument + } + } + }; + Thread_Control *the_thread; + Objects_Locations location; + bool successfully_started; if ( entry_point == NULL ) return RTEMS_INVALID_ADDRESS; @@ -55,14 +64,7 @@ rtems_status_code rtems_task_start( switch ( location ) { case OBJECTS_LOCAL: - successfully_started = _Thread_Start( - the_thread, - THREAD_START_NUMERIC, - entry_point, - NULL, - argument, - NULL - ); + successfully_started = _Thread_Start( the_thread, &entry, NULL ); _Objects_Put( &the_thread->Object ); -- cgit v1.2.3