summaryrefslogtreecommitdiff
path: root/cpukit/libcsupport/include/rtems/libio_.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libcsupport/include/rtems/libio_.h')
-rw-r--r--cpukit/libcsupport/include/rtems/libio_.h25
1 files changed, 18 insertions, 7 deletions
diff --git a/cpukit/libcsupport/include/rtems/libio_.h b/cpukit/libcsupport/include/rtems/libio_.h
index f64fefb2e8..2b6bbf687d 100644
--- a/cpukit/libcsupport/include/rtems/libio_.h
+++ b/cpukit/libcsupport/include/rtems/libio_.h
@@ -124,20 +124,31 @@ extern rtems_libio_t *rtems_libio_iop_freelist;
} while (0)
/*
- * rtems_libio_check_permissions
+ * rtems_libio_check_permissions_with_error
*
* Macro to check if a file descriptor is open for this operation.
+ * On failure, return the user specified error.
*/
-#define rtems_libio_check_permissions(_iop, _flag) \
- do { \
- if (((_iop)->flags & (_flag)) == 0) { \
- rtems_set_errno_and_return_minus_one( EINVAL ); \
- return -1; \
- } \
+#define rtems_libio_check_permissions_with_error(_iop, _flag, _errno) \
+ do { \
+ if (((_iop)->flags & (_flag)) == 0) { \
+ rtems_set_errno_and_return_minus_one( _errno ); \
+ return -1; \
+ } \
} while (0)
/*
+ * rtems_libio_check_permissions
+ *
+ * Macro to check if a file descriptor is open for this operation.
+ * On failure, return EINVAL
+ */
+
+#define rtems_libio_check_permissions(_iop, _flag) \
+ rtems_libio_check_permissions_with_error(_iop, _flag, EINVAL )
+
+/*
* rtems_filesystem_freenode
*
* Macro to free a node.