From ce1ba298ed730fc82f78d7b0ba3f7e5e301bd6b5 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 6 Jul 2000 21:59:25 +0000 Subject: Switched to faster implementation. --- cpukit/rtems/src/msgqtranslatereturncode.c | 45 +++++++++++++----------------- 1 file changed, 20 insertions(+), 25 deletions(-) (limited to 'cpukit/rtems/src') 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]; } -- cgit v1.2.3