[rtems commit] libio: Add rtems_libio_iop_is_readable()

Sebastian Huber sebh at rtems.org
Fri Sep 15 09:00:24 UTC 2017


Module:    rtems
Branch:    master
Commit:    a937a5a5347cf945fe7eff17eccd97cc849a5349
Changeset: http://git.rtems.org/rtems/commit/?id=a937a5a5347cf945fe7eff17eccd97cc849a5349

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Sep 13 10:35:45 2017 +0200

libio: Add rtems_libio_iop_is_readable()

Update #3132.

---

 c/src/lib/libbsp/shared/console.c        |  4 ++--
 cpukit/libcsupport/include/rtems/libio.h | 10 ++++++++++
 cpukit/libnetworking/lib/ftpfs.c         |  2 +-
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/c/src/lib/libbsp/shared/console.c b/c/src/lib/libbsp/shared/console.c
index fbeec25..6d287c8 100644
--- a/c/src/lib/libbsp/shared/console.c
+++ b/c/src/lib/libbsp/shared/console.c
@@ -255,7 +255,7 @@ rtems_device_driver console_open(
     }
   }
 
-  if ( (args->iop->flags&LIBIO_FLAGS_READ) &&
+  if (rtems_libio_iop_is_readable(args->iop) &&
       cptr->pDeviceFlow &&
       cptr->pDeviceFlow->deviceStartRemoteTx) {
     cptr->pDeviceFlow->deviceStartRemoteTx(minor);
@@ -288,7 +288,7 @@ rtems_device_driver console_close(
    * Stop only if it's the last one opened.
    */
   if ( (current_tty->refcount == 1) ) {
-    if ( (args->iop->flags&LIBIO_FLAGS_READ) &&
+    if (rtems_libio_iop_is_readable(args->iop) &&
           cptr->pDeviceFlow &&
           cptr->pDeviceFlow->deviceStopRemoteTx) {
       cptr->pDeviceFlow->deviceStopRemoteTx(minor);
diff --git a/cpukit/libcsupport/include/rtems/libio.h b/cpukit/libcsupport/include/rtems/libio.h
index 702ec35..7d85fb7 100644
--- a/cpukit/libcsupport/include/rtems/libio.h
+++ b/cpukit/libcsupport/include/rtems/libio.h
@@ -1390,6 +1390,16 @@ static inline bool rtems_libio_iop_is_no_delay( const rtems_libio_t *iop )
 }
 
 /**
+ * @brief Returns true if this is a readable iop, otherwise returns false.
+ *
+ * @param[in] iop The iop.
+ */
+static inline bool rtems_libio_iop_is_readable( const rtems_libio_t *iop )
+{
+  return ( rtems_libio_iop_flags( iop ) & LIBIO_FLAGS_READ ) != 0;
+}
+
+/**
  * @name External I/O Handlers
  */
 /**@{**/
diff --git a/cpukit/libnetworking/lib/ftpfs.c b/cpukit/libnetworking/lib/ftpfs.c
index 912ec82..deccddf 100644
--- a/cpukit/libnetworking/lib/ftpfs.c
+++ b/cpukit/libnetworking/lib/ftpfs.c
@@ -1037,7 +1037,7 @@ static int rtems_ftpfs_open(
   /* Check for either read-only or write-only flags */
   if (
     (iop->flags & LIBIO_FLAGS_WRITE) != 0
-      && (iop->flags & LIBIO_FLAGS_READ) != 0
+      && rtems_libio_iop_is_readable(iop)
   ) {
     eno = ENOTSUP;
   }




More information about the vc mailing list