diff options
Diffstat (limited to 'cpukit/libcsupport')
-rw-r--r-- | cpukit/libcsupport/include/rtems/libio_.h | 2 | ||||
-rw-r--r-- | cpukit/libcsupport/src/fcntl.c | 2 | ||||
-rw-r--r-- | cpukit/libcsupport/src/open.c | 2 |
3 files changed, 3 insertions, 3 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; |