summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-02-08 19:43:09 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-02-12 20:53:36 +0100
commita9df9169882c564af6714bbf121c278092d3c51c (patch)
tree91a6f1b33100eacb6b700289612dbff956ca87df /cpukit
parentIMFS: Allow static initialization of FS info (diff)
downloadrtems-a9df9169882c564af6714bbf121c278092d3c51c.tar.bz2
IMFS: Add fine grained configuration
Remove miniIMFS. Statically initialize the root IMFS. Add configuration options to disable individual features of the root IMFS, e.g. o CONFIGURE_IMFS_DISABLE_CHOWN, o CONFIGURE_IMFS_DISABLE_FCHMOD, o CONFIGURE_IMFS_DISABLE_LINK, o CONFIGURE_IMFS_DISABLE_MKNOD, o CONFIGURE_IMFS_DISABLE_MOUNT, o CONFIGURE_IMFS_DISABLE_READLINK, o CONFIGURE_IMFS_DISABLE_RENAME, o CONFIGURE_IMFS_DISABLE_RMNOD, o CONFIGURE_IMFS_DISABLE_SYMLINK, o CONFIGURE_IMFS_DISABLE_UNMOUNT, and o CONFIGURE_IMFS_DISABLE_UTIME.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/libfs/Makefile.am4
-rw-r--r--cpukit/libfs/src/imfs/fifoimfs_init.c78
-rw-r--r--cpukit/libfs/src/imfs/imfs.h21
-rw-r--r--cpukit/libfs/src/imfs/imfs_init.c2
-rw-r--r--cpukit/libfs/src/imfs/imfs_load_tar.c5
-rw-r--r--cpukit/libfs/src/imfs/imfs_make_generic_node.c10
-rw-r--r--cpukit/libfs/src/imfs/miniimfs_init.c74
-rw-r--r--cpukit/sapi/include/confdefs.h184
8 files changed, 126 insertions, 252 deletions
diff --git a/cpukit/libfs/Makefile.am b/cpukit/libfs/Makefile.am
index 3c454e7154..802dfdb141 100644
--- a/cpukit/libfs/Makefile.am
+++ b/cpukit/libfs/Makefile.am
@@ -41,7 +41,7 @@ noinst_LIBRARIES += libimfs.a
libimfs_a_SOURCES =
libimfs_a_SOURCES += src/imfs/deviceio.c \
- src/imfs/fifoimfs_init.c src/imfs/imfs_chown.c src/imfs/imfs_config.c \
+ src/imfs/imfs_chown.c src/imfs/imfs_config.c \
src/imfs/imfs_creat.c src/imfs/imfs_directory.c \
src/imfs/imfs_eval.c src/imfs/imfs_fchmod.c \
src/imfs/imfs_fifo.c \
@@ -56,7 +56,7 @@ libimfs_a_SOURCES += src/imfs/deviceio.c \
src/imfs/imfs_rename.c src/imfs/imfs_rmnod.c \
src/imfs/imfs_stat.c src/imfs/imfs_stat_file.c src/imfs/imfs_symlink.c \
src/imfs/imfs_unmount.c src/imfs/imfs_utime.c src/imfs/ioman.c \
- src/imfs/imfs_memfile.c src/imfs/miniimfs_init.c src/imfs/imfs.h
+ src/imfs/imfs_memfile.c src/imfs/imfs.h
# POSIX FIFO/pipe
libimfs_a_SOURCES += src/pipe/fifo.c src/pipe/pipe.c src/pipe/pipe.h
diff --git a/cpukit/libfs/src/imfs/fifoimfs_init.c b/cpukit/libfs/src/imfs/fifoimfs_init.c
deleted file mode 100644
index 4063557739..0000000000
--- a/cpukit/libfs/src/imfs/fifoimfs_init.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * @file
- *
- * @ingroup LibFSIMFS
- *
- * @brief IMFS without fifo support initialization.
- */
-
-/*
- * Copyright (c) 2010
- * embedded brains GmbH
- * Obere Lagerstr. 30
- * D-82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#if HAVE_CONFIG_H
- #include "config.h"
-#endif
-
-#include "imfs.h"
-
-#include <stdlib.h>
-
-#include <rtems/seterr.h>
-
-const rtems_filesystem_operations_table fifoIMFS_ops = {
- .lock_h = rtems_filesystem_default_lock,
- .unlock_h = rtems_filesystem_default_unlock,
- .eval_path_h = IMFS_eval_path,
- .link_h = IMFS_link,
- .are_nodes_equal_h = rtems_filesystem_default_are_nodes_equal,
- .mknod_h = IMFS_mknod,
- .rmnod_h = IMFS_rmnod,
- .fchmod_h = IMFS_fchmod,
- .chown_h = IMFS_chown,
- .clonenod_h = IMFS_node_clone,
- .freenod_h = IMFS_node_free,
- .mount_h = IMFS_mount,
- .unmount_h = IMFS_unmount,
- .fsunmount_me_h = IMFS_fsunmount,
- .utime_h = IMFS_utime,
- .symlink_h = IMFS_symlink,
- .readlink_h = IMFS_readlink,
- .rename_h = IMFS_rename,
- .statvfs_h = rtems_filesystem_default_statvfs
-};
-
-static const IMFS_mknod_controls IMFS_fifo_mknod_controls = {
- .directory = &IMFS_mknod_control_directory,
- .device = &IMFS_mknod_control_device,
- .file = &IMFS_mknod_control_memfile,
- .fifo = &IMFS_mknod_control_fifo
-};
-
-int fifoIMFS_initialize(
- rtems_filesystem_mount_table_entry_t *mt_entry,
- const void *data
-)
-{
- IMFS_fs_info_t *fs_info = calloc( 1, sizeof( *fs_info ) );
- IMFS_mount_data mount_data = {
- .fs_info = fs_info,
- .ops = &fifoIMFS_ops,
- .mknod_controls = &IMFS_fifo_mknod_controls
- };
-
- if ( fs_info == NULL ) {
- rtems_set_errno_and_return_minus_one( ENOMEM );
- }
-
- return IMFS_initialize_support( mt_entry, &mount_data );
-}
diff --git a/cpukit/libfs/src/imfs/imfs.h b/cpukit/libfs/src/imfs/imfs.h
index 00fc1795a6..c03257a0fa 100644
--- a/cpukit/libfs/src/imfs/imfs.h
+++ b/cpukit/libfs/src/imfs/imfs.h
@@ -391,10 +391,6 @@ extern const IMFS_node_control IMFS_node_control_linfile;
extern const IMFS_mknod_control IMFS_mknod_control_fifo;
extern const IMFS_mknod_control IMFS_mknod_control_enosys;
-extern const rtems_filesystem_operations_table miniIMFS_ops;
-extern const rtems_filesystem_operations_table IMFS_ops;
-extern const rtems_filesystem_operations_table fifoIMFS_ops;
-
extern const rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
/*
@@ -406,16 +402,6 @@ extern int IMFS_initialize(
const void *data
);
-extern int fifoIMFS_initialize(
- rtems_filesystem_mount_table_entry_t *mt_entry,
- const void *data
-);
-
-extern int miniIMFS_initialize(
- rtems_filesystem_mount_table_entry_t *mt_entry,
- const void *data
-);
-
extern int IMFS_initialize_support(
rtems_filesystem_mount_table_entry_t *mt_entry,
const void *data
@@ -586,9 +572,12 @@ extern IMFS_jnode_t *IMFS_create_node(
void *arg
);
-extern bool IMFS_is_imfs_instance(
+static inline bool IMFS_is_imfs_instance(
const rtems_filesystem_location_info_t *loc
-);
+)
+{
+ return loc->mt_entry->ops->clonenod_h == IMFS_node_clone;
+}
/** @} */
diff --git a/cpukit/libfs/src/imfs/imfs_init.c b/cpukit/libfs/src/imfs/imfs_init.c
index e82490fac9..bbab2cb3e1 100644
--- a/cpukit/libfs/src/imfs/imfs_init.c
+++ b/cpukit/libfs/src/imfs/imfs_init.c
@@ -25,7 +25,7 @@
#include <rtems/seterr.h>
-const rtems_filesystem_operations_table IMFS_ops = {
+static const rtems_filesystem_operations_table IMFS_ops = {
.lock_h = rtems_filesystem_default_lock,
.unlock_h = rtems_filesystem_default_unlock,
.eval_path_h = IMFS_eval_path,
diff --git a/cpukit/libfs/src/imfs/imfs_load_tar.c b/cpukit/libfs/src/imfs/imfs_load_tar.c
index d303cd29eb..7228978094 100644
--- a/cpukit/libfs/src/imfs/imfs_load_tar.c
+++ b/cpukit/libfs/src/imfs/imfs_load_tar.c
@@ -58,10 +58,7 @@ int rtems_tarfs_load(
RTEMS_FS_MAKE | RTEMS_FS_EXCLUSIVE
);
- if (
- rootloc.mt_entry->ops != &IMFS_ops
- && rootloc.mt_entry->ops != &fifoIMFS_ops
- ) {
+ if ( !IMFS_is_imfs_instance( &rootloc ) ) {
rv = -1;
}
diff --git a/cpukit/libfs/src/imfs/imfs_make_generic_node.c b/cpukit/libfs/src/imfs/imfs_make_generic_node.c
index f302dda93f..aef21c9493 100644
--- a/cpukit/libfs/src/imfs/imfs_make_generic_node.c
+++ b/cpukit/libfs/src/imfs/imfs_make_generic_node.c
@@ -39,16 +39,6 @@ IMFS_jnode_t *IMFS_node_initialize_generic(
return node;
}
-bool IMFS_is_imfs_instance(
- const rtems_filesystem_location_info_t *loc
-)
-{
- const char *type = loc->mt_entry->type;
-
- return strcmp(type, RTEMS_FILESYSTEM_TYPE_IMFS) == 0
- || strcmp(type, RTEMS_FILESYSTEM_TYPE_MINIIMFS) == 0;
-}
-
int IMFS_make_generic_node(
const char *path,
mode_t mode,
diff --git a/cpukit/libfs/src/imfs/miniimfs_init.c b/cpukit/libfs/src/imfs/miniimfs_init.c
deleted file mode 100644
index 7451c5eb0d..0000000000
--- a/cpukit/libfs/src/imfs/miniimfs_init.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * @file
- *
- * @ingroup LibFSIMFS
- *
- * @brief Mini-IMFS initialization.
- */
-
-/*
- * COPYRIGHT (c) 1989-1999.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#if HAVE_CONFIG_H
- #include "config.h"
-#endif
-
-#include "imfs.h"
-
-#include <stdlib.h>
-
-#include <rtems/seterr.h>
-
-const rtems_filesystem_operations_table miniIMFS_ops = {
- .lock_h = rtems_filesystem_default_lock,
- .unlock_h = rtems_filesystem_default_unlock,
- .eval_path_h = IMFS_eval_path,
- .link_h = rtems_filesystem_default_link,
- .are_nodes_equal_h = rtems_filesystem_default_are_nodes_equal,
- .mknod_h = IMFS_mknod,
- .rmnod_h = IMFS_rmnod,
- .fchmod_h = rtems_filesystem_default_fchmod,
- .chown_h = rtems_filesystem_default_chown,
- .clonenod_h = IMFS_node_clone,
- .freenod_h = IMFS_node_free,
- .mount_h = IMFS_mount,
- .unmount_h = rtems_filesystem_default_unmount,
- .fsunmount_me_h = rtems_filesystem_default_fsunmount,
- .utime_h = rtems_filesystem_default_utime,
- .symlink_h = rtems_filesystem_default_symlink,
- .readlink_h = rtems_filesystem_default_readlink,
- .rename_h = rtems_filesystem_default_rename,
- .statvfs_h = rtems_filesystem_default_statvfs
-};
-
-static const IMFS_mknod_controls IMFS_mini_mknod_controls = {
- .directory = &IMFS_mknod_control_directory,
- .device = &IMFS_mknod_control_device,
- .file = &IMFS_mknod_control_memfile,
- .fifo = &IMFS_mknod_control_enosys
-};
-
-int miniIMFS_initialize(
- rtems_filesystem_mount_table_entry_t *mt_entry,
- const void *data
-)
-{
- IMFS_fs_info_t *fs_info = calloc( 1, sizeof( *fs_info ) );
- IMFS_mount_data mount_data = {
- .fs_info = fs_info,
- .ops = &miniIMFS_ops,
- .mknod_controls = &IMFS_mini_mknod_controls
- };
-
- if ( fs_info == NULL ) {
- rtems_set_errno_and_return_minus_one( ENOMEM );
- }
-
- return IMFS_initialize_support( mt_entry, &mount_data );
-}
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
index 211c6bc77f..6fb09512f6 100644
--- a/cpukit/sapi/include/confdefs.h
+++ b/cpukit/sapi/include/confdefs.h
@@ -125,14 +125,6 @@ const rtems_libio_helper rtems_fs_init_helper =
#endif
#endif
-/*
- * If the application disables the filesystem, they will not need
- * a mount table, so do not produce one.
- */
-#ifdef CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
- #define CONFIGURE_HAS_OWN_MOUNT_TABLE
-#endif
-
/**
* This macro defines the number of POSIX file descriptors allocated
* and managed by libio. These are the "integer" file descriptors that
@@ -257,7 +249,6 @@ const rtems_libio_helper rtems_fs_init_helper =
* Add file filesystems to the default filesystem table.
*
* List of available file systems. You can define as many as you like:
- * CONFIGURE_FILESYSTEM_MINIIMFS - MiniIMFS, use DEVFS now
* CONFIGURE_FILESYSTEM_IMFS - In Memory File System (IMFS)
* CONFIGURE_FILESYSTEM_DEVFS - Device File System (DSVFS)
* CONFIGURE_FILESYSTEM_TFTPFS - TFTP File System, networking enabled
@@ -271,10 +262,10 @@ const rtems_libio_helper rtems_fs_init_helper =
*
* - If nothing is defined the base file system is the IMFS.
*
- * - If CONFIGURE_APPLICATION_DISABLE_FILESYSTEM is defined all filesystem
- * are disabled by force and an empty DEVFS is created.
+ * - If CONFIGURE_APPLICATION_DISABLE_FILESYSTEM is defined all filesystems
+ * are disabled by force.
*
- * - If CONFIGURE_USE_DEV_AS_BASE_FILESYSTEM is defined all filesystem
+ * - If CONFIGURE_USE_DEV_AS_BASE_FILESYSTEM is defined all filesystems
* are disabled by force and DEVFS is defined.
*/
@@ -285,7 +276,6 @@ const rtems_libio_helper rtems_fs_init_helper =
* been disabled.
*/
#ifdef CONFIGURE_FILESYSTEM_ALL
- #define CONFIGURE_FILESYSTEM_MINIIMFS
#define CONFIGURE_FILESYSTEM_IMFS
#define CONFIGURE_FILESYSTEM_DEVFS
#define CONFIGURE_FILESYSTEM_TFTPFS
@@ -301,23 +291,19 @@ const rtems_libio_helper rtems_fs_init_helper =
* configured other filesystem parameters.
*/
#if defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM)
- #if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM) || \
- defined(CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM)
- #error "Filesystem disabled but a base filesystem configured."
+ #if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
+ #error "Filesystem disabled and a base filesystem configured."
#endif
- #if defined(CONFIGURE_FILESYSTEM_MINIIMFS) || \
- defined(CONFIGURE_FILESYSTEM_IMFS) || \
- defined(CONFIGURE_FILESYSTEM_DEVFS) || \
- defined(CONFIGURE_FILESYSTEM_TFTPFS) || \
- defined(CONFIGURE_FILESYSTEM_FTPFS) || \
- defined(CONFIGURE_FILESYSTEM_NFS) || \
- defined(CONFIGURE_FILESYSTEM_DOSFS) || \
- defined(CONFIGURE_FILESYSTEM_RFS) || \
- defined(CONFIGURE_FILESYSTEM_JFFS2)
- #error "Configured filesystems but root filesystem was not IMFS!"
- #error "Filesystems could be disabled, DEVFS is root, or"
- #error " miniIMFS is root!"
+ #if defined(CONFIGURE_FILESYSTEM_IMFS) || \
+ defined(CONFIGURE_FILESYSTEM_DEVFS) || \
+ defined(CONFIGURE_FILESYSTEM_TFTPFS) || \
+ defined(CONFIGURE_FILESYSTEM_FTPFS) || \
+ defined(CONFIGURE_FILESYSTEM_NFS) || \
+ defined(CONFIGURE_FILESYSTEM_DOSFS) || \
+ defined(CONFIGURE_FILESYSTEM_RFS) || \
+ defined(CONFIGURE_FILESYSTEM_JFFS2)
+ #error "Filesystem disabled and a filesystem configured."
#endif
#endif
@@ -328,10 +314,6 @@ const rtems_libio_helper rtems_fs_init_helper =
#if !defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM)
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
#define CONFIGURE_FILESYSTEM_DEVFS
- #elif defined(CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM)
- #define CONFIGURE_FILESYSTEM_MINIIMFS
- #elif !defined(CONFIGURE_FILESYSTEM_IMFS)
- #define CONFIGURE_FILESYSTEM_IMFS
#endif
#endif
@@ -355,28 +337,12 @@ const rtems_libio_helper rtems_fs_init_helper =
#endif
/**
- * This defines the miniIMFS file system table entry.
- */
-#if !defined(CONFIGURE_FILESYSTEM_ENTRY_miniIMFS) && \
- defined(CONFIGURE_FILESYSTEM_MINIIMFS)
- #define CONFIGURE_FILESYSTEM_ENTRY_miniIMFS \
- { RTEMS_FILESYSTEM_TYPE_MINIIMFS, miniIMFS_initialize }
-#endif
-#endif
-
-#ifndef RTEMS_SCHEDSIM
-/**
* This defines the IMFS file system table entry.
*/
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_IMFS) && \
- defined(CONFIGURE_FILESYSTEM_IMFS)
- #if CONFIGURE_MAXIMUM_FIFOS > 0 || CONFIGURE_MAXIMUM_PIPES > 0
- #define CONFIGURE_FILESYSTEM_ENTRY_IMFS \
- { RTEMS_FILESYSTEM_TYPE_IMFS, fifoIMFS_initialize }
- #else
- #define CONFIGURE_FILESYSTEM_ENTRY_IMFS \
- { RTEMS_FILESYSTEM_TYPE_IMFS, IMFS_initialize }
- #endif
+ defined(CONFIGURE_FILESYSTEM_IMFS)
+ #define CONFIGURE_FILESYSTEM_ENTRY_IMFS \
+ { RTEMS_FILESYSTEM_TYPE_IMFS, IMFS_initialize }
#endif
#endif
@@ -506,28 +472,27 @@ const rtems_libio_helper rtems_fs_init_helper =
#include <rtems/devfs.h>
#endif
-#ifndef RTEMS_SCHEDSIM
- #if defined(CONFIGURE_FILESYSTEM_IMFS) || \
- defined(CONFIGURE_FILESYSTEM_MINIIMFS)
- int imfs_rq_memfile_bytes_per_block = CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK;
- #endif
-#endif
-
/**
* Table termination record.
*/
#define CONFIGURE_FILESYSTEM_NULL { NULL, NULL }
#ifndef RTEMS_SCHEDSIM
+ #if !defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM) && \
+ !defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
+ int imfs_rq_memfile_bytes_per_block =
+ CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK;
+ #endif
+
/**
* The default file system table. Must be terminated with the NULL entry if
* you provide your own.
*/
- #ifndef CONFIGURE_HAS_OWN_FILESYSTEM_TABLE
+ #if !defined(CONFIGURE_HAS_OWN_FILESYSTEM_TABLE) && \
+ !defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM)
const rtems_filesystem_table_t rtems_filesystem_table[] = {
- #if defined(CONFIGURE_FILESYSTEM_MINIIMFS) && \
- defined(CONFIGURE_FILESYSTEM_ENTRY_miniIMFS)
- CONFIGURE_FILESYSTEM_ENTRY_miniIMFS,
+ #if !defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
+ { "/", IMFS_initialize_support },
#endif
#if defined(CONFIGURE_FILESYSTEM_IMFS) && \
defined(CONFIGURE_FILESYSTEM_ENTRY_IMFS)
@@ -565,30 +530,115 @@ const rtems_libio_helper rtems_fs_init_helper =
};
#endif
- #ifndef CONFIGURE_HAS_OWN_MOUNT_TABLE
+ #if !defined(CONFIGURE_HAS_OWN_MOUNT_TABLE) && \
+ !defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM)
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
static devFS_node devFS_root_filesystem_nodes [CONFIGURE_MAXIMUM_DEVICES];
static const devFS_data devFS_root_filesystem_data = {
devFS_root_filesystem_nodes,
CONFIGURE_MAXIMUM_DEVICES
};
+ #else
+ static IMFS_fs_info_t _Configure_IMFS_fs_info;
+
+ static const rtems_filesystem_operations_table _Configure_IMFS_ops = {
+ rtems_filesystem_default_lock,
+ rtems_filesystem_default_unlock,
+ IMFS_eval_path,
+ #ifdef CONFIGURE_IMFS_DISABLE_LINK
+ rtems_filesystem_default_link,
+ #else
+ IMFS_link,
+ #endif
+ rtems_filesystem_default_are_nodes_equal,
+ #ifdef CONFIGURE_IMFS_DISABLE_MKNOD
+ rtems_filesystem_default_mknod,
+ #else
+ IMFS_mknod,
+ #endif
+ #ifdef CONFIGURE_IMFS_DISABLE_RMNOD
+ rtems_filesystem_default_rmnod,
+ #else
+ IMFS_rmnod,
+ #endif
+ #ifdef CONFIGURE_IMFS_DISABLE_FCHMOD
+ rtems_filesystem_default_fchmod,
+ #else
+ IMFS_fchmod,
+ #endif
+ #ifdef CONFIGURE_IMFS_DISABLE_CHOWN
+ rtems_filesystem_default_chown,
+ #else
+ IMFS_chown,
+ #endif
+ IMFS_node_clone,
+ IMFS_node_free,
+ #ifdef CONFIGURE_IMFS_DISABLE_MOUNT
+ rtems_filesystem_default_mount,
+ #else
+ IMFS_mount,
+ #endif
+ #ifdef CONFIGURE_IMFS_DISABLE_UNMOUNT
+ rtems_filesystem_default_unmount,
+ #else
+ IMFS_unmount,
+ #endif
+ rtems_filesystem_default_fsunmount,
+ #ifdef CONFIGURE_IMFS_DISABLE_UTIME
+ rtems_filesystem_default_utime,
+ #else
+ IMFS_utime,
+ #endif
+ #ifdef CONFIGURE_IMFS_DISABLE_SYMLINK
+ rtems_filesystem_default_symlink,
+ #else
+ IMFS_symlink,
+ #endif
+ #ifdef CONFIGURE_IMFS_DISABLE_READLINK
+ rtems_filesystem_default_readlink,
+ #else
+ IMFS_readlink,
+ #endif
+ #ifdef CONFIGURE_IMFS_DISABLE_RENAME
+ rtems_filesystem_default_rename,
+ #else
+ IMFS_rename,
+ #endif
+ rtems_filesystem_default_statvfs
+ };
+
+ static const IMFS_mknod_controls _Configure_IMFS_mknod_controls = {
+ &IMFS_mknod_control_directory,
+ &IMFS_mknod_control_device,
+ &IMFS_mknod_control_memfile,
+ #if CONFIGURE_MAXIMUM_FIFOS > 0 || CONFIGURE_MAXIMUM_PIPES > 0
+ &IMFS_mknod_control_fifo
+ #else
+ &IMFS_mknod_control_enosys
+ #endif
+ };
+
+ static const IMFS_mount_data _Configure_IMFS_mount_data = {
+ &_Configure_IMFS_fs_info,
+ &_Configure_IMFS_ops,
+ &_Configure_IMFS_mknod_controls
+ };
#endif
+
const rtems_filesystem_mount_configuration
rtems_filesystem_root_configuration = {
NULL,
NULL,
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
RTEMS_FILESYSTEM_TYPE_DEVFS,
- #elif defined(CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM)
- RTEMS_FILESYSTEM_TYPE_MINIIMFS,
#else
- RTEMS_FILESYSTEM_TYPE_IMFS,
+ "/",
#endif
RTEMS_FILESYSTEM_READ_WRITE,
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
&devFS_root_filesystem_data
#else
- NULL
+ &_Configure_IMFS_mount_data
#endif
};
#endif