diff options
Diffstat (limited to 'cpukit/libfs/src/imfs')
-rw-r--r-- | cpukit/libfs/src/imfs/deviceio.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs.h | 40 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_config.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_creat.c | 15 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_getchild.c | 4 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_handlers_device.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_handlers_directory.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_handlers_link.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_handlers_memfile.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_init.c | 2 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_initsupp.c | 8 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_symlink.c | 17 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_unixstub.c | 4 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/miniimfs_init.c | 2 |
14 files changed, 56 insertions, 48 deletions
diff --git a/cpukit/libfs/src/imfs/deviceio.c b/cpukit/libfs/src/imfs/deviceio.c index 8c44e0a223..05edf454f7 100644 --- a/cpukit/libfs/src/imfs/deviceio.c +++ b/cpukit/libfs/src/imfs/deviceio.c @@ -29,7 +29,7 @@ * Convert RTEMS status to a UNIX errno */ -rtems_assoc_t errno_assoc[] = { +const rtems_assoc_t errno_assoc[] = { { "OK", RTEMS_SUCCESSFUL, 0 }, { "BUSY", RTEMS_RESOURCE_IN_USE, EBUSY }, { "INVALID NAME", RTEMS_INVALID_NAME, EINVAL }, diff --git a/cpukit/libfs/src/imfs/imfs.h b/cpukit/libfs/src/imfs/imfs.h index 2f69537b83..ae1839b3f7 100644 --- a/cpukit/libfs/src/imfs/imfs.h +++ b/cpukit/libfs/src/imfs/imfs.h @@ -56,7 +56,7 @@ typedef struct { } IMFS_link_t; typedef struct { - const char *name; + char *name; } IMFS_sym_link_t; /* @@ -205,9 +205,9 @@ struct IMFS_jnode_tt { } while (0) typedef struct { - ino_t ino_count; - rtems_filesystem_file_handlers_r *memfile_handlers; - rtems_filesystem_file_handlers_r *directory_handlers; + ino_t ino_count; + const rtems_filesystem_file_handlers_r *memfile_handlers; + const rtems_filesystem_file_handlers_r *directory_handlers; } IMFS_fs_info_t; /* @@ -226,13 +226,13 @@ typedef enum { * Shared Data */ -extern rtems_filesystem_file_handlers_r IMFS_directory_handlers; -extern rtems_filesystem_file_handlers_r IMFS_device_handlers; -extern rtems_filesystem_file_handlers_r IMFS_link_handlers; -extern rtems_filesystem_file_handlers_r IMFS_memfile_handlers; -extern rtems_filesystem_operations_table IMFS_ops; -extern rtems_filesystem_operations_table miniIMFS_ops; -extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS; +extern const rtems_filesystem_file_handlers_r IMFS_directory_handlers; +extern const rtems_filesystem_file_handlers_r IMFS_device_handlers; +extern const rtems_filesystem_file_handlers_r IMFS_link_handlers; +extern const rtems_filesystem_file_handlers_r IMFS_memfile_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; /* * Routines @@ -247,10 +247,10 @@ int miniIMFS_initialize( ); int IMFS_initialize_support( - rtems_filesystem_mount_table_entry_t *mt_entry, - rtems_filesystem_operations_table *op_table, - rtems_filesystem_file_handlers_r *memfile_handlers, - rtems_filesystem_file_handlers_r *directory_handlers + 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 ); int IMFS_fsunmount( @@ -340,11 +340,11 @@ int IMFS_mknod( ); IMFS_jnode_t *IMFS_create_node( - rtems_filesystem_location_info_t *parent_loc, /* IN */ - IMFS_jnode_types_t type, /* IN */ - char *name, /* IN */ - mode_t mode, /* IN */ - IMFS_types_union *info /* IN */ + rtems_filesystem_location_info_t *parent_loc, /* IN */ + IMFS_jnode_types_t type, /* IN */ + const char *name, /* IN */ + mode_t mode, /* IN */ + const IMFS_types_union *info /* IN */ ); int IMFS_evaluate_for_make( diff --git a/cpukit/libfs/src/imfs/imfs_config.c b/cpukit/libfs/src/imfs/imfs_config.c index 20da389fa2..78f947e81f 100644 --- a/cpukit/libfs/src/imfs/imfs_config.c +++ b/cpukit/libfs/src/imfs/imfs_config.c @@ -19,7 +19,7 @@ /* XXX this structure should use real constants */ -rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS = { +const rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS = { 5, /* link_max */ 6, /* max_canon */ 7, /* max_input */ diff --git a/cpukit/libfs/src/imfs/imfs_creat.c b/cpukit/libfs/src/imfs/imfs_creat.c index 94d9dac9c1..1eaea0b384 100644 --- a/cpukit/libfs/src/imfs/imfs_creat.c +++ b/cpukit/libfs/src/imfs/imfs_creat.c @@ -24,18 +24,17 @@ #include <rtems/libio_.h> IMFS_jnode_t *IMFS_create_node( - rtems_filesystem_location_info_t *parent_loc, - IMFS_jnode_types_t type, - char *name, - mode_t mode, - IMFS_types_union *info + rtems_filesystem_location_info_t *parent_loc, + IMFS_jnode_types_t type, + const char *name, + mode_t mode, + const IMFS_types_union *info ) { IMFS_jnode_t *node; struct timeval tv; IMFS_jnode_t *parent = NULL; IMFS_fs_info_t *fs_info; - char *sym_name; if ( parent_loc != NULL ) parent = parent_loc->node_access; @@ -94,9 +93,7 @@ IMFS_jnode_t *IMFS_create_node( break; case IMFS_SYM_LINK: - sym_name = calloc( 1, strlen( info->sym_link.name ) + 1 ); - strcpy( sym_name, info->sym_link.name ); - node->info.sym_link.name = sym_name; + node->info.sym_link.name = info->sym_link.name; break; case IMFS_DEVICE: diff --git a/cpukit/libfs/src/imfs/imfs_getchild.c b/cpukit/libfs/src/imfs/imfs_getchild.c index 67663db8ea..0c29516dd7 100644 --- a/cpukit/libfs/src/imfs/imfs_getchild.c +++ b/cpukit/libfs/src/imfs/imfs_getchild.c @@ -22,8 +22,8 @@ #include <string.h> #include "imfs.h" -static char dotname[2] = "."; -static char dotdotname[3] = ".."; +static const char dotname[2] = "."; +static const char dotdotname[3] = ".."; IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, diff --git a/cpukit/libfs/src/imfs/imfs_handlers_device.c b/cpukit/libfs/src/imfs/imfs_handlers_device.c index fa373b8b91..a1ed7ab912 100644 --- a/cpukit/libfs/src/imfs/imfs_handlers_device.c +++ b/cpukit/libfs/src/imfs/imfs_handlers_device.c @@ -23,7 +23,7 @@ * Handler table for IMFS device nodes */ -rtems_filesystem_file_handlers_r IMFS_device_handlers = { +const rtems_filesystem_file_handlers_r IMFS_device_handlers = { device_open, device_close, device_read, diff --git a/cpukit/libfs/src/imfs/imfs_handlers_directory.c b/cpukit/libfs/src/imfs/imfs_handlers_directory.c index b9453a0725..18ec588876 100644 --- a/cpukit/libfs/src/imfs/imfs_handlers_directory.c +++ b/cpukit/libfs/src/imfs/imfs_handlers_directory.c @@ -23,7 +23,7 @@ * Set of operations handlers for operations on directories. */ -rtems_filesystem_file_handlers_r IMFS_directory_handlers = { +const rtems_filesystem_file_handlers_r IMFS_directory_handlers = { imfs_dir_open, imfs_dir_close, imfs_dir_read, diff --git a/cpukit/libfs/src/imfs/imfs_handlers_link.c b/cpukit/libfs/src/imfs/imfs_handlers_link.c index f4b926dcab..038da475fc 100644 --- a/cpukit/libfs/src/imfs/imfs_handlers_link.c +++ b/cpukit/libfs/src/imfs/imfs_handlers_link.c @@ -23,7 +23,7 @@ * Handler table for IMFS device nodes */ -rtems_filesystem_file_handlers_r IMFS_link_handlers = { +const rtems_filesystem_file_handlers_r IMFS_link_handlers = { NULL, /* open */ NULL, /* close */ NULL, /* read */ diff --git a/cpukit/libfs/src/imfs/imfs_handlers_memfile.c b/cpukit/libfs/src/imfs/imfs_handlers_memfile.c index 1db049b504..3b765f0149 100644 --- a/cpukit/libfs/src/imfs/imfs_handlers_memfile.c +++ b/cpukit/libfs/src/imfs/imfs_handlers_memfile.c @@ -23,7 +23,7 @@ * Set of operations handlers for operations on memfile entities. */ -rtems_filesystem_file_handlers_r IMFS_memfile_handlers = { +const rtems_filesystem_file_handlers_r IMFS_memfile_handlers = { memfile_open, memfile_close, memfile_read, diff --git a/cpukit/libfs/src/imfs/imfs_init.c b/cpukit/libfs/src/imfs/imfs_init.c index 4ed08bd500..81091bc936 100644 --- a/cpukit/libfs/src/imfs/imfs_init.c +++ b/cpukit/libfs/src/imfs/imfs_init.c @@ -33,7 +33,7 @@ * IMFS file system operations table */ -rtems_filesystem_operations_table IMFS_ops = { +const rtems_filesystem_operations_table IMFS_ops = { IMFS_eval_path, IMFS_evaluate_for_make, IMFS_link, diff --git a/cpukit/libfs/src/imfs/imfs_initsupp.c b/cpukit/libfs/src/imfs/imfs_initsupp.c index 29b014d374..05f7ab768a 100644 --- a/cpukit/libfs/src/imfs/imfs_initsupp.c +++ b/cpukit/libfs/src/imfs/imfs_initsupp.c @@ -66,10 +66,10 @@ static int IMFS_determine_bytes_per_block( */ int IMFS_initialize_support( - rtems_filesystem_mount_table_entry_t *temp_mt_entry, - rtems_filesystem_operations_table *op_table, - rtems_filesystem_file_handlers_r *memfile_handlers, - rtems_filesystem_file_handlers_r *directory_handlers + 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 ) { IMFS_fs_info_t *fs_info; diff --git a/cpukit/libfs/src/imfs/imfs_symlink.c b/cpukit/libfs/src/imfs/imfs_symlink.c index 38072b9f69..e946f3dc66 100644 --- a/cpukit/libfs/src/imfs/imfs_symlink.c +++ b/cpukit/libfs/src/imfs/imfs_symlink.c @@ -20,6 +20,8 @@ #endif #include <errno.h> +#include <string.h> +#include <stdlib.h> #include "imfs.h" #include <rtems/libio_.h> #include <rtems/seterr.h> @@ -41,7 +43,14 @@ int IMFS_symlink( IMFS_get_token( node_name, new_name, &i ); - info.sym_link.name = link_name; + /* + * Duplicate link name + */ + + info.sym_link.name = strdup( link_name); + if (info.sym_link.name == NULL) { + rtems_set_errno_and_return_minus_one( ENOMEM); + } /* * Create a new link node. @@ -55,8 +64,10 @@ int IMFS_symlink( &info ); - if ( !new_node ) - rtems_set_errno_and_return_minus_one( ENOMEM ); + if (new_node == NULL) { + free( info.sym_link.name); + rtems_set_errno_and_return_minus_one( ENOMEM); + } return 0; } diff --git a/cpukit/libfs/src/imfs/imfs_unixstub.c b/cpukit/libfs/src/imfs/imfs_unixstub.c index d642b260d5..47943040bb 100644 --- a/cpukit/libfs/src/imfs/imfs_unixstub.c +++ b/cpukit/libfs/src/imfs/imfs_unixstub.c @@ -31,7 +31,7 @@ * IMFS file system operations table */ -rtems_filesystem_operations_table IMFS_ops = { +const rtems_filesystem_operations_table IMFS_ops = { NULL, NULL, NULL, @@ -54,7 +54,7 @@ rtems_filesystem_operations_table IMFS_ops = { * IMFS file system operations table */ -rtems_filesystem_operations_table miniIMFS_ops = { +const rtems_filesystem_operations_table miniIMFS_ops = { NULL, NULL, NULL, diff --git a/cpukit/libfs/src/imfs/miniimfs_init.c b/cpukit/libfs/src/imfs/miniimfs_init.c index fdf2310cf3..15ca663429 100644 --- a/cpukit/libfs/src/imfs/miniimfs_init.c +++ b/cpukit/libfs/src/imfs/miniimfs_init.c @@ -33,7 +33,7 @@ * miniIMFS file system operations table */ -rtems_filesystem_operations_table miniIMFS_ops = { +const rtems_filesystem_operations_table miniIMFS_ops = { IMFS_eval_path, IMFS_evaluate_for_make, NULL, /* XXX IMFS_link, */ |