diff options
Diffstat (limited to 'cpukit')
53 files changed, 601 insertions, 569 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index 0c3b9193bd..9d063cf1e2 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,38 @@ +2007-11-30 Joel Sherrill <joel.sherrill@OARcorp.com> + + * rtems/src/barrierdelete.c, rtems/src/barrierrelease.c, + rtems/src/barriertranslatereturncode.c, rtems/src/barrierwait.c, + rtems/src/clockget.c, rtems/src/dpmemdelete.c, + rtems/src/dpmemexternal2internal.c, + rtems/src/dpmeminternal2external.c, rtems/src/eventsend.c, + rtems/src/eventtimeout.c, rtems/src/msgqbroadcast.c, + rtems/src/msgqdelete.c, rtems/src/msgqflush.c, + rtems/src/msgqgetnumberpending.c, rtems/src/msgqreceive.c, + rtems/src/msgqsend.c, rtems/src/msgqurgent.c, rtems/src/partdelete.c, + rtems/src/partgetbuffer.c, rtems/src/partreturnbuffer.c, + rtems/src/ratemoncancel.c, rtems/src/ratemondelete.c, + rtems/src/ratemongetstatistics.c, rtems/src/ratemongetstatus.c, + rtems/src/ratemonperiod.c, rtems/src/ratemonresetstatistics.c, + rtems/src/ratemontimeout.c, rtems/src/semdelete.c, + rtems/src/semflush.c, rtems/src/semobtain.c, rtems/src/semrelease.c, + rtems/src/semtranslatereturncode.c, rtems/src/signalsend.c, + rtems/src/taskdelete.c, rtems/src/taskgetnote.c, + rtems/src/taskissuspended.c, rtems/src/taskrestart.c, + rtems/src/taskresume.c, rtems/src/tasksetnote.c, + rtems/src/tasksetpriority.c, rtems/src/taskstart.c, + rtems/src/tasksuspend.c, rtems/src/taskvariableadd.c, + rtems/src/taskvariabledelete.c, rtems/src/taskvariableget.c, + rtems/src/timercancel.c, rtems/src/timerdelete.c, + rtems/src/timerfirewhen.c, rtems/src/timergetinfo.c, + rtems/src/timerreset.c, rtems/src/timerserverfireafter.c, + rtems/src/timerserverfirewhen.c: Restructured all code with + the switch (location) pattern so that OBJECTS_LOCAL is first + and we can fall into it and the OBJECTS_ERROR case breaks + to a return RTEMS_INVALID_ID. This eliminates the return + RTEMS_INTERNAL_ERROR at the bottom of each of these files which + was unreachable and untestable code. This resulted in a code + savings of approximately 20 bytes per file on the SPARC/ERC32. + 2007-11-30 Glenn Humphrey <glenn.humphrey@OARcorp.com> * posix/Makefile.am: Restructed to move the diff --git a/cpukit/rtems/src/barrierdelete.c b/cpukit/rtems/src/barrierdelete.c index 658820969d..6843a1bc00 100644 --- a/cpukit/rtems/src/barrierdelete.c +++ b/cpukit/rtems/src/barrierdelete.c @@ -48,12 +48,6 @@ rtems_status_code rtems_barrier_delete( the_barrier = _Barrier_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: -#endif - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: _CORE_barrier_Flush( &the_barrier->Barrier, @@ -67,7 +61,13 @@ rtems_status_code rtems_barrier_delete( _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/barrierrelease.c b/cpukit/rtems/src/barrierrelease.c index 2dfc441da3..8bb53b8664 100644 --- a/cpukit/rtems/src/barrierrelease.c +++ b/cpukit/rtems/src/barrierrelease.c @@ -50,18 +50,18 @@ rtems_status_code rtems_barrier_release( the_barrier = _Barrier_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: -#endif - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: *released = _CORE_barrier_Release( &the_barrier->Barrier, id, NULL ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/barriertranslatereturncode.c b/cpukit/rtems/src/barriertranslatereturncode.c index da218166ad..97d7feb911 100644 --- a/cpukit/rtems/src/barriertranslatereturncode.c +++ b/cpukit/rtems/src/barriertranslatereturncode.c @@ -1,7 +1,7 @@ /* * Barrier Manager -- Translate SuperCore Status * - * COPYRIGHT (c) 1989-2006. + * COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -38,12 +38,16 @@ rtems_status_code _Barrier_Translate_core_barrier_return_code_[] = { RTEMS_TIMEOUT /* CORE_BARRIER_TIMEOUT */ }; - rtems_status_code _Barrier_Translate_core_barrier_return_code ( CORE_barrier_Status the_barrier_status ) { - if ( the_barrier_status > CORE_BARRIER_TIMEOUT ) - return RTEMS_INTERNAL_ERROR; + /* + * Internal consistency check for bad status from SuperCore + */ + #if defined(RTEMS_DEBUG) + if ( the_barrier_status > CORE_BARRIER_STATUS_LAST ) + return RTEMS_INTERNAL_ERROR; + #endif return _Barrier_Translate_core_barrier_return_code_[the_barrier_status]; } diff --git a/cpukit/rtems/src/barrierwait.c b/cpukit/rtems/src/barrierwait.c index 6a3fcb3103..92d4c60635 100644 --- a/cpukit/rtems/src/barrierwait.c +++ b/cpukit/rtems/src/barrierwait.c @@ -46,11 +46,6 @@ rtems_status_code rtems_barrier_wait( the_barrier = _Barrier_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: -#endif - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: _CORE_barrier_Wait( @@ -64,7 +59,12 @@ rtems_status_code rtems_barrier_wait( return _Barrier_Translate_core_barrier_return_code( _Thread_Executing->Wait.return_code ); +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/clockget.c b/cpukit/rtems/src/clockget.c index 1c62256614..ba0fabf8e5 100644 --- a/cpukit/rtems/src/clockget.c +++ b/cpukit/rtems/src/clockget.c @@ -1,7 +1,7 @@ /* * Clock Manager * - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -111,6 +111,6 @@ rtems_status_code rtems_clock_get( } } - return RTEMS_INTERNAL_ERROR; /* should never get here */ + return RTEMS_INVALID_NUMBER; } diff --git a/cpukit/rtems/src/dpmemdelete.c b/cpukit/rtems/src/dpmemdelete.c index 91fe812132..a3f500edd7 100644 --- a/cpukit/rtems/src/dpmemdelete.c +++ b/cpukit/rtems/src/dpmemdelete.c @@ -48,20 +48,19 @@ rtems_status_code rtems_port_delete( the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* this error cannot be returned */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object ); _Dual_ported_memory_Free( the_port ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* this error cannot be returned */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/dpmemexternal2internal.c b/cpukit/rtems/src/dpmemexternal2internal.c index 512d2ec32d..3d7cd1544d 100644 --- a/cpukit/rtems/src/dpmemexternal2internal.c +++ b/cpukit/rtems/src/dpmemexternal2internal.c @@ -58,14 +58,6 @@ rtems_status_code rtems_port_external_to_internal( the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* this error cannot be returned */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: ending = _Addresses_Subtract( external, the_port->external_base ); if ( ending > the_port->length ) @@ -75,7 +67,13 @@ rtems_status_code rtems_port_external_to_internal( ending ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* this error cannot be returned */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/dpmeminternal2external.c b/cpukit/rtems/src/dpmeminternal2external.c index 0f048cb97e..3bd33ff921 100644 --- a/cpukit/rtems/src/dpmeminternal2external.c +++ b/cpukit/rtems/src/dpmeminternal2external.c @@ -58,13 +58,6 @@ rtems_status_code rtems_port_internal_to_external( the_port = _Dual_ported_memory_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* this error cannot be returned */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: ending = _Addresses_Subtract( internal, the_port->internal_base ); @@ -75,7 +68,13 @@ rtems_status_code rtems_port_internal_to_external( ending ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* this error cannot be returned */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/eventsend.c b/cpukit/rtems/src/eventsend.c index 1f913e27ea..189ad78718 100644 --- a/cpukit/rtems/src/eventsend.c +++ b/cpukit/rtems/src/eventsend.c @@ -51,6 +51,14 @@ rtems_status_code rtems_event_send( the_thread = _Thread_Get( id, &location ); switch ( location ) { + + case OBJECTS_LOCAL: + api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; + _Event_sets_Post( event_in, &api->pending_events ); + _Event_Surrender( the_thread ); + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: return( @@ -61,15 +69,10 @@ rtems_status_code rtems_event_send( ) ); #endif + case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: - api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; - _Event_sets_Post( event_in, &api->pending_events ); - _Event_Surrender( the_thread ); - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/eventtimeout.c b/cpukit/rtems/src/eventtimeout.c index 75c0e487db..85e0a61096 100644 --- a/cpukit/rtems/src/eventtimeout.c +++ b/cpukit/rtems/src/eventtimeout.c @@ -49,11 +49,7 @@ void _Event_Timeout( the_thread = _Thread_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* impossible */ -#endif - case OBJECTS_ERROR: - break; + case OBJECTS_LOCAL: /* @@ -89,5 +85,11 @@ void _Event_Timeout( _Thread_Unnest_dispatch(); break; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* impossible */ +#endif + case OBJECTS_ERROR: + break; } } diff --git a/cpukit/rtems/src/msgqbroadcast.c b/cpukit/rtems/src/msgqbroadcast.c index 4b9304991b..9d56cfd8db 100644 --- a/cpukit/rtems/src/msgqbroadcast.c +++ b/cpukit/rtems/src/msgqbroadcast.c @@ -72,6 +72,25 @@ rtems_status_code rtems_message_queue_broadcast( the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { + + case OBJECTS_LOCAL: + core_status = _CORE_message_queue_Broadcast( + &the_message_queue->message_queue, + buffer, + size, + id, + #if defined(RTEMS_MULTIPROCESSING) + _Message_queue_Core_message_queue_mp_support, + #else + NULL, + #endif + count + ); + + _Thread_Enable_dispatch(); + return + _Message_queue_Translate_core_message_queue_return_code( core_status ); + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: _Thread_Executing->Wait.return_argument = count; @@ -88,26 +107,7 @@ rtems_status_code rtems_message_queue_broadcast( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - core_status = _CORE_message_queue_Broadcast( - &the_message_queue->message_queue, - buffer, - size, - id, -#if defined(RTEMS_MULTIPROCESSING) - _Message_queue_Core_message_queue_mp_support, -#else - NULL, -#endif - count - ); - - _Thread_Enable_dispatch(); - return - _Message_queue_Translate_core_message_queue_return_code( core_status ); - + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/msgqdelete.c b/cpukit/rtems/src/msgqdelete.c index a43027f343..e51270c2ff 100644 --- a/cpukit/rtems/src/msgqdelete.c +++ b/cpukit/rtems/src/msgqdelete.c @@ -59,26 +59,17 @@ rtems_status_code rtems_message_queue_delete( the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: _Objects_Close( &_Message_queue_Information, &the_message_queue->Object ); _CORE_message_queue_Close( &the_message_queue->message_queue, -#if defined(RTEMS_MULTIPROCESSING) - _Message_queue_MP_Send_object_was_deleted, -#else - NULL, -#endif + #if defined(RTEMS_MULTIPROCESSING) + _Message_queue_MP_Send_object_was_deleted, + #else + NULL, + #endif CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED ); @@ -99,10 +90,18 @@ rtems_status_code rtems_message_queue_delete( ); } #endif - _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/msgqflush.c b/cpukit/rtems/src/msgqflush.c index a1eed21779..42c2375466 100644 --- a/cpukit/rtems/src/msgqflush.c +++ b/cpukit/rtems/src/msgqflush.c @@ -65,6 +65,12 @@ rtems_status_code rtems_message_queue_flush( the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { + + case OBJECTS_LOCAL: + *count = _CORE_message_queue_Flush( &the_message_queue->message_queue ); + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: _Thread_Executing->Wait.return_argument = count; @@ -81,13 +87,8 @@ rtems_status_code rtems_message_queue_flush( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - *count = _CORE_message_queue_Flush( &the_message_queue->message_queue ); - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/msgqgetnumberpending.c b/cpukit/rtems/src/msgqgetnumberpending.c index 33e2b912e5..32eeb0844b 100644 --- a/cpukit/rtems/src/msgqgetnumberpending.c +++ b/cpukit/rtems/src/msgqgetnumberpending.c @@ -63,6 +63,12 @@ rtems_status_code rtems_message_queue_get_number_pending( the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { + + case OBJECTS_LOCAL: + *count = the_message_queue->message_queue.number_of_pending_messages; + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: _Thread_Executing->Wait.return_argument = count; @@ -78,13 +84,8 @@ rtems_status_code rtems_message_queue_get_number_pending( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - *count = the_message_queue->message_queue.number_of_pending_messages; - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/msgqreceive.c b/cpukit/rtems/src/msgqreceive.c index 83e8758fef..8140929081 100644 --- a/cpukit/rtems/src/msgqreceive.c +++ b/cpukit/rtems/src/msgqreceive.c @@ -74,21 +74,6 @@ rtems_status_code rtems_message_queue_receive( the_message_queue = _Message_queue_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - return _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_RECEIVE_REQUEST, - id, - buffer, - size, - option_set, - timeout - ); -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: if ( _Options_Is_no_wait( option_set ) ) wait = FALSE; @@ -108,7 +93,21 @@ rtems_status_code rtems_message_queue_receive( _Thread_Executing->Wait.return_code ); +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + return _Message_queue_MP_Send_request_packet( + MESSAGE_QUEUE_MP_RECEIVE_REQUEST, + id, + buffer, + size, + option_set, + timeout + ); +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/msgqsend.c b/cpukit/rtems/src/msgqsend.c index f81c8f1dab..1f9616e212 100644 --- a/cpukit/rtems/src/msgqsend.c +++ b/cpukit/rtems/src/msgqsend.c @@ -70,23 +70,7 @@ rtems_status_code rtems_message_queue_send( return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) - { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - return _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_SEND_REQUEST, - id, - buffer, - &size, - 0, /* option_set */ - MPCI_DEFAULT_TIMEOUT - ); - break; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; + switch ( location ) { case OBJECTS_LOCAL: status = _CORE_message_queue_Send( @@ -108,6 +92,21 @@ rtems_status_code rtems_message_queue_send( return _Message_queue_Translate_core_message_queue_return_code(status); +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + return _Message_queue_MP_Send_request_packet( + MESSAGE_QUEUE_MP_SEND_REQUEST, + id, + buffer, + &size, + 0, /* option_set */ + MPCI_DEFAULT_TIMEOUT + ); + break; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/msgqurgent.c b/cpukit/rtems/src/msgqurgent.c index 93a5376eff..ff1bb10565 100644 --- a/cpukit/rtems/src/msgqurgent.c +++ b/cpukit/rtems/src/msgqurgent.c @@ -70,22 +70,7 @@ rtems_status_code rtems_message_queue_urgent( return RTEMS_INVALID_ADDRESS; the_message_queue = _Message_queue_Get( id, &location ); - switch ( location ) - { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - return _Message_queue_MP_Send_request_packet( - MESSAGE_QUEUE_MP_URGENT_REQUEST, - id, - buffer, - &size, - 0, /* option_set */ - MPCI_DEFAULT_TIMEOUT - ); -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; + switch ( location ) { case OBJECTS_LOCAL: status = _CORE_message_queue_Urgent( @@ -106,6 +91,21 @@ rtems_status_code rtems_message_queue_urgent( return _Message_queue_Translate_core_message_queue_return_code(status); +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + return _Message_queue_MP_Send_request_packet( + MESSAGE_QUEUE_MP_URGENT_REQUEST, + id, + buffer, + &size, + 0, /* option_set */ + MPCI_DEFAULT_TIMEOUT + ); +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/partdelete.c b/cpukit/rtems/src/partdelete.c index 3ee4734615..aa4c9184cd 100644 --- a/cpukit/rtems/src/partdelete.c +++ b/cpukit/rtems/src/partdelete.c @@ -50,14 +50,6 @@ rtems_status_code rtems_partition_delete( the_partition = _Partition_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: if ( the_partition->number_of_used_blocks == 0 ) { @@ -85,7 +77,16 @@ rtems_status_code rtems_partition_delete( } _Thread_Enable_dispatch(); return RTEMS_RESOURCE_IN_USE; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/partgetbuffer.c b/cpukit/rtems/src/partgetbuffer.c index 85298ff2dd..092a177e8c 100644 --- a/cpukit/rtems/src/partgetbuffer.c +++ b/cpukit/rtems/src/partgetbuffer.c @@ -55,6 +55,18 @@ rtems_status_code rtems_partition_get_buffer( the_partition = _Partition_Get( id, &location ); switch ( location ) { + + case OBJECTS_LOCAL: + the_buffer = _Partition_Allocate_buffer( the_partition ); + if ( the_buffer ) { + the_partition->number_of_used_blocks += 1; + _Thread_Enable_dispatch(); + *buffer = the_buffer; + return RTEMS_SUCCESSFUL; + } + _Thread_Enable_dispatch(); + return RTEMS_UNSATISFIED; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: _Thread_Executing->Wait.return_argument = buffer; @@ -68,19 +80,8 @@ rtems_status_code rtems_partition_get_buffer( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - the_buffer = _Partition_Allocate_buffer( the_partition ); - if ( the_buffer ) { - the_partition->number_of_used_blocks += 1; - _Thread_Enable_dispatch(); - *buffer = the_buffer; - return RTEMS_SUCCESSFUL; - } - _Thread_Enable_dispatch(); - return RTEMS_UNSATISFIED; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/partreturnbuffer.c b/cpukit/rtems/src/partreturnbuffer.c index 916e1a3dc1..dccf36e108 100644 --- a/cpukit/rtems/src/partreturnbuffer.c +++ b/cpukit/rtems/src/partreturnbuffer.c @@ -52,6 +52,16 @@ rtems_status_code rtems_partition_return_buffer( the_partition = _Partition_Get( id, &location ); switch ( location ) { + case OBJECTS_LOCAL: + if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) { + _Partition_Free_buffer( the_partition, buffer ); + the_partition->number_of_used_blocks -= 1; + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + } + _Thread_Enable_dispatch(); + return RTEMS_INVALID_ADDRESS; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: return _Partition_MP_Send_request_packet( @@ -62,18 +72,8 @@ rtems_status_code rtems_partition_return_buffer( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) { - _Partition_Free_buffer( the_partition, buffer ); - the_partition->number_of_used_blocks -= 1; - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; - } - _Thread_Enable_dispatch(); - return RTEMS_INVALID_ADDRESS; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/ratemoncancel.c b/cpukit/rtems/src/ratemoncancel.c index 396fd79f32..829724c39c 100644 --- a/cpukit/rtems/src/ratemoncancel.c +++ b/cpukit/rtems/src/ratemoncancel.c @@ -46,13 +46,6 @@ rtems_status_code rtems_rate_monotonic_cancel( the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - return RTEMS_INTERNAL_ERROR; /* should never return this */ -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { @@ -63,7 +56,13 @@ rtems_status_code rtems_rate_monotonic_cancel( the_period->state = RATE_MONOTONIC_INACTIVE; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/ratemondelete.c b/cpukit/rtems/src/ratemondelete.c index 73292389cb..1f1341eb22 100644 --- a/cpukit/rtems/src/ratemondelete.c +++ b/cpukit/rtems/src/ratemondelete.c @@ -46,13 +46,6 @@ rtems_status_code rtems_rate_monotonic_delete( the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: _Objects_Close( &_Rate_monotonic_Information, &the_period->Object ); @@ -61,7 +54,13 @@ rtems_status_code rtems_rate_monotonic_delete( _Rate_monotonic_Free( the_period ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/ratemongetstatistics.c b/cpukit/rtems/src/ratemongetstatistics.c index 43454806d6..1738c9c9b9 100644 --- a/cpukit/rtems/src/ratemongetstatistics.c +++ b/cpukit/rtems/src/ratemongetstatistics.c @@ -53,21 +53,18 @@ rtems_status_code rtems_rate_monotonic_get_statistics( the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: - *statistics = the_period->Statistics; - _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/ratemongetstatus.c b/cpukit/rtems/src/ratemongetstatus.c index 5d9b7075ac..5ea67f38e7 100644 --- a/cpukit/rtems/src/ratemongetstatus.c +++ b/cpukit/rtems/src/ratemongetstatus.c @@ -58,13 +58,6 @@ rtems_status_code rtems_rate_monotonic_get_status( the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: status->owner = ((the_period->owner) ? the_period->owner->Object.id : 0); @@ -120,7 +113,13 @@ rtems_status_code rtems_rate_monotonic_get_status( _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c index 099c9fedde..f1ba30a1f4 100644 --- a/cpukit/rtems/src/ratemonperiod.c +++ b/cpukit/rtems/src/ratemonperiod.c @@ -184,13 +184,6 @@ rtems_status_code rtems_rate_monotonic_period( the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: if ( !_Thread_Is_executing( the_period->owner ) ) { @@ -203,14 +196,12 @@ rtems_status_code rtems_rate_monotonic_period( case RATE_MONOTONIC_INACTIVE: return_value = RTEMS_NOT_DEFINED; break; - case RATE_MONOTONIC_ACTIVE: - return_value = RTEMS_SUCCESSFUL; - break; case RATE_MONOTONIC_EXPIRED: return_value = RTEMS_TIMEOUT; break; + case RATE_MONOTONIC_ACTIVE: default: /* unreached -- only to remove warnings */ - return_value = RTEMS_INTERNAL_ERROR; + return_value = RTEMS_SUCCESSFUL; break; } _Thread_Enable_dispatch(); @@ -351,7 +342,13 @@ rtems_status_code rtems_rate_monotonic_period( */ break; } + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/ratemonresetstatistics.c b/cpukit/rtems/src/ratemonresetstatistics.c index fc5cbb34c9..9f60dd3661 100644 --- a/cpukit/rtems/src/ratemonresetstatistics.c +++ b/cpukit/rtems/src/ratemonresetstatistics.c @@ -48,21 +48,18 @@ rtems_status_code rtems_rate_monotonic_reset_statistics( the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: - _Rate_monotonic_Reset_statistics( the_period ); - _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/ratemontimeout.c b/cpukit/rtems/src/ratemontimeout.c index 8f41dc5094..2e91fd2803 100644 --- a/cpukit/rtems/src/ratemontimeout.c +++ b/cpukit/rtems/src/ratemontimeout.c @@ -54,11 +54,6 @@ void _Rate_monotonic_Timeout( the_period = _Rate_monotonic_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* impossible */ -#endif - case OBJECTS_ERROR: - break; case OBJECTS_LOCAL: the_thread = the_period->owner; @@ -75,5 +70,11 @@ void _Rate_monotonic_Timeout( the_period->state = RATE_MONOTONIC_EXPIRED; _Thread_Unnest_dispatch(); break; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* impossible */ +#endif + case OBJECTS_ERROR: + break; } } diff --git a/cpukit/rtems/src/semdelete.c b/cpukit/rtems/src/semdelete.c index 5146a8bb7a..d9c81fc56b 100644 --- a/cpukit/rtems/src/semdelete.c +++ b/cpukit/rtems/src/semdelete.c @@ -81,15 +81,6 @@ rtems_status_code rtems_semaphore_delete( the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { if ( _CORE_mutex_Is_locked( &the_semaphore->Core_control.mutex ) && @@ -130,7 +121,16 @@ rtems_status_code rtems_semaphore_delete( #endif _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/semflush.c b/cpukit/rtems/src/semflush.c index 7ce44b4292..120b83e0fe 100644 --- a/cpukit/rtems/src/semflush.c +++ b/cpukit/rtems/src/semflush.c @@ -71,15 +71,6 @@ rtems_status_code rtems_semaphore_flush( the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { _CORE_mutex_Flush( @@ -96,7 +87,16 @@ rtems_status_code rtems_semaphore_flush( } _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/semobtain.c b/cpukit/rtems/src/semobtain.c index d82263b2f9..b1909585dd 100644 --- a/cpukit/rtems/src/semobtain.c +++ b/cpukit/rtems/src/semobtain.c @@ -77,6 +77,7 @@ rtems_status_code rtems_semaphore_obtain( the_semaphore = _Semaphore_Get_interrupt_disable( id, &location, &level ); switch ( location ) { + case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { _CORE_mutex_Seize( diff --git a/cpukit/rtems/src/semrelease.c b/cpukit/rtems/src/semrelease.c index cbb7b97fc8..6ccf0cfbbe 100644 --- a/cpukit/rtems/src/semrelease.c +++ b/cpukit/rtems/src/semrelease.c @@ -81,19 +81,6 @@ rtems_status_code rtems_semaphore_release( the_semaphore = _Semaphore_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - return _Semaphore_MP_Send_request_packet( - SEMAPHORE_MP_RELEASE_REQUEST, - id, - 0, /* Not used */ - MPCI_DEFAULT_TIMEOUT - ); -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) { mutex_status = _CORE_mutex_Surrender( @@ -113,7 +100,20 @@ rtems_status_code rtems_semaphore_release( return _Semaphore_Translate_core_semaphore_return_code( semaphore_status ); } + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + return _Semaphore_MP_Send_request_packet( + SEMAPHORE_MP_RELEASE_REQUEST, + id, + 0, /* Not used */ + MPCI_DEFAULT_TIMEOUT + ); +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/semtranslatereturncode.c b/cpukit/rtems/src/semtranslatereturncode.c index d7d2d306ac..79835a634a 100644 --- a/cpukit/rtems/src/semtranslatereturncode.c +++ b/cpukit/rtems/src/semtranslatereturncode.c @@ -15,7 +15,7 @@ * + acquire a semaphore * + release a semaphore * - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -76,12 +76,21 @@ rtems_status_code _Semaphore_Translate_core_mutex_return_code ( uint32_t status ) { -#if defined(RTEMS_MULTIPROCESSING) - if ( status == THREAD_STATUS_PROXY_BLOCKING ) - return RTEMS_PROXY_BLOCKING; -#endif - if ( status > CORE_MUTEX_STATUS_CEILING_VIOLATED ) - return RTEMS_INTERNAL_ERROR; + /* + * If this thread is blocking waiting for a result on a remote operation. + */ + #if defined(RTEMS_MULTIPROCESSING) + if ( status == THREAD_STATUS_PROXY_BLOCKING ) + return RTEMS_PROXY_BLOCKING; + #endif + + /* + * Internal consistency check for bad status from SuperCore + */ + #if defined(RTEMS_DEBUG) + if ( status > CORE_MUTEX_STATUS_LAST ) + return RTEMS_INTERNAL_ERROR; + #endif return _Semaphore_Translate_core_mutex_return_code_[status]; } @@ -110,11 +119,16 @@ rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( uint32_t status ) { -#if defined(RTEMS_MULTIPROCESSING) - if ( status == THREAD_STATUS_PROXY_BLOCKING ) - return RTEMS_PROXY_BLOCKING; -#endif - if ( status > CORE_MUTEX_STATUS_CEILING_VIOLATED ) - return RTEMS_INTERNAL_ERROR; + #if defined(RTEMS_MULTIPROCESSING) + if ( status == THREAD_STATUS_PROXY_BLOCKING ) + return RTEMS_PROXY_BLOCKING; + #endif + /* + * Internal consistency check for bad status from SuperCore + */ + #if defined(RTEMS_DEBUG) + if ( the_semaphore_status > CORE_SEMAPHORE_STATUS_LAST ) + return RTEMS_INTERNAL_ERROR; + #endif return _Semaphore_Translate_core_semaphore_return_code_[status]; } diff --git a/cpukit/rtems/src/signalsend.c b/cpukit/rtems/src/signalsend.c index 33db2b8aba..f302eeb8f2 100644 --- a/cpukit/rtems/src/signalsend.c +++ b/cpukit/rtems/src/signalsend.c @@ -56,18 +56,6 @@ rtems_status_code rtems_signal_send( the_thread = _Thread_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - return _Signal_MP_Send_request_packet( - SIGNAL_MP_SEND_REQUEST, - id, - signal_set - ); -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; asr = &api->Signal; @@ -88,7 +76,19 @@ rtems_status_code rtems_signal_send( } _Thread_Enable_dispatch(); return RTEMS_NOT_DEFINED; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + return _Signal_MP_Send_request_packet( + SIGNAL_MP_SEND_REQUEST, + id, + signal_set + ); +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/taskdelete.c b/cpukit/rtems/src/taskdelete.c index ee21f75bf5..7e5e7cbf97 100644 --- a/cpukit/rtems/src/taskdelete.c +++ b/cpukit/rtems/src/taskdelete.c @@ -61,15 +61,6 @@ rtems_status_code rtems_task_delete( the_thread = _Thread_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: the_information = _Objects_Get_information( the_thread->Object.id ); @@ -100,7 +91,16 @@ rtems_status_code rtems_task_delete( _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/taskgetnote.c b/cpukit/rtems/src/taskgetnote.c index 42328468be..dffb2da2d6 100644 --- a/cpukit/rtems/src/taskgetnote.c +++ b/cpukit/rtems/src/taskgetnote.c @@ -85,6 +85,12 @@ rtems_status_code rtems_task_get_note( the_thread = _Thread_Get( id, &location ); switch ( location ) { + case OBJECTS_LOCAL: + api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; + *note = api->Notepads[ notepad ]; + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: _Thread_Executing->Wait.return_argument = note; @@ -99,14 +105,8 @@ rtems_status_code rtems_task_get_note( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; - *note = api->Notepads[ notepad ]; - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/taskissuspended.c b/cpukit/rtems/src/taskissuspended.c index b682a5786f..9d8f9fe02c 100644 --- a/cpukit/rtems/src/taskissuspended.c +++ b/cpukit/rtems/src/taskissuspended.c @@ -58,15 +58,6 @@ rtems_status_code rtems_task_is_suspended( the_thread = _Thread_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: if ( !_States_Is_suspended( the_thread->current_state ) ) { _Thread_Enable_dispatch(); @@ -74,7 +65,16 @@ rtems_status_code rtems_task_is_suspended( } _Thread_Enable_dispatch(); return RTEMS_ALREADY_SUSPENDED; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/taskrestart.c b/cpukit/rtems/src/taskrestart.c index d374d43fc4..61d14b3dc1 100644 --- a/cpukit/rtems/src/taskrestart.c +++ b/cpukit/rtems/src/taskrestart.c @@ -61,15 +61,6 @@ rtems_status_code rtems_task_restart( the_thread = _Thread_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: if ( _Thread_Restart( the_thread, NULL, argument ) ) { _Thread_Enable_dispatch(); @@ -77,7 +68,16 @@ rtems_status_code rtems_task_restart( } _Thread_Enable_dispatch(); return RTEMS_INCORRECT_STATE; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/taskresume.c b/cpukit/rtems/src/taskresume.c index 345797c2a1..7d220c071d 100644 --- a/cpukit/rtems/src/taskresume.c +++ b/cpukit/rtems/src/taskresume.c @@ -57,6 +57,15 @@ rtems_status_code rtems_task_resume( the_thread = _Thread_Get( id, &location ); switch ( location ) { + case OBJECTS_LOCAL: + if ( _States_Is_suspended( the_thread->current_state ) ) { + _Thread_Resume( the_thread, TRUE ); + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + } + _Thread_Enable_dispatch(); + return RTEMS_INCORRECT_STATE; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: return _RTEMS_tasks_MP_Send_request_packet( @@ -69,17 +78,8 @@ rtems_status_code rtems_task_resume( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - if ( _States_Is_suspended( the_thread->current_state ) ) { - _Thread_Resume( the_thread, TRUE ); - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; - } - _Thread_Enable_dispatch(); - return RTEMS_INCORRECT_STATE; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/tasksetnote.c b/cpukit/rtems/src/tasksetnote.c index 3cf9fbbd80..c8d5f82b77 100644 --- a/cpukit/rtems/src/tasksetnote.c +++ b/cpukit/rtems/src/tasksetnote.c @@ -81,6 +81,12 @@ rtems_status_code rtems_task_set_note( the_thread = _Thread_Get( id, &location ); switch ( location ) { + case OBJECTS_LOCAL: + api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; + api->Notepads[ notepad ] = note; + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: return _RTEMS_tasks_MP_Send_request_packet( @@ -93,14 +99,8 @@ rtems_status_code rtems_task_set_note( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - api = the_thread->API_Extensions[ THREAD_API_RTEMS ]; - api->Notepads[ notepad ] = note; - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/tasksetpriority.c b/cpukit/rtems/src/tasksetpriority.c index 931699a2a2..99efe13321 100644 --- a/cpukit/rtems/src/tasksetpriority.c +++ b/cpukit/rtems/src/tasksetpriority.c @@ -70,6 +70,18 @@ rtems_status_code rtems_task_set_priority( the_thread = _Thread_Get( id, &location ); switch ( location ) { + case OBJECTS_LOCAL: + /* XXX convert from core priority */ + *old_priority = the_thread->current_priority; + if ( new_priority != RTEMS_CURRENT_PRIORITY ) { + the_thread->real_priority = new_priority; + if ( the_thread->resource_count == 0 || + the_thread->current_priority > new_priority ) + _Thread_Change_priority( the_thread, new_priority, FALSE ); + } + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: _Thread_Executing->Wait.return_argument = old_priority; @@ -83,20 +95,8 @@ rtems_status_code rtems_task_set_priority( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - /* XXX convert from core priority */ - *old_priority = the_thread->current_priority; - if ( new_priority != RTEMS_CURRENT_PRIORITY ) { - the_thread->real_priority = new_priority; - if ( the_thread->resource_count == 0 || - the_thread->current_priority > new_priority ) - _Thread_Change_priority( the_thread, new_priority, FALSE ); - } - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/taskstart.c b/cpukit/rtems/src/taskstart.c index a15d135be2..9d2ce0cec4 100644 --- a/cpukit/rtems/src/taskstart.c +++ b/cpukit/rtems/src/taskstart.c @@ -65,15 +65,6 @@ rtems_status_code rtems_task_start( the_thread = _Thread_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: if ( _Thread_Start( the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) { @@ -82,7 +73,16 @@ rtems_status_code rtems_task_start( } _Thread_Enable_dispatch(); return RTEMS_INCORRECT_STATE; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/tasksuspend.c b/cpukit/rtems/src/tasksuspend.c index 1e0d109192..bd67862182 100644 --- a/cpukit/rtems/src/tasksuspend.c +++ b/cpukit/rtems/src/tasksuspend.c @@ -58,6 +58,15 @@ rtems_status_code rtems_task_suspend( the_thread = _Thread_Get( id, &location ); switch ( location ) { + case OBJECTS_LOCAL: + if ( !_States_Is_suspended( the_thread->current_state ) ) { + _Thread_Suspend( the_thread ); + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + } + _Thread_Enable_dispatch(); + return RTEMS_ALREADY_SUSPENDED; + #if defined(RTEMS_MULTIPROCESSING) case OBJECTS_REMOTE: return _RTEMS_tasks_MP_Send_request_packet( @@ -70,17 +79,8 @@ rtems_status_code rtems_task_suspend( #endif case OBJECTS_ERROR: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - if ( !_States_Is_suspended( the_thread->current_state ) ) { - _Thread_Suspend( the_thread ); - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; - } - _Thread_Enable_dispatch(); - return RTEMS_ALREADY_SUSPENDED; + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/taskvariableadd.c b/cpukit/rtems/src/taskvariableadd.c index a1d7fef19d..080d6eebf1 100644 --- a/cpukit/rtems/src/taskvariableadd.c +++ b/cpukit/rtems/src/taskvariableadd.c @@ -41,50 +41,47 @@ rtems_status_code rtems_task_variable_add( the_thread = _Thread_Get (tid, &location); switch (location) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - default: - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: - - /* - * Figure out if the variable is already in this task's list. - */ + case OBJECTS_LOCAL: + /* + * Figure out if the variable is already in this task's list. + */ + tvp = the_thread->task_variables; + while (tvp) { + if (tvp->ptr == ptr) { + tvp->dtor = dtor; + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + } + tvp = (rtems_task_variable_t *)tvp->next; + } - tvp = the_thread->task_variables; - while (tvp) { - if (tvp->ptr == ptr) { - tvp->dtor = dtor; + /* + * Now allocate memory for this task variable. + */ + new = (rtems_task_variable_t *) + _Workspace_Allocate(sizeof(rtems_task_variable_t)); + if (new == NULL) { _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; + return RTEMS_NO_MEMORY; } - tvp = (rtems_task_variable_t *)tvp->next; - } + new->gval = *ptr; + new->ptr = ptr; + new->dtor = dtor; - /* - * Now allocate memory for this task variable. - */ - - new = (rtems_task_variable_t *) - _Workspace_Allocate(sizeof(rtems_task_variable_t)); - if (new == NULL) { + new->next = (struct rtems_task_variable_tt *)the_thread->task_variables; + the_thread->task_variables = new; _Thread_Enable_dispatch(); - return RTEMS_NO_MEMORY; - } - new->gval = *ptr; - new->ptr = ptr; - new->dtor = dtor; + return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif - new->next = (struct rtems_task_variable_tt *)the_thread->task_variables; - the_thread->task_variables = new; - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/taskvariabledelete.c b/cpukit/rtems/src/taskvariabledelete.c index 9f3e9a2e40..d45f5fe7df 100644 --- a/cpukit/rtems/src/taskvariabledelete.c +++ b/cpukit/rtems/src/taskvariabledelete.c @@ -42,43 +42,42 @@ rtems_status_code rtems_task_variable_delete( the_thread = _Thread_Get (tid, &location); switch (location) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - - case OBJECTS_ERROR: - default: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: - tvp = the_thread->task_variables; - while (tvp) { - if (tvp->ptr == ptr) { - if (prev) - prev->next = tvp->next; - else - the_thread->task_variables = (rtems_task_variable_t *)tvp->next; - if (_Thread_Is_executing(the_thread)) { - if (tvp->dtor) - (*tvp->dtor)(*tvp->ptr); - *tvp->ptr = tvp->gval; - } else { - if (tvp->dtor) - (*tvp->dtor)(tvp->tval); + case OBJECTS_LOCAL: + tvp = the_thread->task_variables; + while (tvp) { + if (tvp->ptr == ptr) { + if (prev) + prev->next = tvp->next; + else + the_thread->task_variables = (rtems_task_variable_t *)tvp->next; + if (_Thread_Is_executing(the_thread)) { + if (tvp->dtor) + (*tvp->dtor)(*tvp->ptr); + *tvp->ptr = tvp->gval; + } else { + if (tvp->dtor) + (*tvp->dtor)(tvp->tval); + } + _Workspace_Free(tvp); + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; } - _Workspace_Free(tvp); - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; + prev = tvp; + tvp = (rtems_task_variable_t *)tvp->next; } - prev = tvp; - tvp = (rtems_task_variable_t *)tvp->next; - } - _Thread_Enable_dispatch(); - return RTEMS_INVALID_ADDRESS; + _Thread_Enable_dispatch(); + return RTEMS_INVALID_ADDRESS; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif + + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/taskvariableget.c b/cpukit/rtems/src/taskvariableget.c index 8b200f8779..fbe3b10d7f 100644 --- a/cpukit/rtems/src/taskvariableget.c +++ b/cpukit/rtems/src/taskvariableget.c @@ -44,37 +44,35 @@ rtems_status_code rtems_task_variable_get( the_thread = _Thread_Get (tid, &location); switch (location) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: - _Thread_Dispatch(); - return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; -#endif - case OBJECTS_ERROR: - default: - return RTEMS_INVALID_ID; - - case OBJECTS_LOCAL: + case OBJECTS_LOCAL: + /* + * Figure out if the variable is in this task's list. + */ + tvp = the_thread->task_variables; + while (tvp) { + if (tvp->ptr == ptr) { + /* + * Should this return the current (i.e not the + * saved) value if `tid' is the current task? + */ + *result = tvp->tval; + _Thread_Enable_dispatch(); + return RTEMS_SUCCESSFUL; + } + tvp = (rtems_task_variable_t *)tvp->next; + } + _Thread_Enable_dispatch(); + return RTEMS_INVALID_ADDRESS; - /* - * Figure out if the variable is in this task's list. - */ +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: + _Thread_Dispatch(); + return RTEMS_ILLEGAL_ON_REMOTE_OBJECT; +#endif - tvp = the_thread->task_variables; - while (tvp) { - if (tvp->ptr == ptr) { - /* - * Should this return the current (i.e not the - * saved) value if `tid' is the current task? - */ - *result = tvp->tval; - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; - } - tvp = (rtems_task_variable_t *)tvp->next; - } - _Thread_Enable_dispatch(); - return RTEMS_INVALID_ADDRESS; + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/timercancel.c b/cpukit/rtems/src/timercancel.c index fd8d1bee32..e369f0766d 100644 --- a/cpukit/rtems/src/timercancel.c +++ b/cpukit/rtems/src/timercancel.c @@ -48,20 +48,19 @@ rtems_status_code rtems_timer_cancel( the_timer = _Timer_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) (void) _Watchdog_Remove( &the_timer->Ticker ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/timerdelete.c b/cpukit/rtems/src/timerdelete.c index a60e32e5cb..f855767e14 100644 --- a/cpukit/rtems/src/timerdelete.c +++ b/cpukit/rtems/src/timerdelete.c @@ -48,13 +48,6 @@ rtems_status_code rtems_timer_delete( the_timer = _Timer_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: _Objects_Close( &_Timer_Information, &the_timer->Object ); @@ -62,7 +55,13 @@ rtems_status_code rtems_timer_delete( _Timer_Free( the_timer ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/timerfirewhen.c b/cpukit/rtems/src/timerfirewhen.c index 83b7438b82..bf1ffd568e 100644 --- a/cpukit/rtems/src/timerfirewhen.c +++ b/cpukit/rtems/src/timerfirewhen.c @@ -68,13 +68,6 @@ rtems_status_code rtems_timer_fire_when( the_timer = _Timer_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); @@ -86,7 +79,13 @@ rtems_status_code rtems_timer_fire_when( ); _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/timergetinfo.c b/cpukit/rtems/src/timergetinfo.c index 0639a8a245..bcf8487a47 100644 --- a/cpukit/rtems/src/timergetinfo.c +++ b/cpukit/rtems/src/timergetinfo.c @@ -55,13 +55,6 @@ rtems_status_code rtems_timer_get_information( the_timer = _Timer_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: the_info->the_class = the_timer->the_class; @@ -70,7 +63,13 @@ rtems_status_code rtems_timer_get_information( the_info->stop_time = the_timer->Ticker.stop_time; _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/timerreset.c b/cpukit/rtems/src/timerreset.c index 4f50088637..7fea9fa7d5 100644 --- a/cpukit/rtems/src/timerreset.c +++ b/cpukit/rtems/src/timerreset.c @@ -48,13 +48,6 @@ rtems_status_code rtems_timer_reset( the_timer = _Timer_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: switch ( the_timer->the_class ) { @@ -77,7 +70,13 @@ rtems_status_code rtems_timer_reset( } _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/timerserverfireafter.c b/cpukit/rtems/src/timerserverfireafter.c index 0527b970ee..568f53be1e 100644 --- a/cpukit/rtems/src/timerserverfireafter.c +++ b/cpukit/rtems/src/timerserverfireafter.c @@ -65,13 +65,6 @@ rtems_status_code rtems_timer_server_fire_after( the_timer = _Timer_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); @@ -106,7 +99,13 @@ rtems_status_code rtems_timer_server_fire_after( _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } diff --git a/cpukit/rtems/src/timerserverfirewhen.c b/cpukit/rtems/src/timerserverfirewhen.c index a2cf3a291c..cece25e926 100644 --- a/cpukit/rtems/src/timerserverfirewhen.c +++ b/cpukit/rtems/src/timerserverfirewhen.c @@ -72,13 +72,6 @@ rtems_status_code rtems_timer_server_fire_when( the_timer = _Timer_Get( id, &location ); switch ( location ) { -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INTERNAL_ERROR; -#endif - - case OBJECTS_ERROR: - return RTEMS_INVALID_ID; case OBJECTS_LOCAL: (void) _Watchdog_Remove( &the_timer->Ticker ); @@ -93,7 +86,13 @@ rtems_status_code rtems_timer_server_fire_when( _Thread_Enable_dispatch(); return RTEMS_SUCCESSFUL; + +#if defined(RTEMS_MULTIPROCESSING) + case OBJECTS_REMOTE: /* should never return this */ +#endif + case OBJECTS_ERROR: + break; } - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ + return RTEMS_INVALID_ID; } |