diff options
Diffstat (limited to 'cpukit/libcsupport/src')
-rw-r--r-- | cpukit/libcsupport/src/sup_fs_deviceerrno.c | 75 | ||||
-rw-r--r-- | cpukit/libcsupport/src/sup_fs_deviceio.c | 13 |
2 files changed, 7 insertions, 81 deletions
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); } } |