summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cpukit/libcsupport/include/rtems/libio_.h2
-rw-r--r--cpukit/libcsupport/src/fcntl.c2
-rw-r--r--cpukit/libcsupport/src/open.c2
-rw-r--r--cpukit/libnetworking/rtems/rtems_syscall.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/cpukit/libcsupport/include/rtems/libio_.h b/cpukit/libcsupport/include/rtems/libio_.h
index d021c1b7ca..1300d39b41 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 5a10f9139b..ddaf447060 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 399b5a4eac..4fb2ea2d93 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 106379805e..c0dccf6fca 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;