summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-07-06 21:59:25 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-07-06 21:59:25 +0000
commitce1ba298ed730fc82f78d7b0ba3f7e5e301bd6b5 (patch)
tree5bb55a9fa1858ccf447c9dfa2c2af87b2d6dcdc9 /cpukit/rtems/src
parentFixed formatting. (diff)
downloadrtems-ce1ba298ed730fc82f78d7b0ba3f7e5e301bd6b5.tar.bz2
Switched to faster implementation.
Diffstat (limited to 'cpukit/rtems/src')
-rw-r--r--cpukit/rtems/src/msgqtranslatereturncode.c45
1 files changed, 20 insertions, 25 deletions
diff --git a/cpukit/rtems/src/msgqtranslatereturncode.c b/cpukit/rtems/src/msgqtranslatereturncode.c
index 34c818a145..69707b227e 100644
--- a/cpukit/rtems/src/msgqtranslatereturncode.c
+++ b/cpukit/rtems/src/msgqtranslatereturncode.c
@@ -42,32 +42,27 @@
*
*/
+rtems_status_code _Message_queue_Translate_core_return_code_[] = {
+ RTEMS_SUCCESSFUL, /* CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL */
+ RTEMS_INVALID_SIZE, /* CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE */
+ RTEMS_TOO_MANY, /* CORE_MESSAGE_QUEUE_STATUS_TOO_MANY */
+ RTEMS_UNSATISFIED, /* CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED */
+ RTEMS_UNSATISFIED, /* CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT */
+ RTEMS_OBJECT_WAS_DELETED, /* CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED */
+ RTEMS_TIMEOUT /* CORE_MESSAGE_QUEUE_STATUS_TIMEOUT */
+};
+
rtems_status_code _Message_queue_Translate_core_message_queue_return_code (
- unsigned32 the_message_queue_status
+ unsigned32 status
)
{
- switch ( the_message_queue_status ) {
- case CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL:
- return RTEMS_SUCCESSFUL;
- case CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE:
- return RTEMS_INVALID_SIZE;
- case CORE_MESSAGE_QUEUE_STATUS_TOO_MANY:
- return RTEMS_TOO_MANY;
- case CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED:
- return RTEMS_UNSATISFIED;
- case CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT:
- return RTEMS_UNSATISFIED;
- case CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED:
- return RTEMS_OBJECT_WAS_DELETED;
- case CORE_MESSAGE_QUEUE_STATUS_TIMEOUT:
- return RTEMS_TIMEOUT;
- case THREAD_STATUS_PROXY_BLOCKING:
- return RTEMS_PROXY_BLOCKING;
- }
- _Internal_error_Occurred( /* XXX */
- INTERNAL_ERROR_RTEMS_API,
- TRUE,
- the_message_queue_status
- );
- return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */
+#if defined(RTEMS_MULTIPROCESSING)
+ if ( status == THREAD_STATUS_PROXY_BLOCKING )
+ return RTEMS_PROXY_BLOCKING;
+ else
+#endif
+ if ( status > CORE_MESSAGE_QUEUE_STATUS_TIMEOUT )
+ return RTEMS_INTERNAL_ERROR;
+ else
+ return _Message_queue_Translate_core_return_code_[status];
}