From 864ac98aa7f043d71a42f5ac24d8913a9b33d942 Mon Sep 17 00:00:00 2001 From: Jennifer Averett Date: Wed, 5 Jan 2000 17:06:45 +0000 Subject: Added routines to translate to and from the core message queue return codes. --- c/src/exec/posix/src/mqueuetranslatereturncode.c | 68 ++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 c/src/exec/posix/src/mqueuetranslatereturncode.c (limited to 'c') diff --git a/c/src/exec/posix/src/mqueuetranslatereturncode.c b/c/src/exec/posix/src/mqueuetranslatereturncode.c new file mode 100644 index 0000000000..2cdb4ab9b0 --- /dev/null +++ b/c/src/exec/posix/src/mqueuetranslatereturncode.c @@ -0,0 +1,68 @@ +/* + * POSIX Message Queue Error Translation + * + * + * COPYRIGHT (c) 1989-1999. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + + +/*PAGE + * + * _POSIX_Message_queue_Translate_core_message_queue_return_code + * + * Input parameters: + * the_message_queue_status - message_queue status code to translate + * + * Output parameters: + * rtems status code - translated POSIX status code + * + */ + +int _POSIX_Message_queue_Translate_core_message_queue_return_code( + unsigned32 the_message_queue_status +) +{ + switch ( the_message_queue_status ) { + case CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL: + return 0; + case CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE: + return EMSGSIZE; + case CORE_MESSAGE_QUEUE_STATUS_TOO_MANY: + return EAGAIN; + case CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED: + return ENOSYS; /* XXX */ + case CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT: + return ENOSYS; /* XXX */ + case CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED: + return EBADF; + case CORE_MESSAGE_QUEUE_STATUS_TIMEOUT: + return ENOSYS; /* XXX */ + case THREAD_STATUS_PROXY_BLOCKING: + return ENOSYS; /* XXX */ + } + _Internal_error_Occurred( /* XXX */ + INTERNAL_ERROR_POSIX_API, + TRUE, + the_message_queue_status + ); + return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ +} -- cgit v1.2.3