[PATCH 3/4] Filesystem: Use rtems_libio_iop_to_descriptor()

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Feb 2 14:25:25 UTC 2015


Drop parameter check from previously unused
rtems_libio_iop_to_descriptor().
---
 cpukit/libcsupport/include/rtems/libio_.h  | 2 +-
 cpukit/libcsupport/src/fcntl.c             | 2 +-
 cpukit/libcsupport/src/open.c              | 2 +-
 cpukit/libnetworking/rtems/rtems_syscall.c | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/cpukit/libcsupport/include/rtems/libio_.h b/cpukit/libcsupport/include/rtems/libio_.h
index d021c1b..1300d39 100644
--- a/cpukit/libcsupport/include/rtems/libio_.h
+++ b/cpukit/libcsupport/include/rtems/libio_.h
@@ -107,7 +107,7 @@ extern rtems_filesystem_global_location_t rtems_filesystem_global_location_null;
  */
 
 #define rtems_libio_iop_to_descriptor(_iop) \
-   ((!(_iop)) ? -1 : (_iop - rtems_libio_iops))
+  ((_iop) - &rtems_libio_iops[0])
 
 /*
  *  rtems_libio_check_is_open
diff --git a/cpukit/libcsupport/src/fcntl.c b/cpukit/libcsupport/src/fcntl.c
index 5a10f91..ddaf447 100644
--- a/cpukit/libcsupport/src/fcntl.c
+++ b/cpukit/libcsupport/src/fcntl.c
@@ -47,7 +47,7 @@ static int duplicate_iop( rtems_libio_t *iop )
      */
     rv = (*diop->pathinfo.handlers->open_h)( diop, NULL, oflag, 0 );
     if ( rv == 0 ) {
-      rv = diop - rtems_libio_iops;
+      rv = rtems_libio_iop_to_descriptor( diop );
     } else {
       rtems_libio_free( diop );
     }
diff --git a/cpukit/libcsupport/src/open.c b/cpukit/libcsupport/src/open.c
index 399b5a4..4fb2ea2 100644
--- a/cpukit/libcsupport/src/open.c
+++ b/cpukit/libcsupport/src/open.c
@@ -66,7 +66,7 @@ static int do_open(
 )
 {
   int rv = 0;
-  int fd = iop - rtems_libio_iops;
+  int fd = rtems_libio_iop_to_descriptor( iop );
   int rwflag = oflag + 1;
   bool read_access = (rwflag & _FREAD) == _FREAD;
   bool write_access = (rwflag & _FWRITE) == _FWRITE;
diff --git a/cpukit/libnetworking/rtems/rtems_syscall.c b/cpukit/libnetworking/rtems/rtems_syscall.c
index 1063798..c0dccf6 100644
--- a/cpukit/libnetworking/rtems/rtems_syscall.c
+++ b/cpukit/libnetworking/rtems/rtems_syscall.c
@@ -83,7 +83,7 @@ rtems_bsdnet_makeFdForSocket (void *so)
   if (iop == 0)
       rtems_set_errno_and_return_minus_one( ENFILE );
 
-  fd = iop - rtems_libio_iops;
+  fd = rtems_libio_iop_to_descriptor(iop);
   iop->flags |= LIBIO_FLAGS_WRITE | LIBIO_FLAGS_READ;
   iop->data0 = fd;
   iop->data1 = so;
-- 
1.8.4.5




More information about the devel mailing list