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:
Sebastian Huber
2015-02-08 19:43:09 +01:00
parent a2f5c7e1a7
commit a9df916988
31 changed files with 728 additions and 306 deletions

View File

@@ -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>

View File

@@ -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

View File

@@ -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 );
}

View File

@@ -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;
}
/** @} */ /** @} */

View File

@@ -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,

View File

@@ -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;
} }

View File

@@ -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,

View File

@@ -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 );
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View 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.

View File

@@ -0,0 +1,2 @@
*** BEGIN OF TEST FSIMFSCONFIG 1 ***
*** END OF TEST FSIMFSCONFIG 1 ***

View 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, &times);
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>

View 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

View 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.

View File

@@ -0,0 +1,2 @@
*** BEGIN OF TEST FSIMFSCONFIG 2 ***
*** END OF TEST FSIMFSCONFIG 2 ***

View 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>

View File

@@ -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));

View File

@@ -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>

View File

@@ -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 */

View 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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>