summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-30 21:49:41 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-30 21:49:41 +0000
commitebe61382a4c4267417a2f5d5e3d2eb47118de2e7 (patch)
tree943aac38bedb399574ed5248c3e011436a81067a /cpukit
parent2007-11-30 Till Straumann <strauman@slac.stanford.edu> (diff)
downloadrtems-ebe61382a4c4267417a2f5d5e3d2eb47118de2e7.tar.bz2
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.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/ChangeLog35
-rw-r--r--cpukit/rtems/src/barrierdelete.c14
-rw-r--r--cpukit/rtems/src/barrierrelease.c12
-rw-r--r--cpukit/rtems/src/barriertranslatereturncode.c12
-rw-r--r--cpukit/rtems/src/barrierwait.c12
-rw-r--r--cpukit/rtems/src/clockget.c4
-rw-r--r--cpukit/rtems/src/dpmemdelete.c15
-rw-r--r--cpukit/rtems/src/dpmemexternal2internal.c16
-rw-r--r--cpukit/rtems/src/dpmeminternal2external.c15
-rw-r--r--cpukit/rtems/src/eventsend.c19
-rw-r--r--cpukit/rtems/src/eventtimeout.c12
-rw-r--r--cpukit/rtems/src/msgqbroadcast.c42
-rw-r--r--cpukit/rtems/src/msgqdelete.c31
-rw-r--r--cpukit/rtems/src/msgqflush.c15
-rw-r--r--cpukit/rtems/src/msgqgetnumberpending.c15
-rw-r--r--cpukit/rtems/src/msgqreceive.c31
-rw-r--r--cpukit/rtems/src/msgqsend.c35
-rw-r--r--cpukit/rtems/src/msgqurgent.c34
-rw-r--r--cpukit/rtems/src/partdelete.c19
-rw-r--r--cpukit/rtems/src/partgetbuffer.c27
-rw-r--r--cpukit/rtems/src/partreturnbuffer.c24
-rw-r--r--cpukit/rtems/src/ratemoncancel.c15
-rw-r--r--cpukit/rtems/src/ratemondelete.c15
-rw-r--r--cpukit/rtems/src/ratemongetstatistics.c17
-rw-r--r--cpukit/rtems/src/ratemongetstatus.c15
-rw-r--r--cpukit/rtems/src/ratemonperiod.c21
-rw-r--r--cpukit/rtems/src/ratemonresetstatistics.c17
-rw-r--r--cpukit/rtems/src/ratemontimeout.c11
-rw-r--r--cpukit/rtems/src/semdelete.c20
-rw-r--r--cpukit/rtems/src/semflush.c20
-rw-r--r--cpukit/rtems/src/semobtain.c1
-rw-r--r--cpukit/rtems/src/semrelease.c28
-rw-r--r--cpukit/rtems/src/semtranslatereturncode.c40
-rw-r--r--cpukit/rtems/src/signalsend.c26
-rw-r--r--cpukit/rtems/src/taskdelete.c20
-rw-r--r--cpukit/rtems/src/taskgetnote.c16
-rw-r--r--cpukit/rtems/src/taskissuspended.c20
-rw-r--r--cpukit/rtems/src/taskrestart.c20
-rw-r--r--cpukit/rtems/src/taskresume.c22
-rw-r--r--cpukit/rtems/src/tasksetnote.c16
-rw-r--r--cpukit/rtems/src/tasksetpriority.c28
-rw-r--r--cpukit/rtems/src/taskstart.c20
-rw-r--r--cpukit/rtems/src/tasksuspend.c22
-rw-r--r--cpukit/rtems/src/taskvariableadd.c73
-rw-r--r--cpukit/rtems/src/taskvariabledelete.c67
-rw-r--r--cpukit/rtems/src/taskvariableget.c56
-rw-r--r--cpukit/rtems/src/timercancel.c15
-rw-r--r--cpukit/rtems/src/timerdelete.c15
-rw-r--r--cpukit/rtems/src/timerfirewhen.c15
-rw-r--r--cpukit/rtems/src/timergetinfo.c15
-rw-r--r--cpukit/rtems/src/timerreset.c15
-rw-r--r--cpukit/rtems/src/timerserverfireafter.c15
-rw-r--r--cpukit/rtems/src/timerserverfirewhen.c15
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;
}