diff options
author | Daniel Ramirez <javamonn@gmail.com> | 2013-12-06 12:21:20 -0600 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-01-08 15:24:09 -0600 |
commit | 35b8f48a4b18a605945f149601a8ff8c9bc11fd6 (patch) | |
tree | 305db372660ba0f2ab7c267ac30143006ec5bc2d /cpukit/libcsupport | |
parent | powerpc/mvme3100: Improve Doxygen (diff) | |
download | rtems-35b8f48a4b18a605945f149601a8ff8c9bc11fd6.tar.bz2 |
libcsupport: Refactor rtems_deviceio_errno
Renames rtems_deviceio_errno to rtems_status_code_to_errno and
integrates it into the Classic API Status Handler. This function
can now be called by including status.h
Diffstat (limited to 'cpukit/libcsupport')
-rw-r--r-- | cpukit/libcsupport/Makefile.am | 1 | ||||
-rw-r--r-- | cpukit/libcsupport/include/rtems/deviceio.h | 2 | ||||
-rw-r--r-- | cpukit/libcsupport/src/sup_fs_deviceerrno.c | 75 | ||||
-rw-r--r-- | cpukit/libcsupport/src/sup_fs_deviceio.c | 13 |
4 files changed, 7 insertions, 84 deletions
diff --git a/cpukit/libcsupport/Makefile.am b/cpukit/libcsupport/Makefile.am index 61c17e994b..0d7597d666 100644 --- a/cpukit/libcsupport/Makefile.am +++ b/cpukit/libcsupport/Makefile.am @@ -136,7 +136,6 @@ libcsupport_a_SOURCES = src/gxx_wrappers.c src/getchark.c src/printk.c \ src/sup_fs_mount_iterate.c \ src/sup_fs_node_type.c \ src/sup_fs_deviceio.c \ - src/sup_fs_deviceerrno.c \ src/clonenode.c \ src/freenode.c \ src/resource_snapshot.c \ diff --git a/cpukit/libcsupport/include/rtems/deviceio.h b/cpukit/libcsupport/include/rtems/deviceio.h index 571b3e14ec..351612a442 100644 --- a/cpukit/libcsupport/include/rtems/deviceio.h +++ b/cpukit/libcsupport/include/rtems/deviceio.h @@ -39,8 +39,6 @@ extern "C" { * This file contains the set of handlers used to map operations on * IMFS device nodes onto calls to the RTEMS Classic API IO Manager. */ -int rtems_deviceio_errno( rtems_status_code status ); - int rtems_deviceio_open( rtems_libio_t *iop, const char *path, diff --git a/cpukit/libcsupport/src/sup_fs_deviceerrno.c b/cpukit/libcsupport/src/sup_fs_deviceerrno.c deleted file mode 100644 index b03b32329a..0000000000 --- a/cpukit/libcsupport/src/sup_fs_deviceerrno.c +++ /dev/null @@ -1,75 +0,0 @@ -/** - * @file - * - * @brief IMFS Device Node Handlers - * @ingroup Device IO Handler - * - * This file contains the set of handlers used to map operations on - * IMFS device nodes onto calls to the RTEMS Classic API IO Manager. - */ - -/* - * COPYRIGHT (c) 1989-2008. - * 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.rtems.com/license/LICENSE. - */ - -#if HAVE_CONFIG_H - #include "config.h" -#endif - -#include <rtems/deviceio.h> - -#include <errno.h> - -static const int status_code_to_errno [RTEMS_STATUS_CODES_LAST + 1] = { - [RTEMS_SUCCESSFUL] = 0, - [RTEMS_TASK_EXITTED] = EIO, - [RTEMS_MP_NOT_CONFIGURED] = EIO, - [RTEMS_INVALID_NAME] = EINVAL, - [RTEMS_INVALID_ID] = EIO, - [RTEMS_TOO_MANY] = EIO, - [RTEMS_TIMEOUT] = ETIMEDOUT, - [RTEMS_OBJECT_WAS_DELETED] = EIO, - [RTEMS_INVALID_SIZE] = EIO, - [RTEMS_INVALID_ADDRESS] = EIO, - [RTEMS_INVALID_NUMBER] = EBADF, - [RTEMS_NOT_DEFINED] = EIO, - [RTEMS_RESOURCE_IN_USE] = EBUSY, - [RTEMS_UNSATISFIED] = ENODEV, - [RTEMS_INCORRECT_STATE] = EIO, - [RTEMS_ALREADY_SUSPENDED] = EIO, - [RTEMS_ILLEGAL_ON_SELF] = EIO, - [RTEMS_ILLEGAL_ON_REMOTE_OBJECT] = EIO, - [RTEMS_CALLED_FROM_ISR] = EIO, - [RTEMS_INVALID_PRIORITY] = EIO, - [RTEMS_INVALID_CLOCK] = EINVAL, - [RTEMS_INVALID_NODE] = EINVAL, - [RTEMS_NOT_CONFIGURED] = ENOSYS, - [RTEMS_NOT_OWNER_OF_RESOURCE] = EPERM, - [RTEMS_NOT_IMPLEMENTED] = ENOSYS, - [RTEMS_INTERNAL_ERROR] = EIO, - [RTEMS_NO_MEMORY] = ENOMEM, - [RTEMS_IO_ERROR] = EIO, - [RTEMS_PROXY_BLOCKING] = EIO -}; - -int rtems_deviceio_errno(rtems_status_code sc) -{ - if (sc == RTEMS_SUCCESSFUL) { - return 0; - } else { - int eno = EINVAL; - - if ((unsigned) sc <= RTEMS_STATUS_CODES_LAST) { - eno = status_code_to_errno [sc]; - } - - errno = eno; - - return -1; - } -} diff --git a/cpukit/libcsupport/src/sup_fs_deviceio.c b/cpukit/libcsupport/src/sup_fs_deviceio.c index 67e035301a..6407e637fc 100644 --- a/cpukit/libcsupport/src/sup_fs_deviceio.c +++ b/cpukit/libcsupport/src/sup_fs_deviceio.c @@ -6,7 +6,7 @@ */ /* - * COPYRIGHT (c) 1989-2012. + * COPYRIGHT (c) 1989-2013. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -19,6 +19,7 @@ #endif #include <rtems/deviceio.h> +#include <rtems/rtems/status.h> int rtems_deviceio_open( rtems_libio_t *iop, @@ -38,7 +39,7 @@ int rtems_deviceio_open( status = rtems_io_open( major, minor, &args ); - return rtems_deviceio_errno( status ); + return rtems_status_code_to_errno( status ); } int rtems_deviceio_close( @@ -56,7 +57,7 @@ int rtems_deviceio_close( status = rtems_io_close( major, minor, &args ); - return rtems_deviceio_errno( status ); + return rtems_status_code_to_errno( status ); } ssize_t rtems_deviceio_read( @@ -83,7 +84,7 @@ ssize_t rtems_deviceio_read( return (ssize_t) args.bytes_moved; } else { - return rtems_deviceio_errno( status ); + return rtems_status_code_to_errno( status ); } } @@ -111,7 +112,7 @@ ssize_t rtems_deviceio_write( return (ssize_t) args.bytes_moved; } else { - return rtems_deviceio_errno( status ); + return rtems_status_code_to_errno( status ); } } @@ -134,6 +135,6 @@ int rtems_deviceio_control( if ( status == RTEMS_SUCCESSFUL ) { return args.ioctl_return; } else { - return rtems_deviceio_errno(status); + return rtems_status_code_to_errno(status); } } |