diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-06-08 10:25:46 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-06-08 10:25:46 +0000 |
commit | 241f4c96378ff3ca0ad811290c1dac49b571d1cc (patch) | |
tree | 5c6c0298594abcbe1c626bbd44c2ed1e74f3ffdc /cpukit/libfs/src/imfs | |
parent | 2010-06-08 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-241f4c96378ff3ca0ad811290c1dac49b571d1cc.tar.bz2 |
2010-06-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libfs/src/imfs/fifoimfs_init.c: New file.
* libfs/Makefile.am: Reflect change above.
* libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_eval.c,
libfs/src/imfs/imfs_init.c, libfs/src/imfs/imfs_initsupp.c,
libfs/src/imfs/miniimfs_init.c, libfs/src/pipe/fifo.c,
libfs/src/pipe/pipe.c, libfs/src/pipe/pipe.h: Pipe support is now
link-time optional.
* sapi/include/confdefs.h: Reflect changes above.
Diffstat (limited to 'cpukit/libfs/src/imfs')
-rw-r--r-- | cpukit/libfs/src/imfs/fifoimfs_init.c | 61 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs.h | 10 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_eval.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_init.c | 83 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_initsupp.c | 7 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/miniimfs_init.c | 83 |
6 files changed, 145 insertions, 101 deletions
diff --git a/cpukit/libfs/src/imfs/fifoimfs_init.c b/cpukit/libfs/src/imfs/fifoimfs_init.c new file mode 100644 index 0000000000..1104bbb629 --- /dev/null +++ b/cpukit/libfs/src/imfs/fifoimfs_init.c @@ -0,0 +1,61 @@ +/** + * @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.com/license/LICENSE. + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include "imfs.h" + +static const rtems_filesystem_operations_table fifoIMFS_ops = { + .evalpath_h = IMFS_eval_path, + .evalformake_h = IMFS_evaluate_for_make, + .link_h = IMFS_link, + .unlink_h = IMFS_unlink, + .node_type_h = IMFS_node_type, + .mknod_h = IMFS_mknod, + .chown_h = IMFS_chown, + .freenod_h = IMFS_freenodinfo, + .mount_h = IMFS_mount, + .fsmount_me_h = fifoIMFS_initialize, + .unmount_h = IMFS_unmount, + .fsunmount_me_h = IMFS_fsunmount, + .utime_h = IMFS_utime, + .eval_link_h = IMFS_evaluate_link, + .symlink_h = IMFS_symlink, + .readlink_h = IMFS_readlink, + .rename_h = IMFS_rename, + .statvfs_h = NULL +}; + +int fifoIMFS_initialize( + rtems_filesystem_mount_table_entry_t *mt_entry, + const void *data +) +{ + return IMFS_initialize_support( + mt_entry, + &fifoIMFS_ops, + &IMFS_memfile_handlers, + &IMFS_directory_handlers, + &IMFS_fifo_handlers + ); +} diff --git a/cpukit/libfs/src/imfs/imfs.h b/cpukit/libfs/src/imfs/imfs.h index b68c795fd3..148889efd9 100644 --- a/cpukit/libfs/src/imfs/imfs.h +++ b/cpukit/libfs/src/imfs/imfs.h @@ -223,6 +223,7 @@ typedef struct { ino_t ino_count; const rtems_filesystem_file_handlers_r *memfile_handlers; const rtems_filesystem_file_handlers_r *directory_handlers; + const rtems_filesystem_file_handlers_r *fifo_handlers; } IMFS_fs_info_t; /* @@ -247,7 +248,6 @@ extern const rtems_filesystem_file_handlers_r IMFS_link_handlers; extern const rtems_filesystem_file_handlers_r IMFS_memfile_handlers; extern const rtems_filesystem_file_handlers_r IMFS_fifo_handlers; extern const rtems_filesystem_operations_table IMFS_ops; -extern const rtems_filesystem_operations_table miniIMFS_ops; extern const rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS; /* @@ -259,6 +259,11 @@ extern int IMFS_initialize( const void *data ); +extern int fifoIMFS_initialize( + rtems_filesystem_mount_table_entry_t *mt_entry, + const void *data +); + extern int miniIMFS_initialize( rtems_filesystem_mount_table_entry_t *mt_entry, const void *data @@ -268,7 +273,8 @@ extern int IMFS_initialize_support( rtems_filesystem_mount_table_entry_t *mt_entry, const rtems_filesystem_operations_table *op_table, const rtems_filesystem_file_handlers_r *memfile_handlers, - const rtems_filesystem_file_handlers_r *directory_handlers + const rtems_filesystem_file_handlers_r *directory_handlers, + const rtems_filesystem_file_handlers_r *fifo_handlers ); extern int IMFS_fsunmount( diff --git a/cpukit/libfs/src/imfs/imfs_eval.c b/cpukit/libfs/src/imfs/imfs_eval.c index b282e7c9a4..d6bf8f8faa 100644 --- a/cpukit/libfs/src/imfs/imfs_eval.c +++ b/cpukit/libfs/src/imfs/imfs_eval.c @@ -58,7 +58,7 @@ int IMFS_Set_handlers( loc->handlers = fs_info->memfile_handlers; break; case IMFS_FIFO: - loc->handlers = &IMFS_fifo_handlers; + loc->handlers = fs_info->fifo_handlers; break; } diff --git a/cpukit/libfs/src/imfs/imfs_init.c b/cpukit/libfs/src/imfs/imfs_init.c index c7e6069d35..ebb00278d5 100644 --- a/cpukit/libfs/src/imfs/imfs_init.c +++ b/cpukit/libfs/src/imfs/imfs_init.c @@ -1,6 +1,12 @@ -/* - * IMFS Initialization +/** + * @file + * + * @ingroup LibFSIMFS * + * @brief IMFS initialization. + */ + +/* * COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * @@ -15,58 +21,41 @@ #include "config.h" #endif -#include <sys/types.h> /* for mkdir */ -#include <fcntl.h> -#include <unistd.h> -#include <stdlib.h> - -#include <assert.h> - -#include "imfs.h" #include <rtems/libio_.h> -#if defined(IMFS_DEBUG) -#include <stdio.h> -#endif - -/* - * IMFS file system operations table - */ +#include "imfs.h" -const rtems_filesystem_operations_table IMFS_ops = { - IMFS_eval_path, - IMFS_evaluate_for_make, - IMFS_link, - IMFS_unlink, - IMFS_node_type, - IMFS_mknod, - IMFS_chown, - IMFS_freenodinfo, - IMFS_mount, - IMFS_initialize, - IMFS_unmount, - IMFS_fsunmount, - IMFS_utime, - IMFS_evaluate_link, - IMFS_symlink, - IMFS_readlink, - IMFS_rename, - NULL +const rtems_filesystem_operations_table IMFS_ops = { + .evalpath_h = IMFS_eval_path, + .evalformake_h = IMFS_evaluate_for_make, + .link_h = IMFS_link, + .unlink_h = IMFS_unlink, + .node_type_h = IMFS_node_type, + .mknod_h = IMFS_mknod, + .chown_h = IMFS_chown, + .freenod_h = IMFS_freenodinfo, + .mount_h = IMFS_mount, + .fsmount_me_h = IMFS_initialize, + .unmount_h = IMFS_unmount, + .fsunmount_me_h = IMFS_fsunmount, + .utime_h = IMFS_utime, + .eval_link_h = IMFS_evaluate_link, + .symlink_h = IMFS_symlink, + .readlink_h = IMFS_readlink, + .rename_h = IMFS_rename, + .statvfs_h = NULL }; -/* - * IMFS_initialize - */ - int IMFS_initialize( - rtems_filesystem_mount_table_entry_t *temp_mt_entry, + rtems_filesystem_mount_table_entry_t *mt_entry, const void *data ) { - return IMFS_initialize_support( - temp_mt_entry, - &IMFS_ops, - &IMFS_memfile_handlers, - &IMFS_directory_handlers - ); + return IMFS_initialize_support( + mt_entry, + &IMFS_ops, + &IMFS_memfile_handlers, + &IMFS_directory_handlers, + &rtems_filesystem_null_handlers /* for fifos */ + ); } diff --git a/cpukit/libfs/src/imfs/imfs_initsupp.c b/cpukit/libfs/src/imfs/imfs_initsupp.c index 1bfaf2de8c..519bfd9c18 100644 --- a/cpukit/libfs/src/imfs/imfs_initsupp.c +++ b/cpukit/libfs/src/imfs/imfs_initsupp.c @@ -66,7 +66,8 @@ int IMFS_initialize_support( rtems_filesystem_mount_table_entry_t *temp_mt_entry, const rtems_filesystem_operations_table *op_table, const rtems_filesystem_file_handlers_r *memfile_handlers, - const rtems_filesystem_file_handlers_r *directory_handlers + const rtems_filesystem_file_handlers_r *directory_handlers, + const rtems_filesystem_file_handlers_r *fifo_handlers ) { static int imfs_instance; @@ -108,12 +109,10 @@ int IMFS_initialize_support( fs_info->ino_count = 1; fs_info->memfile_handlers = memfile_handlers; fs_info->directory_handlers = directory_handlers; + fs_info->fifo_handlers = fifo_handlers; jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; - /* Initialize POSIX FIFO/pipe module */ - rtems_pipe_initialize(); - return 0; } diff --git a/cpukit/libfs/src/imfs/miniimfs_init.c b/cpukit/libfs/src/imfs/miniimfs_init.c index 6bad5e29a2..c13a071fa5 100644 --- a/cpukit/libfs/src/imfs/miniimfs_init.c +++ b/cpukit/libfs/src/imfs/miniimfs_init.c @@ -1,6 +1,12 @@ -/* - * Mini-IMFS Initialization +/** + * @file + * + * @ingroup LibFSIMFS * + * @brief Mini-IMFS initialization. + */ + +/* * COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * @@ -15,58 +21,41 @@ #include "config.h" #endif -#include <sys/types.h> /* for mkdir */ -#include <fcntl.h> -#include <unistd.h> -#include <stdlib.h> - -#include <assert.h> - -#include "imfs.h" #include <rtems/libio_.h> -#if defined(IMFS_DEBUG) -#include <stdio.h> -#endif - -/* - * miniIMFS file system operations table - */ +#include "imfs.h" -const rtems_filesystem_operations_table miniIMFS_ops = { - IMFS_eval_path, - IMFS_evaluate_for_make, - NULL, /* XXX IMFS_link, */ - NULL, /* XXX IMFS_unlink, */ - IMFS_node_type, - IMFS_mknod, - NULL, /* XXX IMFS_chown, */ - NULL, /* XXX IMFS_freenodinfo, */ - NULL, /* XXX IMFS_mount, */ - miniIMFS_initialize, - NULL, /* XXX IMFS_unmount, */ - NULL, /* XXX IMFS_fsunmount, */ - NULL, /* XXX IMFS_utime, */ - NULL, /* XXX IMFS_evaluate_link, */ - NULL, /* XXX IMFS_symlink, */ - NULL, /* XXX IMFS_readlink */ - NULL, /* XXX IMFS_rename */ - NULL /* XXX IMFS_statvfs */ +static const rtems_filesystem_operations_table miniIMFS_ops = { + .evalpath_h = IMFS_eval_path, + .evalformake_h = IMFS_evaluate_for_make, + .link_h = NULL, + .unlink_h = NULL, + .node_type_h = IMFS_node_type, + .mknod_h = IMFS_mknod, + .chown_h = NULL, + .freenod_h = NULL, + .mount_h = IMFS_mount, + .fsmount_me_h = miniIMFS_initialize, + .unmount_h = NULL, + .fsunmount_me_h = NULL, + .utime_h = NULL, + .eval_link_h = NULL, + .symlink_h = NULL, + .readlink_h = NULL, + .rename_h = NULL, + .statvfs_h = NULL }; -/* - * miniIMFS_initialize - */ - int miniIMFS_initialize( - rtems_filesystem_mount_table_entry_t *temp_mt_entry, + rtems_filesystem_mount_table_entry_t *mt_entry, const void *data ) { - return IMFS_initialize_support( - temp_mt_entry, - &miniIMFS_ops, - &rtems_filesystem_null_handlers, /* for memfiles */ - &rtems_filesystem_null_handlers /* for directories */ - ); + return IMFS_initialize_support( + mt_entry, + &miniIMFS_ops, + &rtems_filesystem_null_handlers, /* for memfiles */ + &rtems_filesystem_null_handlers, /* for directories */ + &rtems_filesystem_null_handlers /* for fifos */ + ); } |