From 856ede4f91a76a1a681ceac24ddb18d3a438dffb Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 13 Sep 2017 10:11:46 +0200 Subject: libio: Add iop set/clear flags Update #3132. --- cpukit/libcsupport/include/rtems/libio_.h | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'cpukit/libcsupport/include/rtems/libio_.h') diff --git a/cpukit/libcsupport/include/rtems/libio_.h b/cpukit/libcsupport/include/rtems/libio_.h index ba6866e5a4..ed5cd27c31 100644 --- a/cpukit/libcsupport/include/rtems/libio_.h +++ b/cpukit/libcsupport/include/rtems/libio_.h @@ -89,6 +89,46 @@ extern rtems_filesystem_mount_table_entry_t rtems_filesystem_null_mt_entry; */ extern rtems_filesystem_global_location_t rtems_filesystem_global_location_null; +/** + * @brief Sets the specified flags in the iop. + * + * @param[in] iop The iop. + * @param[in] set The flags to set. + * + * @return The previous flags. + */ +static inline uint32_t rtems_libio_iop_flags_set( + rtems_libio_t *iop, + uint32_t set +) +{ + uint32_t flags; + + flags = iop->flags; + iop->flags = flags | set; + return flags; +} + +/** + * @brief Clears the specified flags in the iop. + * + * @param[in] iop The iop. + * @param[in] clear The flags to clear. + * + * @return The previous flags. + */ +static inline uint32_t rtems_libio_iop_flags_clear( + rtems_libio_t *iop, + uint32_t clear +) +{ + uint32_t flags; + + flags = iop->flags; + iop->flags = flags & ~clear; + return flags; +} + /** * @brief Maps a file descriptor to the iop. * -- cgit v1.2.3