Changeset 78f4d6d7 in rtems


Ignore:
Timestamp:
Jun 8, 2010, 8:30:04 AM (9 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
5b5772a
Parents:
4d39a901
Message:

2010-06-08 Sebastian Huber <sebastian.huber@…>

  • libfs/src/devfs/devclose.c, libfs/src/devfs/devopen.c, libfs/src/imfs/deviceerrno.c, libfs/src/imfs/deviceio.c, libfs/src/rfs/rtems-rfs-rtems-dev.c: Changed rtems_deviceio_errno() to cope with a status code of RTEMS_SUCCESSFUL. Removed dependency on association framework.
Location:
cpukit
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    r4d39a901 r78f4d6d7  
     12010-06-08      Sebastian Huber <sebastian.huber@embedded-brains.de>
     2
     3        * libfs/src/devfs/devclose.c, libfs/src/devfs/devopen.c,
     4        libfs/src/imfs/deviceerrno.c, libfs/src/imfs/deviceio.c,
     5        libfs/src/rfs/rtems-rfs-rtems-dev.c: Changed rtems_deviceio_errno() to
     6        cope with a status code of RTEMS_SUCCESSFUL.  Removed dependency on
     7        association framework.
     8
    192010-06-07      Ralf Corsépius <ralf.corsepius@rtems.org>
    210
  • cpukit/libfs/src/devfs/devclose.c

    r4d39a901 r78f4d6d7  
    3535    (void *) &args
    3636  );
    37   if ( status ) {
    38     return rtems_deviceio_errno(status);
    39   }
    40   return 0;
     37
     38  return rtems_deviceio_errno(status);
    4139}
    4240
  • cpukit/libfs/src/devfs/devopen.c

    r4d39a901 r78f4d6d7  
    3838    (void *) &args
    3939  );
    40   if ( status )
    41     return rtems_deviceio_errno(status);
    4240
    43   return 0;
     41  return rtems_deviceio_errno(status);
    4442}
  • cpukit/libfs/src/imfs/deviceerrno.c

    r4d39a901 r78f4d6d7  
    1919#endif
    2020
     21#include <errno.h>
     22
    2123#include <rtems.h>
    2224#include <rtems/libio.h>
    23 #include <rtems/assoc.h>                /* assoc.h not included by rtems.h */
    24 #include <errno.h>
    2525
    26 /*
    27  * Convert RTEMS status to a UNIX errno
    28  */
    29 
    30 const rtems_assoc_t errno_assoc[] = {
    31     { "OK",                 RTEMS_SUCCESSFUL,                0 },
    32     { "BUSY",               RTEMS_RESOURCE_IN_USE,           EBUSY },
    33     { "INVALID NAME",       RTEMS_INVALID_NAME,              EINVAL },
    34     { "NOT IMPLEMENTED",    RTEMS_NOT_IMPLEMENTED,           ENOSYS },
    35     { "TIMEOUT",            RTEMS_TIMEOUT,                   ETIMEDOUT },
    36     { "NO MEMORY",          RTEMS_NO_MEMORY,                 ENOMEM },
    37     { "NO DEVICE",          RTEMS_UNSATISFIED,               ENODEV },
    38     { "INVALID NUMBER",     RTEMS_INVALID_NUMBER,            EBADF},
    39     { "NOT RESOURCE OWNER", RTEMS_NOT_OWNER_OF_RESOURCE,     EPERM},
    40     { "IO ERROR",           RTEMS_IO_ERROR,                  EIO},
    41     { 0, 0, 0 },
     26static const int status_code_to_errno [RTEMS_STATUS_CODES_LAST + 1] = {
     27  [RTEMS_SUCCESSFUL]               = 0,
     28  [RTEMS_TASK_EXITTED]             = EIO,
     29  [RTEMS_MP_NOT_CONFIGURED]        = EIO,
     30  [RTEMS_INVALID_NAME]             = EINVAL,
     31  [RTEMS_INVALID_ID]               = EIO,
     32  [RTEMS_TOO_MANY]                 = EIO,
     33  [RTEMS_TIMEOUT]                  = ETIMEDOUT,
     34  [RTEMS_OBJECT_WAS_DELETED]       = EIO,
     35  [RTEMS_INVALID_SIZE]             = EIO,
     36  [RTEMS_INVALID_ADDRESS]          = EIO,
     37  [RTEMS_INVALID_NUMBER]           = EBADF,
     38  [RTEMS_NOT_DEFINED]              = EIO,
     39  [RTEMS_RESOURCE_IN_USE]          = EBUSY,
     40  [RTEMS_UNSATISFIED]              = ENODEV,
     41  [RTEMS_INCORRECT_STATE]          = EIO,
     42  [RTEMS_ALREADY_SUSPENDED]        = EIO,
     43  [RTEMS_ILLEGAL_ON_SELF]          = EIO,
     44  [RTEMS_ILLEGAL_ON_REMOTE_OBJECT] = EIO,
     45  [RTEMS_CALLED_FROM_ISR]          = EIO,
     46  [RTEMS_INVALID_PRIORITY]         = EIO,
     47  [RTEMS_NOT_OWNER_OF_RESOURCE]    = EPERM,
     48  [RTEMS_NOT_IMPLEMENTED]          = ENOSYS,
     49  [RTEMS_INTERNAL_ERROR]           = EIO,
     50  [RTEMS_NO_MEMORY]                = ENOMEM,
     51  [RTEMS_IO_ERROR]                 = EIO,
     52  [RTEMS_PROXY_BLOCKING]           = EIO
    4253};
    4354
    44 int
    45 rtems_deviceio_errno(rtems_status_code code)
     55int rtems_deviceio_errno(rtems_status_code sc)
    4656{
    47     int rc;
     57  if (sc == RTEMS_SUCCESSFUL) {
     58    return 0;
     59  } else {
     60    int eno = EINVAL;
    4861
    49     if ((rc = rtems_assoc_remote_by_local(errno_assoc, (uint32_t  ) code)))
    50     {
    51         errno = rc;
    52         return -1;
     62    if ((unsigned) sc <= RTEMS_STATUS_CODES_LAST) {
     63      eno = status_code_to_errno [sc];
    5364    }
     65
     66    errno = eno;
     67
    5468    return -1;
     69  }
    5570}
    56 
    57 
  • cpukit/libfs/src/imfs/deviceio.c

    r4d39a901 r78f4d6d7  
    2121#include <rtems.h>
    2222#include <rtems/libio.h>
    23 #include <rtems/assoc.h>                /* assoc.h not included by rtems.h */
    24 #include <errno.h>
     23#include <rtems/devfs.h>
    2524
    2625#include "imfs.h"
    27 
    28 /*
    29  * Convert RTEMS status to a UNIX errno
    30  */
    31 extern int rtems_deviceio_errno(rtems_status_code code);
    3226
    3327/*
     
    5953    (void *) &args
    6054  );
    61   if ( status )
    62     return rtems_deviceio_errno(status);
    63 
    64   return 0;
     55
     56  return rtems_deviceio_errno( status );
    6557}
    6658
     
    9082    (void *) &args
    9183  );
    92   if ( status ) {
    93     return rtems_deviceio_errno(status);
    94   }
    95   return 0;
     84
     85  return rtems_deviceio_errno( status );
    9686}
    9787
  • cpukit/libfs/src/rfs/rtems-rfs-rtems-dev.c

    r4d39a901 r78f4d6d7  
    8484
    8585  status = rtems_io_open (major, minor, (void *) &args);
    86   if (status)
    87     return rtems_deviceio_errno(status);
    88 
    89   return 0;
     86
     87  return rtems_deviceio_errno (status);
    9088}
    9189
     
    113111
    114112  status = rtems_io_close (major, minor, (void *) &args);
    115   if (status)
    116     return rtems_deviceio_errno (status);
    117 
    118   return 0;
     113
     114  return rtems_deviceio_errno (status);
    119115}
    120116
Note: See TracChangeset for help on using the changeset viewer.