forked from Imagelibrary/rtems
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.
This commit is contained in:
@@ -36,7 +36,6 @@ rtems_task Init(
|
|||||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||||
#define CONFIGURE_MAXIMUM_TASKS 1
|
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
#define CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
|
|
||||||
#include <confdefs.h>
|
#include <confdefs.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ noinst_LIBRARIES += libimfs.a
|
|||||||
libimfs_a_SOURCES =
|
libimfs_a_SOURCES =
|
||||||
|
|
||||||
libimfs_a_SOURCES += src/imfs/deviceio.c \
|
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_creat.c src/imfs/imfs_directory.c \
|
||||||
src/imfs/imfs_eval.c src/imfs/imfs_fchmod.c \
|
src/imfs/imfs_eval.c src/imfs/imfs_fchmod.c \
|
||||||
src/imfs/imfs_fifo.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_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_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_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
|
# POSIX FIFO/pipe
|
||||||
libimfs_a_SOURCES += src/pipe/fifo.c src/pipe/pipe.c src/pipe/pipe.h
|
libimfs_a_SOURCES += src/pipe/fifo.c src/pipe/pipe.c src/pipe/pipe.h
|
||||||
|
|||||||
@@ -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 );
|
|
||||||
}
|
|
||||||
@@ -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_fifo;
|
||||||
extern const IMFS_mknod_control IMFS_mknod_control_enosys;
|
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;
|
extern const rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -406,16 +402,6 @@ extern int IMFS_initialize(
|
|||||||
const void *data
|
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(
|
extern int IMFS_initialize_support(
|
||||||
rtems_filesystem_mount_table_entry_t *mt_entry,
|
rtems_filesystem_mount_table_entry_t *mt_entry,
|
||||||
const void *data
|
const void *data
|
||||||
@@ -586,9 +572,12 @@ extern IMFS_jnode_t *IMFS_create_node(
|
|||||||
void *arg
|
void *arg
|
||||||
);
|
);
|
||||||
|
|
||||||
extern bool IMFS_is_imfs_instance(
|
static inline bool IMFS_is_imfs_instance(
|
||||||
const rtems_filesystem_location_info_t *loc
|
const rtems_filesystem_location_info_t *loc
|
||||||
);
|
)
|
||||||
|
{
|
||||||
|
return loc->mt_entry->ops->clonenod_h == IMFS_node_clone;
|
||||||
|
}
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
#include <rtems/seterr.h>
|
#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,
|
.lock_h = rtems_filesystem_default_lock,
|
||||||
.unlock_h = rtems_filesystem_default_unlock,
|
.unlock_h = rtems_filesystem_default_unlock,
|
||||||
.eval_path_h = IMFS_eval_path,
|
.eval_path_h = IMFS_eval_path,
|
||||||
|
|||||||
@@ -58,10 +58,7 @@ int rtems_tarfs_load(
|
|||||||
RTEMS_FS_MAKE | RTEMS_FS_EXCLUSIVE
|
RTEMS_FS_MAKE | RTEMS_FS_EXCLUSIVE
|
||||||
);
|
);
|
||||||
|
|
||||||
if (
|
if ( !IMFS_is_imfs_instance( &rootloc ) ) {
|
||||||
rootloc.mt_entry->ops != &IMFS_ops
|
|
||||||
&& rootloc.mt_entry->ops != &fifoIMFS_ops
|
|
||||||
) {
|
|
||||||
rv = -1;
|
rv = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,16 +39,6 @@ IMFS_jnode_t *IMFS_node_initialize_generic(
|
|||||||
return node;
|
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(
|
int IMFS_make_generic_node(
|
||||||
const char *path,
|
const char *path,
|
||||||
mode_t mode,
|
mode_t mode,
|
||||||
|
|||||||
@@ -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 );
|
|
||||||
}
|
|
||||||
@@ -125,14 +125,6 @@ const rtems_libio_helper rtems_fs_init_helper =
|
|||||||
#endif
|
#endif
|
||||||
#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
|
* This macro defines the number of POSIX file descriptors allocated
|
||||||
* and managed by libio. These are the "integer" file descriptors that
|
* 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.
|
* Add file filesystems to the default filesystem table.
|
||||||
*
|
*
|
||||||
* List of available file systems. You can define as many as you like:
|
* 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_IMFS - In Memory File System (IMFS)
|
||||||
* CONFIGURE_FILESYSTEM_DEVFS - Device File System (DSVFS)
|
* CONFIGURE_FILESYSTEM_DEVFS - Device File System (DSVFS)
|
||||||
* CONFIGURE_FILESYSTEM_TFTPFS - TFTP File System, networking enabled
|
* 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 nothing is defined the base file system is the IMFS.
|
||||||
*
|
*
|
||||||
* - If CONFIGURE_APPLICATION_DISABLE_FILESYSTEM is defined all filesystem
|
* - If CONFIGURE_APPLICATION_DISABLE_FILESYSTEM is defined all filesystems
|
||||||
* are disabled by force and an empty DEVFS is created.
|
* 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.
|
* are disabled by force and DEVFS is defined.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -285,7 +276,6 @@ const rtems_libio_helper rtems_fs_init_helper =
|
|||||||
* been disabled.
|
* been disabled.
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIGURE_FILESYSTEM_ALL
|
#ifdef CONFIGURE_FILESYSTEM_ALL
|
||||||
#define CONFIGURE_FILESYSTEM_MINIIMFS
|
|
||||||
#define CONFIGURE_FILESYSTEM_IMFS
|
#define CONFIGURE_FILESYSTEM_IMFS
|
||||||
#define CONFIGURE_FILESYSTEM_DEVFS
|
#define CONFIGURE_FILESYSTEM_DEVFS
|
||||||
#define CONFIGURE_FILESYSTEM_TFTPFS
|
#define CONFIGURE_FILESYSTEM_TFTPFS
|
||||||
@@ -301,13 +291,11 @@ const rtems_libio_helper rtems_fs_init_helper =
|
|||||||
* configured other filesystem parameters.
|
* configured other filesystem parameters.
|
||||||
*/
|
*/
|
||||||
#if defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM)
|
#if defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM)
|
||||||
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM) || \
|
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
|
||||||
defined(CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM)
|
#error "Filesystem disabled and a base filesystem configured."
|
||||||
#error "Filesystem disabled but a base filesystem configured."
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIGURE_FILESYSTEM_MINIIMFS) || \
|
#if defined(CONFIGURE_FILESYSTEM_IMFS) || \
|
||||||
defined(CONFIGURE_FILESYSTEM_IMFS) || \
|
|
||||||
defined(CONFIGURE_FILESYSTEM_DEVFS) || \
|
defined(CONFIGURE_FILESYSTEM_DEVFS) || \
|
||||||
defined(CONFIGURE_FILESYSTEM_TFTPFS) || \
|
defined(CONFIGURE_FILESYSTEM_TFTPFS) || \
|
||||||
defined(CONFIGURE_FILESYSTEM_FTPFS) || \
|
defined(CONFIGURE_FILESYSTEM_FTPFS) || \
|
||||||
@@ -315,9 +303,7 @@ const rtems_libio_helper rtems_fs_init_helper =
|
|||||||
defined(CONFIGURE_FILESYSTEM_DOSFS) || \
|
defined(CONFIGURE_FILESYSTEM_DOSFS) || \
|
||||||
defined(CONFIGURE_FILESYSTEM_RFS) || \
|
defined(CONFIGURE_FILESYSTEM_RFS) || \
|
||||||
defined(CONFIGURE_FILESYSTEM_JFFS2)
|
defined(CONFIGURE_FILESYSTEM_JFFS2)
|
||||||
#error "Configured filesystems but root filesystem was not IMFS!"
|
#error "Filesystem disabled and a filesystem configured."
|
||||||
#error "Filesystems could be disabled, DEVFS is root, or"
|
|
||||||
#error " miniIMFS is root!"
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -328,10 +314,6 @@ const rtems_libio_helper rtems_fs_init_helper =
|
|||||||
#if !defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM)
|
#if !defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM)
|
||||||
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
|
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
|
||||||
#define CONFIGURE_FILESYSTEM_DEVFS
|
#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
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -354,31 +336,15 @@ const rtems_libio_helper rtems_fs_init_helper =
|
|||||||
IMFS_MEMFILE_DEFAULT_BYTES_PER_BLOCK
|
IMFS_MEMFILE_DEFAULT_BYTES_PER_BLOCK
|
||||||
#endif
|
#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.
|
* This defines the IMFS file system table entry.
|
||||||
*/
|
*/
|
||||||
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_IMFS) && \
|
#if !defined(CONFIGURE_FILESYSTEM_ENTRY_IMFS) && \
|
||||||
defined(CONFIGURE_FILESYSTEM_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 \
|
#define CONFIGURE_FILESYSTEM_ENTRY_IMFS \
|
||||||
{ RTEMS_FILESYSTEM_TYPE_IMFS, IMFS_initialize }
|
{ RTEMS_FILESYSTEM_TYPE_IMFS, IMFS_initialize }
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DEVFS
|
* DEVFS
|
||||||
@@ -506,28 +472,27 @@ const rtems_libio_helper rtems_fs_init_helper =
|
|||||||
#include <rtems/devfs.h>
|
#include <rtems/devfs.h>
|
||||||
#endif
|
#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.
|
* Table termination record.
|
||||||
*/
|
*/
|
||||||
#define CONFIGURE_FILESYSTEM_NULL { NULL, NULL }
|
#define CONFIGURE_FILESYSTEM_NULL { NULL, NULL }
|
||||||
|
|
||||||
#ifndef RTEMS_SCHEDSIM
|
#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
|
* The default file system table. Must be terminated with the NULL entry if
|
||||||
* you provide your own.
|
* 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[] = {
|
const rtems_filesystem_table_t rtems_filesystem_table[] = {
|
||||||
#if defined(CONFIGURE_FILESYSTEM_MINIIMFS) && \
|
#if !defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
|
||||||
defined(CONFIGURE_FILESYSTEM_ENTRY_miniIMFS)
|
{ "/", IMFS_initialize_support },
|
||||||
CONFIGURE_FILESYSTEM_ENTRY_miniIMFS,
|
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIGURE_FILESYSTEM_IMFS) && \
|
#if defined(CONFIGURE_FILESYSTEM_IMFS) && \
|
||||||
defined(CONFIGURE_FILESYSTEM_ENTRY_IMFS)
|
defined(CONFIGURE_FILESYSTEM_ENTRY_IMFS)
|
||||||
@@ -565,30 +530,115 @@ const rtems_libio_helper rtems_fs_init_helper =
|
|||||||
};
|
};
|
||||||
#endif
|
#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)
|
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
|
||||||
static devFS_node devFS_root_filesystem_nodes [CONFIGURE_MAXIMUM_DEVICES];
|
static devFS_node devFS_root_filesystem_nodes [CONFIGURE_MAXIMUM_DEVICES];
|
||||||
static const devFS_data devFS_root_filesystem_data = {
|
static const devFS_data devFS_root_filesystem_data = {
|
||||||
devFS_root_filesystem_nodes,
|
devFS_root_filesystem_nodes,
|
||||||
CONFIGURE_MAXIMUM_DEVICES
|
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
|
#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
|
const rtems_filesystem_mount_configuration
|
||||||
rtems_filesystem_root_configuration = {
|
rtems_filesystem_root_configuration = {
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
|
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
|
||||||
RTEMS_FILESYSTEM_TYPE_DEVFS,
|
RTEMS_FILESYSTEM_TYPE_DEVFS,
|
||||||
#elif defined(CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM)
|
|
||||||
RTEMS_FILESYSTEM_TYPE_MINIIMFS,
|
|
||||||
#else
|
#else
|
||||||
RTEMS_FILESYSTEM_TYPE_IMFS,
|
"/",
|
||||||
#endif
|
#endif
|
||||||
RTEMS_FILESYSTEM_READ_WRITE,
|
RTEMS_FILESYSTEM_READ_WRITE,
|
||||||
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
|
#if defined(CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM)
|
||||||
&devFS_root_filesystem_data
|
&devFS_root_filesystem_data
|
||||||
#else
|
#else
|
||||||
NULL
|
&_Configure_IMFS_mount_data
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
320
doc/user/conf.t
320
doc/user/conf.t
@@ -2576,40 +2576,6 @@ The number of entries in this table is in an integer variable named
|
|||||||
None.
|
None.
|
||||||
@c XXX - Please provide an example
|
@c XXX - Please provide an example
|
||||||
|
|
||||||
@c
|
|
||||||
@c === CONFIGURE_USE_MINIIMFS_AS_BASE_SYSTEM ===
|
|
||||||
@c
|
|
||||||
@subsection Configure miniIMFS as Root File System
|
|
||||||
|
|
||||||
@findex CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
|
|
||||||
|
|
||||||
@table @b
|
|
||||||
@item CONSTANT:
|
|
||||||
@code{CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM}
|
|
||||||
|
|
||||||
@item DATA TYPE:
|
|
||||||
Boolean feature macro.
|
|
||||||
|
|
||||||
@item RANGE:
|
|
||||||
Defined or undefined.
|
|
||||||
|
|
||||||
@item DEFAULT VALUE:
|
|
||||||
This is not defined by default. If no other root file system
|
|
||||||
configuration parameters are specified, the IMFS will be used as the
|
|
||||||
root file system.
|
|
||||||
|
|
||||||
@end table
|
|
||||||
|
|
||||||
@subheading DESCRIPTION:
|
|
||||||
This configuration parameter is defined if the application wishes to use
|
|
||||||
the reduced functionality miniIMFS as the root filesystem. This reduced
|
|
||||||
version of the full IMFS does not include the capability to mount other
|
|
||||||
file system types, but it does support directories, device nodes, and
|
|
||||||
symbolic links.
|
|
||||||
|
|
||||||
@subheading NOTES:
|
|
||||||
The miniIMFS nodes and is smaller in executable code size than the full IMFS.
|
|
||||||
|
|
||||||
@c
|
@c
|
||||||
@c === CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM ===
|
@c === CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM ===
|
||||||
@c
|
@c
|
||||||
@@ -2710,6 +2676,292 @@ infrastructure necessary to support @code{printf()}.
|
|||||||
@subheading NOTES:
|
@subheading NOTES:
|
||||||
None.
|
None.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_CHOWN ===
|
||||||
|
@c
|
||||||
|
@subsection Disable change owner support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_CHOWN
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_CHOWN}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to change the
|
||||||
|
owner is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_FCHMOD ===
|
||||||
|
@c
|
||||||
|
@subsection Disable change mode support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_FCHMOD
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_FCHMOD}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to change the
|
||||||
|
mode is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_UTIME ===
|
||||||
|
@c
|
||||||
|
@subsection Disable change times support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_UTIME
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_UTIME}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to change times
|
||||||
|
is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_LINK ===
|
||||||
|
@c
|
||||||
|
@subsection Disable create hard link support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_LINK
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_LINK}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to create hard
|
||||||
|
links is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_SYMLINK ===
|
||||||
|
@c
|
||||||
|
@subsection Disable create symbolic link support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_SYMLINK
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_SYMLINK}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to create
|
||||||
|
symbolic links is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_READLINK ===
|
||||||
|
@c
|
||||||
|
@subsection Disable read symbolic link support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_READLINK
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_READLINK}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to read symbolic
|
||||||
|
links is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_RENAME ===
|
||||||
|
@c
|
||||||
|
@subsection Disable rename support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_RENAME
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_RENAME}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to rename nodes
|
||||||
|
is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_MOUNT ===
|
||||||
|
@c
|
||||||
|
@subsection Disable mount support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_MOUNT
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_MOUNT}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to mount other
|
||||||
|
file systems is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_UNMOUNT ===
|
||||||
|
@c
|
||||||
|
@subsection Disable unmount support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_UNMOUNT
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_UNMOUNT}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to unmount file
|
||||||
|
systems is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_MKNOD ===
|
||||||
|
@c
|
||||||
|
@subsection Disable make nodes support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_MKNOD
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_MKNOD}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to make
|
||||||
|
directories, devices, regular files and FIFOs is disabled in the root IMFS.
|
||||||
|
|
||||||
|
@c
|
||||||
|
@c === CONFIGURE_IMFS_DISABLE_RMNOD ===
|
||||||
|
@c
|
||||||
|
@subsection Disable remove nodes support of root IMFS
|
||||||
|
|
||||||
|
@findex CONFIGURE_IMFS_DISABLE_RMNOD
|
||||||
|
|
||||||
|
@table @b
|
||||||
|
@item CONSTANT:
|
||||||
|
@code{CONFIGURE_IMFS_DISABLE_RMNOD}
|
||||||
|
|
||||||
|
@item DATA TYPE:
|
||||||
|
Boolean feature macro.
|
||||||
|
|
||||||
|
@item RANGE:
|
||||||
|
Defined or undefined.
|
||||||
|
|
||||||
|
@item DEFAULT VALUE:
|
||||||
|
This is not defined by default.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subheading DESCRIPTION:
|
||||||
|
In case this configuration option is defined, then the support to remove nodes
|
||||||
|
is disabled in the root IMFS.
|
||||||
|
|
||||||
@c
|
@c
|
||||||
@c === Block Device Cache Configuration ===
|
@c === Block Device Cache Configuration ===
|
||||||
@c
|
@c
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
ACLOCAL_AMFLAGS = -I ../aclocal
|
ACLOCAL_AMFLAGS = -I ../aclocal
|
||||||
|
|
||||||
_SUBDIRS =
|
_SUBDIRS =
|
||||||
|
_SUBDIRS += fsimfsconfig02
|
||||||
|
_SUBDIRS += fsimfsconfig01
|
||||||
_SUBDIRS += fsdosfsname01
|
_SUBDIRS += fsdosfsname01
|
||||||
_SUBDIRS += fsdosfswrite01
|
_SUBDIRS += fsdosfswrite01
|
||||||
_SUBDIRS += fsdosfsformat01
|
_SUBDIRS += fsdosfsformat01
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ AC_CHECK_SIZEOF([blkcnt_t])
|
|||||||
|
|
||||||
# Explicitly list all Makefiles here
|
# Explicitly list all Makefiles here
|
||||||
AC_CONFIG_FILES([Makefile
|
AC_CONFIG_FILES([Makefile
|
||||||
|
fsimfsconfig02/Makefile
|
||||||
|
fsimfsconfig01/Makefile
|
||||||
fsdosfsname01/Makefile
|
fsdosfsname01/Makefile
|
||||||
fsdosfswrite01/Makefile
|
fsdosfswrite01/Makefile
|
||||||
fsdosfsformat01/Makefile
|
fsdosfsformat01/Makefile
|
||||||
|
|||||||
19
testsuites/fstests/fsimfsconfig01/Makefile.am
Normal file
19
testsuites/fstests/fsimfsconfig01/Makefile.am
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
rtems_tests_PROGRAMS = fsimfsconfig01
|
||||||
|
fsimfsconfig01_SOURCES = init.c
|
||||||
|
|
||||||
|
dist_rtems_tests_DATA = fsimfsconfig01.scn fsimfsconfig01.doc
|
||||||
|
|
||||||
|
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||||
|
include $(top_srcdir)/../automake/compile.am
|
||||||
|
include $(top_srcdir)/../automake/leaf.am
|
||||||
|
|
||||||
|
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
||||||
|
|
||||||
|
LINK_OBJS = $(fsimfsconfig01_OBJECTS)
|
||||||
|
LINK_LIBS = $(fsimfsconfig01_LDLIBS)
|
||||||
|
|
||||||
|
fsimfsconfig01$(EXEEXT): $(fsimfsconfig01_OBJECTS) $(fsimfsconfig01_DEPENDENCIES)
|
||||||
|
@rm -f fsimfsconfig01$(EXEEXT)
|
||||||
|
$(make-exe)
|
||||||
|
|
||||||
|
include $(top_srcdir)/../automake/local.am
|
||||||
11
testsuites/fstests/fsimfsconfig01/fsimfsconfig01.doc
Normal file
11
testsuites/fstests/fsimfsconfig01/fsimfsconfig01.doc
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
This file describes the directives and concepts tested by this test set.
|
||||||
|
|
||||||
|
test set name: fsimfsconfig01
|
||||||
|
|
||||||
|
directives:
|
||||||
|
|
||||||
|
TBD
|
||||||
|
|
||||||
|
concepts:
|
||||||
|
|
||||||
|
- Ensure that the IMFS configuration defines work.
|
||||||
2
testsuites/fstests/fsimfsconfig01/fsimfsconfig01.scn
Normal file
2
testsuites/fstests/fsimfsconfig01/fsimfsconfig01.scn
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*** BEGIN OF TEST FSIMFSCONFIG 1 ***
|
||||||
|
*** END OF TEST FSIMFSCONFIG 1 ***
|
||||||
139
testsuites/fstests/fsimfsconfig01/init.c
Normal file
139
testsuites/fstests/fsimfsconfig01/init.c
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015 embedded brains GmbH. All rights reserved.
|
||||||
|
*
|
||||||
|
* embedded brains GmbH
|
||||||
|
* Dornierstr. 4
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "tmacros.h"
|
||||||
|
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <utime.h>
|
||||||
|
|
||||||
|
#include <rtems/imfs.h>
|
||||||
|
#include <rtems/libio.h>
|
||||||
|
|
||||||
|
const char rtems_test_name[] = "FSIMFSCONFIG 1";
|
||||||
|
|
||||||
|
static const IMFS_node_control node_control = IMFS_GENERIC_INITIALIZER(
|
||||||
|
&rtems_filesystem_handlers_default,
|
||||||
|
IMFS_node_initialize_generic,
|
||||||
|
IMFS_node_destroy_default
|
||||||
|
);
|
||||||
|
|
||||||
|
static void Init(rtems_task_argument arg)
|
||||||
|
{
|
||||||
|
struct utimbuf times;
|
||||||
|
const char *generic = "generic";
|
||||||
|
const char *mnt = "mnt";
|
||||||
|
int rv;
|
||||||
|
|
||||||
|
TEST_BEGIN();
|
||||||
|
|
||||||
|
rv = IMFS_make_generic_node(
|
||||||
|
generic,
|
||||||
|
S_IFCHR | S_IRWXU | S_IRWXG | S_IRWXO,
|
||||||
|
&node_control,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
rtems_test_assert(rv == 0);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = chown(generic, 0, 0);
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = chmod(generic, 0);
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = link(generic, "link");
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
rv = mkdir(mnt, S_IRWXU);
|
||||||
|
rtems_test_assert(rv == 0);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = mount(
|
||||||
|
"",
|
||||||
|
mnt,
|
||||||
|
RTEMS_FILESYSTEM_TYPE_IMFS,
|
||||||
|
RTEMS_FILESYSTEM_READ_ONLY,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = rename(generic, "new");
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = unlink(generic);
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = symlink(generic, "link");
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = utime(generic, ×);
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
TEST_END();
|
||||||
|
rtems_test_exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
|
||||||
|
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
||||||
|
|
||||||
|
#define CONFIGURE_FILESYSTEM_IMFS
|
||||||
|
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_CHOWN
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_FCHMOD
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_LINK
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/*
|
||||||
|
* This would lead to a fatal error since rtems_filesystem_initialize() creates
|
||||||
|
* a "/dev" directory.
|
||||||
|
*/
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_MKNOD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_MOUNT
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_RENAME
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_RMNOD
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_SYMLINK
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_UTIME
|
||||||
|
|
||||||
|
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||||
|
|
||||||
|
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||||
|
|
||||||
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
|
|
||||||
|
#define CONFIGURE_INIT
|
||||||
|
|
||||||
|
#include <rtems/confdefs.h>
|
||||||
19
testsuites/fstests/fsimfsconfig02/Makefile.am
Normal file
19
testsuites/fstests/fsimfsconfig02/Makefile.am
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
rtems_tests_PROGRAMS = fsimfsconfig02
|
||||||
|
fsimfsconfig02_SOURCES = init.c
|
||||||
|
|
||||||
|
dist_rtems_tests_DATA = fsimfsconfig02.scn fsimfsconfig02.doc
|
||||||
|
|
||||||
|
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||||
|
include $(top_srcdir)/../automake/compile.am
|
||||||
|
include $(top_srcdir)/../automake/leaf.am
|
||||||
|
|
||||||
|
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
||||||
|
|
||||||
|
LINK_OBJS = $(fsimfsconfig02_OBJECTS)
|
||||||
|
LINK_LIBS = $(fsimfsconfig02_LDLIBS)
|
||||||
|
|
||||||
|
fsimfsconfig02$(EXEEXT): $(fsimfsconfig02_OBJECTS) $(fsimfsconfig02_DEPENDENCIES)
|
||||||
|
@rm -f fsimfsconfig02$(EXEEXT)
|
||||||
|
$(make-exe)
|
||||||
|
|
||||||
|
include $(top_srcdir)/../automake/local.am
|
||||||
11
testsuites/fstests/fsimfsconfig02/fsimfsconfig02.doc
Normal file
11
testsuites/fstests/fsimfsconfig02/fsimfsconfig02.doc
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
This file describes the directives and concepts tested by this test set.
|
||||||
|
|
||||||
|
test set name: fsimfsconfig02
|
||||||
|
|
||||||
|
directives:
|
||||||
|
|
||||||
|
TBD
|
||||||
|
|
||||||
|
concepts:
|
||||||
|
|
||||||
|
- Ensure that the IMFS configuration defines work.
|
||||||
2
testsuites/fstests/fsimfsconfig02/fsimfsconfig02.scn
Normal file
2
testsuites/fstests/fsimfsconfig02/fsimfsconfig02.scn
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*** BEGIN OF TEST FSIMFSCONFIG 2 ***
|
||||||
|
*** END OF TEST FSIMFSCONFIG 2 ***
|
||||||
84
testsuites/fstests/fsimfsconfig02/init.c
Normal file
84
testsuites/fstests/fsimfsconfig02/init.c
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015 embedded brains GmbH. All rights reserved.
|
||||||
|
*
|
||||||
|
* embedded brains GmbH
|
||||||
|
* Dornierstr. 4
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "tmacros.h"
|
||||||
|
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <rtems/imfs.h>
|
||||||
|
#include <rtems/libio.h>
|
||||||
|
|
||||||
|
const char rtems_test_name[] = "FSIMFSCONFIG 2";
|
||||||
|
|
||||||
|
static void Init(rtems_task_argument arg)
|
||||||
|
{
|
||||||
|
const char *mnt = "mnt";
|
||||||
|
const char *link = "link";
|
||||||
|
char buf[1];
|
||||||
|
int rv;
|
||||||
|
|
||||||
|
TEST_BEGIN();
|
||||||
|
|
||||||
|
rv = mkdir(mnt, S_IRWXU);
|
||||||
|
rtems_test_assert(rv == 0);
|
||||||
|
|
||||||
|
rv = mount(
|
||||||
|
"",
|
||||||
|
mnt,
|
||||||
|
RTEMS_FILESYSTEM_TYPE_IMFS,
|
||||||
|
RTEMS_FILESYSTEM_READ_ONLY,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
rtems_test_assert(rv == 0);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = unmount(mnt);
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
rv = symlink(mnt, link);
|
||||||
|
rtems_test_assert(rv == 0);
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
rv = readlink(link, &buf[0], sizeof(buf));
|
||||||
|
rtems_test_assert(rv == -1);
|
||||||
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
|
|
||||||
|
TEST_END();
|
||||||
|
rtems_test_exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
|
||||||
|
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
||||||
|
|
||||||
|
#define CONFIGURE_FILESYSTEM_IMFS
|
||||||
|
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_READLINK
|
||||||
|
#define CONFIGURE_IMFS_DISABLE_UNMOUNT
|
||||||
|
|
||||||
|
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||||
|
|
||||||
|
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||||
|
|
||||||
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
|
|
||||||
|
#define CONFIGURE_INIT
|
||||||
|
|
||||||
|
#include <rtems/confdefs.h>
|
||||||
@@ -396,6 +396,13 @@ static const IMFS_node_control node_initialization_error_control = {
|
|||||||
.node_destroy = node_destroy_inhibited
|
.node_destroy = node_destroy_inhibited
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const rtems_filesystem_operations_table *imfs_ops;
|
||||||
|
|
||||||
|
static int other_clone(rtems_filesystem_location_info_t *loc)
|
||||||
|
{
|
||||||
|
return (*imfs_ops->clonenod_h)(loc);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_imfs_make_generic_node_errors(void)
|
static void test_imfs_make_generic_node_errors(void)
|
||||||
{
|
{
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
@@ -403,7 +410,7 @@ static void test_imfs_make_generic_node_errors(void)
|
|||||||
rtems_chain_control *chain = &rtems_filesystem_mount_table;
|
rtems_chain_control *chain = &rtems_filesystem_mount_table;
|
||||||
rtems_filesystem_mount_table_entry_t *mt_entry =
|
rtems_filesystem_mount_table_entry_t *mt_entry =
|
||||||
(rtems_filesystem_mount_table_entry_t *) rtems_chain_first(chain);
|
(rtems_filesystem_mount_table_entry_t *) rtems_chain_first(chain);
|
||||||
const char *type = mt_entry->type;
|
rtems_filesystem_operations_table other_ops;
|
||||||
void *opaque = NULL;
|
void *opaque = NULL;
|
||||||
rtems_resource_snapshot before;
|
rtems_resource_snapshot before;
|
||||||
|
|
||||||
@@ -421,14 +428,17 @@ static void test_imfs_make_generic_node_errors(void)
|
|||||||
rtems_test_assert(rtems_resource_snapshot_check(&before));
|
rtems_test_assert(rtems_resource_snapshot_check(&before));
|
||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
mt_entry->type = "XXX";
|
imfs_ops = mt_entry->ops;
|
||||||
|
other_ops = *imfs_ops;
|
||||||
|
other_ops.clonenod_h = other_clone;
|
||||||
|
mt_entry->ops = &other_ops;
|
||||||
rv = IMFS_make_generic_node(
|
rv = IMFS_make_generic_node(
|
||||||
path,
|
path,
|
||||||
S_IFCHR | S_IRWXU | S_IRWXG | S_IRWXO,
|
S_IFCHR | S_IRWXU | S_IRWXG | S_IRWXO,
|
||||||
&node_control,
|
&node_control,
|
||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
mt_entry->type = type;
|
mt_entry->ops = imfs_ops;
|
||||||
rtems_test_assert(rv == -1);
|
rtems_test_assert(rv == -1);
|
||||||
rtems_test_assert(errno == ENOTSUP);
|
rtems_test_assert(errno == ENOTSUP);
|
||||||
rtems_test_assert(rtems_resource_snapshot_check(&before));
|
rtems_test_assert(rtems_resource_snapshot_check(&before));
|
||||||
|
|||||||
@@ -64,5 +64,7 @@ test_shutdown_filesystem (void)
|
|||||||
#define CONFIGURE_INIT_TASK_STACK_SIZE (16 * 1024)
|
#define CONFIGURE_INIT_TASK_STACK_SIZE (16 * 1024)
|
||||||
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS 1
|
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS 1
|
||||||
|
|
||||||
|
#define CONFIGURE_FILESYSTEM_IMFS
|
||||||
|
|
||||||
#define CONFIGURE_INIT
|
#define CONFIGURE_INIT
|
||||||
#include <rtems/confdefs.h>
|
#include <rtems/confdefs.h>
|
||||||
|
|||||||
@@ -34,13 +34,6 @@ void test_tarfs_error(void)
|
|||||||
printf ("error: untar failed returned %d\n", sc);
|
printf ("error: untar failed returned %d\n", sc);
|
||||||
rtems_test_exit(1);
|
rtems_test_exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
puts("Loading tarfs image with miniIMFS as root filesystem - ERROR");
|
|
||||||
sc = rtems_tarfs_load("/",(void *)rtems_task_create, 72);
|
|
||||||
if (sc != -1) {
|
|
||||||
printf ("error: untar failed returned %d\n", sc);
|
|
||||||
rtems_test_exit(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rtems_task Init(
|
rtems_task Init(
|
||||||
@@ -65,8 +58,6 @@ rtems_task Init(
|
|||||||
|
|
||||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
|
|
||||||
#define CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
|
|
||||||
|
|
||||||
#define CONFIGURE_INIT
|
#define CONFIGURE_INIT
|
||||||
#include <rtems/confdefs.h>
|
#include <rtems/confdefs.h>
|
||||||
/* end of file */
|
/* end of file */
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ rtems_task Init(
|
|||||||
|
|
||||||
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
|
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
|
||||||
|
|
||||||
|
#define CONFIGURE_FILESYSTEM_IMFS
|
||||||
|
|
||||||
#define CONFIGURE_MAXIMUM_TASKS 1
|
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||||
#define CONFIGURE_INIT_TASK_STACK_SIZE (2 * RTEMS_MINIMUM_STACK_SIZE)
|
#define CONFIGURE_INIT_TASK_STACK_SIZE (2 * RTEMS_MINIMUM_STACK_SIZE)
|
||||||
|
|
||||||
|
|||||||
@@ -208,6 +208,8 @@ rtems_task Init(
|
|||||||
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
||||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||||
|
|
||||||
|
#define CONFIGURE_FILESYSTEM_IMFS
|
||||||
|
|
||||||
#define CONFIGURE_MAXIMUM_TASKS 1
|
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||||
#define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK 15
|
#define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK 15
|
||||||
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4
|
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ rtems_task Init(
|
|||||||
|
|
||||||
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 10
|
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 10
|
||||||
|
|
||||||
|
#define CONFIGURE_FILESYSTEM_IMFS
|
||||||
|
|
||||||
#define CONFIGURE_MAXIMUM_TASKS 1
|
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||||
|
|
||||||
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS 1
|
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS 1
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ rtems_task Init(
|
|||||||
|
|
||||||
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 10
|
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 10
|
||||||
|
|
||||||
|
#define CONFIGURE_FILESYSTEM_IMFS
|
||||||
|
|
||||||
#define CONFIGURE_MAXIMUM_TASKS 1
|
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||||
|
|
||||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ rtems_task Init(
|
|||||||
|
|
||||||
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 10
|
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 10
|
||||||
|
|
||||||
|
#define CONFIGURE_FILESYSTEM_IMFS
|
||||||
|
|
||||||
#define CONFIGURE_MAXIMUM_TASKS 1
|
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||||
|
|
||||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||||
|
|||||||
@@ -31,9 +31,6 @@
|
|||||||
#define CONFIGURE_INIT_TASK_STACK_SIZE (RTEMS_MINIMUM_STACK_SIZE * 2)
|
#define CONFIGURE_INIT_TASK_STACK_SIZE (RTEMS_MINIMUM_STACK_SIZE * 2)
|
||||||
#define CONFIGURE_EXTRA_TASK_STACKS RTEMS_MINIMUM_STACK_SIZE
|
#define CONFIGURE_EXTRA_TASK_STACKS RTEMS_MINIMUM_STACK_SIZE
|
||||||
|
|
||||||
/* Only remove when this macro is removed from confdefs.h. It tests it. */
|
|
||||||
#define CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
|
|
||||||
|
|
||||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||||
|
|
||||||
#include <rtems/confdefs.h>
|
#include <rtems/confdefs.h>
|
||||||
|
|||||||
@@ -74,7 +74,5 @@ rtems_task Init(rtems_task_argument ignored)
|
|||||||
|
|
||||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
|
|
||||||
#define CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
|
|
||||||
|
|
||||||
#define CONFIGURE_INIT
|
#define CONFIGURE_INIT
|
||||||
#include <rtems/confdefs.h>
|
#include <rtems/confdefs.h>
|
||||||
|
|||||||
@@ -102,7 +102,5 @@ rtems_task Init(rtems_task_argument ignored)
|
|||||||
|
|
||||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
|
|
||||||
#define CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
|
|
||||||
|
|
||||||
#define CONFIGURE_INIT
|
#define CONFIGURE_INIT
|
||||||
#include <rtems/confdefs.h>
|
#include <rtems/confdefs.h>
|
||||||
|
|||||||
Reference in New Issue
Block a user