diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-01-28 18:47:19 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-01-28 18:47:19 +0100 |
commit | 40d062f5cbd9ef8e6fe7432a4e36aad1923e4c21 (patch) | |
tree | eff6a26d7d11442f39717bddfa4d801f9181b916 | |
parent | IMFS: Aggregate link support in dedicated modules (diff) | |
download | rtems-40d062f5cbd9ef8e6fe7432a4e36aad1923e4c21.tar.bz2 |
IMFS: Reduce IMFS node types
Provide only types used by IMFS_mknod().
-rw-r--r-- | cpukit/libfs/src/imfs/fifoimfs_init.c | 3 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs.h | 29 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_creat.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_init.c | 3 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_link.c | 6 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_load_tar.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_make_generic_node.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_mknod.c | 13 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_symlink.c | 6 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/miniimfs_init.c | 3 |
10 files changed, 21 insertions, 48 deletions
diff --git a/cpukit/libfs/src/imfs/fifoimfs_init.c b/cpukit/libfs/src/imfs/fifoimfs_init.c index 81041e9902..206c96b5a0 100644 --- a/cpukit/libfs/src/imfs/fifoimfs_init.c +++ b/cpukit/libfs/src/imfs/fifoimfs_init.c @@ -52,10 +52,7 @@ static const IMFS_node_control *const IMFS_fifo_node_controls [IMFS_TYPE_COUNT] = { [IMFS_DIRECTORY] = &IMFS_node_control_directory, [IMFS_DEVICE] = &IMFS_node_control_device, - [IMFS_HARD_LINK] = &IMFS_node_control_hard_link, - [IMFS_SYM_LINK] = &IMFS_node_control_sym_link, [IMFS_MEMORY_FILE] = &IMFS_node_control_memfile, - [IMFS_LINEAR_FILE] = &IMFS_node_control_linfile, [IMFS_FIFO] = &IMFS_node_control_fifo }; diff --git a/cpukit/libfs/src/imfs/imfs.h b/cpukit/libfs/src/imfs/imfs.h index fe99493530..b8ff29dc70 100644 --- a/cpukit/libfs/src/imfs/imfs.h +++ b/cpukit/libfs/src/imfs/imfs.h @@ -100,10 +100,7 @@ typedef block_p *block_ptr; typedef enum { IMFS_DIRECTORY, IMFS_DEVICE, - IMFS_HARD_LINK, - IMFS_SYM_LINK, IMFS_MEMORY_FILE, - IMFS_LINEAR_FILE, IMFS_FIFO } IMFS_jnode_types_t; @@ -399,8 +396,6 @@ typedef struct { extern const IMFS_node_control IMFS_node_control_directory; extern const IMFS_node_control IMFS_node_control_device; -extern const IMFS_node_control IMFS_node_control_hard_link; -extern const IMFS_node_control IMFS_node_control_sym_link; extern const IMFS_node_control IMFS_node_control_memfile; extern const IMFS_node_control IMFS_node_control_linfile; extern const IMFS_node_control IMFS_node_control_fifo; @@ -594,7 +589,7 @@ extern IMFS_jnode_t *IMFS_allocate_node( * Create an IMFS filesystem node of an arbitrary type that is NOT * the root directory node. */ -extern IMFS_jnode_t *IMFS_create_node_with_control( +extern IMFS_jnode_t *IMFS_create_node( const rtems_filesystem_location_info_t *parentloc, const IMFS_node_control *node_control, const char *name, @@ -979,28 +974,6 @@ static inline bool IMFS_is_hard_link( mode_t mode ) return ( mode & S_IFMT ) == IMFS_STAT_FMT_HARD_LINK; } -static inline IMFS_jnode_t *IMFS_create_node( - const rtems_filesystem_location_info_t *parentloc, - IMFS_jnode_types_t type, - const char *name, - size_t namelen, - mode_t mode, - void *arg -) -{ - const IMFS_fs_info_t *fs_info = - (const IMFS_fs_info_t *) parentloc->mt_entry->fs_info; - - return IMFS_create_node_with_control( - parentloc, - fs_info->node_controls [type], - name, - namelen, - mode, - arg - ); -} - /** @} */ /** diff --git a/cpukit/libfs/src/imfs/imfs_creat.c b/cpukit/libfs/src/imfs/imfs_creat.c index effb84b40a..e6dceae658 100644 --- a/cpukit/libfs/src/imfs/imfs_creat.c +++ b/cpukit/libfs/src/imfs/imfs_creat.c @@ -86,7 +86,7 @@ IMFS_jnode_t *IMFS_allocate_node( return initialized_node; } -IMFS_jnode_t *IMFS_create_node_with_control( +IMFS_jnode_t *IMFS_create_node( const rtems_filesystem_location_info_t *parentloc, const IMFS_node_control *node_control, const char *name, diff --git a/cpukit/libfs/src/imfs/imfs_init.c b/cpukit/libfs/src/imfs/imfs_init.c index 596f81bdda..21b6220134 100644 --- a/cpukit/libfs/src/imfs/imfs_init.c +++ b/cpukit/libfs/src/imfs/imfs_init.c @@ -48,10 +48,7 @@ static const IMFS_node_control *const IMFS_node_controls [IMFS_TYPE_COUNT] = { [IMFS_DIRECTORY] = &IMFS_node_control_directory, [IMFS_DEVICE] = &IMFS_node_control_device, - [IMFS_HARD_LINK] = &IMFS_node_control_hard_link, - [IMFS_SYM_LINK] = &IMFS_node_control_sym_link, [IMFS_MEMORY_FILE] = &IMFS_node_control_memfile, - [IMFS_LINEAR_FILE] = &IMFS_node_control_linfile, [IMFS_FIFO] = &IMFS_node_control_enosys }; diff --git a/cpukit/libfs/src/imfs/imfs_link.c b/cpukit/libfs/src/imfs/imfs_link.c index 9e25f044c4..de4701a215 100644 --- a/cpukit/libfs/src/imfs/imfs_link.c +++ b/cpukit/libfs/src/imfs/imfs_link.c @@ -20,6 +20,8 @@ #include "imfs.h" +static const IMFS_node_control IMFS_node_control_hard_link; + int IMFS_link( const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *targetloc, @@ -43,7 +45,7 @@ int IMFS_link( */ new_node = IMFS_create_node( parentloc, - IMFS_HARD_LINK, + &IMFS_node_control_hard_link, name, namelen, IMFS_STAT_FMT_HARD_LINK | ( S_IRWXU | S_IRWXG | S_IRWXO ), @@ -129,7 +131,7 @@ static IMFS_jnode_t *IMFS_node_remove_hard_link( return node; } -const IMFS_node_control IMFS_node_control_hard_link = { +static const IMFS_node_control IMFS_node_control_hard_link = { .handlers = &IMFS_link_handlers, .node_size = sizeof(IMFS_link_t), .node_initialize = IMFS_node_initialize_hard_link, diff --git a/cpukit/libfs/src/imfs/imfs_load_tar.c b/cpukit/libfs/src/imfs/imfs_load_tar.c index c775a10878..e6dc499ecf 100644 --- a/cpukit/libfs/src/imfs/imfs_load_tar.c +++ b/cpukit/libfs/src/imfs/imfs_load_tar.c @@ -125,7 +125,7 @@ int rtems_tarfs_load( IMFS_linearfile_t *linfile = (IMFS_linearfile_t *) IMFS_create_node( currentloc, - IMFS_LINEAR_FILE, + &IMFS_node_control_linfile, rtems_filesystem_eval_path_get_token( &ctx ), rtems_filesystem_eval_path_get_tokenlen( &ctx ), (file_mode & (S_IRWXU | S_IRWXG | S_IRWXO)) | S_IFREG, diff --git a/cpukit/libfs/src/imfs/imfs_make_generic_node.c b/cpukit/libfs/src/imfs/imfs_make_generic_node.c index 1daef3e215..aeb82b4549 100644 --- a/cpukit/libfs/src/imfs/imfs_make_generic_node.c +++ b/cpukit/libfs/src/imfs/imfs_make_generic_node.c @@ -82,7 +82,7 @@ int IMFS_make_generic_node( rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); if ( IMFS_is_imfs_instance( currentloc ) ) { - IMFS_jnode_t *new_node = IMFS_create_node_with_control( + IMFS_jnode_t *new_node = IMFS_create_node( currentloc, node_control, rtems_filesystem_eval_path_get_token( &ctx ), diff --git a/cpukit/libfs/src/imfs/imfs_mknod.c b/cpukit/libfs/src/imfs/imfs_mknod.c index 9800642180..6ff505cf9a 100644 --- a/cpukit/libfs/src/imfs/imfs_mknod.c +++ b/cpukit/libfs/src/imfs/imfs_mknod.c @@ -46,12 +46,17 @@ int IMFS_mknod( ) { int rv = 0; - IMFS_jnode_types_t type; + const IMFS_fs_info_t *fs_info = parentloc->mt_entry->fs_info; IMFS_jnode_t *new_node; - type = get_type( mode ); - - new_node = IMFS_create_node( parentloc, type, name, namelen, mode, &dev ); + new_node = IMFS_create_node( + parentloc, + fs_info->node_controls[ get_type( mode ) ], + name, + namelen, + mode, + &dev + ); if ( new_node != NULL ) { IMFS_jnode_t *parent = parentloc->node_access; diff --git a/cpukit/libfs/src/imfs/imfs_symlink.c b/cpukit/libfs/src/imfs/imfs_symlink.c index eaed80b75d..3ecff3be3e 100644 --- a/cpukit/libfs/src/imfs/imfs_symlink.c +++ b/cpukit/libfs/src/imfs/imfs_symlink.c @@ -23,6 +23,8 @@ #include <stdlib.h> #include <string.h> +static const IMFS_node_control IMFS_node_control_sym_link; + int IMFS_symlink( const rtems_filesystem_location_info_t *parentloc, const char *name, @@ -46,7 +48,7 @@ int IMFS_symlink( */ new_node = IMFS_create_node( parentloc, - IMFS_SYM_LINK, + &IMFS_node_control_sym_link, name, namelen, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), @@ -129,7 +131,7 @@ static void IMFS_node_destroy_sym_link( IMFS_jnode_t *node ) IMFS_node_destroy_default( node ); } -const IMFS_node_control IMFS_node_control_sym_link = { +static const IMFS_node_control IMFS_node_control_sym_link = { .handlers = &IMFS_link_handlers, .node_size = sizeof(IMFS_sym_link_t), .node_initialize = IMFS_node_initialize_sym_link, diff --git a/cpukit/libfs/src/imfs/miniimfs_init.c b/cpukit/libfs/src/imfs/miniimfs_init.c index 9e0ca0b033..22ad26a034 100644 --- a/cpukit/libfs/src/imfs/miniimfs_init.c +++ b/cpukit/libfs/src/imfs/miniimfs_init.c @@ -48,10 +48,7 @@ static const IMFS_node_control *const IMFS_mini_node_controls [IMFS_TYPE_COUNT] = { [IMFS_DIRECTORY] = &IMFS_node_control_directory, [IMFS_DEVICE] = &IMFS_node_control_device, - [IMFS_HARD_LINK] = &IMFS_node_control_enosys, - [IMFS_SYM_LINK] = &IMFS_node_control_enosys, [IMFS_MEMORY_FILE] = &IMFS_node_control_memfile, - [IMFS_LINEAR_FILE] = &IMFS_node_control_linfile, [IMFS_FIFO] = &IMFS_node_control_enosys }; |