summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/imfs/imfs_initsupp.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-12-11 09:39:09 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-12-11 09:39:09 +0100
commit98e5c954bdb40d0e66d33eedcdd157fcbecbb114 (patch)
treee23f0c261956540f6a391610306c2c97b4496703 /cpukit/libfs/src/imfs/imfs_initsupp.c
parentpsxsignal06: Fix bug where mutex not locked and add EPERM error check (diff)
downloadrtems-98e5c954bdb40d0e66d33eedcdd157fcbecbb114.tar.bz2
PR2160: imfs: Use ENOSYS for unsupported nodes
Return an error status with errno set to ENOSYS during node creation for nodes not available in the current configuration.
Diffstat (limited to 'cpukit/libfs/src/imfs/imfs_initsupp.c')
-rw-r--r--cpukit/libfs/src/imfs/imfs_initsupp.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/cpukit/libfs/src/imfs/imfs_initsupp.c b/cpukit/libfs/src/imfs/imfs_initsupp.c
index 7fe1e16b96..339a04f952 100644
--- a/cpukit/libfs/src/imfs/imfs_initsupp.c
+++ b/cpukit/libfs/src/imfs/imfs_initsupp.c
@@ -20,6 +20,7 @@
#include "imfs.h"
+#include <errno.h>
#include <stdlib.h>
#include <string.h>
@@ -139,6 +140,16 @@ void IMFS_node_free( const rtems_filesystem_location_info_t *loc )
}
}
+static IMFS_jnode_t *IMFS_node_initialize_enosys(
+ IMFS_jnode_t *node,
+ const IMFS_types_union *info
+)
+{
+ errno = ENOSYS;
+
+ return NULL;
+}
+
IMFS_jnode_t *IMFS_node_initialize_default(
IMFS_jnode_t *node,
const IMFS_types_union *info
@@ -159,10 +170,10 @@ IMFS_jnode_t *IMFS_node_destroy_default( IMFS_jnode_t *node )
return node;
}
-const IMFS_node_control IMFS_node_control_default = {
+const IMFS_node_control IMFS_node_control_enosys = {
.imfs_type = IMFS_INVALID_NODE,
.handlers = &rtems_filesystem_handlers_default,
- .node_initialize = IMFS_node_initialize_default,
+ .node_initialize = IMFS_node_initialize_enosys,
.node_remove = IMFS_node_remove_default,
.node_destroy = IMFS_node_destroy_default
};