Switched to faster implementation.

This commit is contained in:
Joel Sherrill
2000-07-06 21:59:25 +00:00
parent eaedd00a84
commit ce1ba298ed
2 changed files with 40 additions and 50 deletions

View File

@@ -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 ( rtems_status_code _Message_queue_Translate_core_message_queue_return_code (
unsigned32 the_message_queue_status unsigned32 status
) )
{ {
switch ( the_message_queue_status ) { #if defined(RTEMS_MULTIPROCESSING)
case CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL: if ( status == THREAD_STATUS_PROXY_BLOCKING )
return RTEMS_SUCCESSFUL; return RTEMS_PROXY_BLOCKING;
case CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE: else
return RTEMS_INVALID_SIZE; #endif
case CORE_MESSAGE_QUEUE_STATUS_TOO_MANY: if ( status > CORE_MESSAGE_QUEUE_STATUS_TIMEOUT )
return RTEMS_TOO_MANY; return RTEMS_INTERNAL_ERROR;
case CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED: else
return RTEMS_UNSATISFIED; return _Message_queue_Translate_core_return_code_[status];
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 */
} }

View File

@@ -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 ( rtems_status_code _Message_queue_Translate_core_message_queue_return_code (
unsigned32 the_message_queue_status unsigned32 status
) )
{ {
switch ( the_message_queue_status ) { #if defined(RTEMS_MULTIPROCESSING)
case CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL: if ( status == THREAD_STATUS_PROXY_BLOCKING )
return RTEMS_SUCCESSFUL; return RTEMS_PROXY_BLOCKING;
case CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE: else
return RTEMS_INVALID_SIZE; #endif
case CORE_MESSAGE_QUEUE_STATUS_TOO_MANY: if ( status > CORE_MESSAGE_QUEUE_STATUS_TIMEOUT )
return RTEMS_TOO_MANY; return RTEMS_INTERNAL_ERROR;
case CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED: else
return RTEMS_UNSATISFIED; return _Message_queue_Translate_core_return_code_[status];
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 */
} }