forked from Imagelibrary/rtems
2010-08-02 Joel Sherrill <joel.sherrill@oarcorp.com>
* libfs/src/imfs/imfs_creat.c, libfs/src/imfs/imfs_eval.c, libfs/src/imfs/imfs_mknod.c, libfs/src/imfs/imfs_readlink.c, libfs/src/pipe/fifo.c: Clean up for coverage improvements and formatting.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2010-08-02 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* libfs/src/imfs/imfs_creat.c, libfs/src/imfs/imfs_eval.c,
|
||||
libfs/src/imfs/imfs_mknod.c, libfs/src/imfs/imfs_readlink.c,
|
||||
libfs/src/pipe/fifo.c: Clean up for coverage improvements and
|
||||
formatting.
|
||||
|
||||
2010-08-02 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* libmisc/stackchk/check.c: If this port does not allocate the
|
||||
|
||||
@@ -64,42 +64,28 @@ IMFS_jnode_t *IMFS_create_node(
|
||||
/*
|
||||
* Set the type specific information
|
||||
*/
|
||||
switch (type) {
|
||||
case IMFS_DIRECTORY:
|
||||
rtems_chain_initialize_empty(&node->info.directory.Entries);
|
||||
break;
|
||||
|
||||
case IMFS_HARD_LINK:
|
||||
node->info.hard_link.link_node = info->hard_link.link_node;
|
||||
break;
|
||||
|
||||
case IMFS_SYM_LINK:
|
||||
node->info.sym_link.name = info->sym_link.name;
|
||||
break;
|
||||
|
||||
case IMFS_DEVICE:
|
||||
node->info.device.major = info->device.major;
|
||||
node->info.device.minor = info->device.minor;
|
||||
break;
|
||||
|
||||
case IMFS_LINEAR_FILE:
|
||||
node->info.linearfile.size = 0;
|
||||
node->info.linearfile.direct = 0;
|
||||
|
||||
case IMFS_MEMORY_FILE:
|
||||
if ( type == IMFS_DIRECTORY ) {
|
||||
rtems_chain_initialize_empty(&node->info.directory.Entries);
|
||||
} else if ( type == IMFS_HARD_LINK ) {
|
||||
node->info.hard_link.link_node = info->hard_link.link_node;
|
||||
} else if ( type == IMFS_SYM_LINK ) {
|
||||
node->info.sym_link.name = info->sym_link.name;
|
||||
} else if ( type == IMFS_DEVICE ) {
|
||||
node->info.device.major = info->device.major;
|
||||
node->info.device.minor = info->device.minor;
|
||||
} else if ( type == IMFS_LINEAR_FILE ) {
|
||||
node->info.linearfile.size = 0;
|
||||
node->info.linearfile.direct = 0;
|
||||
if ( type == IMFS_MEMORY_FILE ) {
|
||||
node->info.file.size = 0;
|
||||
node->info.file.indirect = 0;
|
||||
node->info.file.doubly_indirect = 0;
|
||||
node->info.file.triply_indirect = 0;
|
||||
break;
|
||||
|
||||
case IMFS_FIFO:
|
||||
node->info.fifo.pipe = NULL;
|
||||
break;
|
||||
|
||||
default:
|
||||
IMFS_assert(0);
|
||||
break;
|
||||
}
|
||||
} else if ( type == IMFS_FIFO ) {
|
||||
node->info.fifo.pipe = NULL;
|
||||
} else {
|
||||
IMFS_assert(0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -70,7 +70,6 @@ int IMFS_Set_handlers(
|
||||
* The following routine evaluates that we have permission
|
||||
* to do flags on the node.
|
||||
*/
|
||||
|
||||
int IMFS_evaluate_permission(
|
||||
rtems_filesystem_location_info_t *node,
|
||||
int flags
|
||||
@@ -136,14 +135,11 @@ int IMFS_evaluate_hard_link(
|
||||
/*
|
||||
* Check for things that should never happen.
|
||||
*/
|
||||
|
||||
if ( jnode->type != IMFS_HARD_LINK )
|
||||
rtems_fatal_error_occurred (0xABCD0000);
|
||||
IMFS_assert( jnode->type == IMFS_HARD_LINK );
|
||||
|
||||
/*
|
||||
* Set the hard link value and the handlers.
|
||||
*/
|
||||
|
||||
node->node_access = jnode->info.hard_link.link_node;
|
||||
|
||||
IMFS_Set_handlers( node );
|
||||
@@ -177,19 +173,13 @@ int IMFS_evaluate_sym_link(
|
||||
/*
|
||||
* Check for things that should never happen.
|
||||
*/
|
||||
|
||||
if ( jnode->type != IMFS_SYM_LINK )
|
||||
rtems_fatal_error_occurred (0xABCD0000);
|
||||
|
||||
if ( !jnode->Parent )
|
||||
rtems_fatal_error_occurred( 0xBAD00000 );
|
||||
|
||||
IMFS_assert( jnode->type == IMFS_SYM_LINK )
|
||||
IMFS_assert( jnode->Parent )
|
||||
|
||||
/*
|
||||
* Move the node_access to either the symbolic links parent or
|
||||
* root depending on the symbolic links path.
|
||||
*/
|
||||
|
||||
node->node_access = jnode->Parent;
|
||||
|
||||
rtems_filesystem_get_sym_start_loc(
|
||||
@@ -201,7 +191,6 @@ int IMFS_evaluate_sym_link(
|
||||
/*
|
||||
* Use eval path to evaluate the path of the symbolic link.
|
||||
*/
|
||||
|
||||
result = IMFS_eval_path(
|
||||
&jnode->info.sym_link.name[i],
|
||||
strlen( &jnode->info.sym_link.name[i] ),
|
||||
@@ -214,7 +203,6 @@ int IMFS_evaluate_sym_link(
|
||||
/*
|
||||
* Verify we have the correct permissions for this node.
|
||||
*/
|
||||
|
||||
if ( !IMFS_evaluate_permission( node, flags ) )
|
||||
rtems_set_errno_and_return_minus_one( EACCES );
|
||||
|
||||
@@ -226,7 +214,6 @@ int IMFS_evaluate_sym_link(
|
||||
*
|
||||
* The following routine returns the real node pointed to by a link.
|
||||
*/
|
||||
|
||||
int IMFS_evaluate_link(
|
||||
rtems_filesystem_location_info_t *node, /* IN/OUT */
|
||||
int flags /* IN */
|
||||
@@ -578,19 +565,23 @@ int IMFS_eval_path(
|
||||
/*
|
||||
* If we are at a link follow it.
|
||||
*/
|
||||
|
||||
if ( node->type == IMFS_HARD_LINK ) {
|
||||
|
||||
IMFS_evaluate_hard_link( pathloc, 0 );
|
||||
|
||||
node = pathloc->node_access;
|
||||
if ( !node )
|
||||
rtems_set_errno_and_return_minus_one( ENOTDIR );
|
||||
|
||||
/*
|
||||
* It would be a design error if we evaluated the link and
|
||||
* was broken.
|
||||
*/
|
||||
IMFS_assert( node );
|
||||
|
||||
} else if ( node->type == IMFS_SYM_LINK ) {
|
||||
|
||||
result = IMFS_evaluate_sym_link( pathloc, 0 );
|
||||
|
||||
/*
|
||||
* In contrast to a hard link, it is possible to have a broken
|
||||
* symbolic link.
|
||||
*/
|
||||
node = pathloc->node_access;
|
||||
if ( result == -1 )
|
||||
return -1;
|
||||
@@ -599,7 +590,6 @@ int IMFS_eval_path(
|
||||
/*
|
||||
* Only a directory can be decended into.
|
||||
*/
|
||||
|
||||
if ( node->type != IMFS_DIRECTORY )
|
||||
rtems_set_errno_and_return_minus_one( ENOTDIR );
|
||||
|
||||
@@ -607,7 +597,6 @@ int IMFS_eval_path(
|
||||
* If we are at a node that is a mount point. Set loc to the
|
||||
* new fs root node and let them finish evaluating the path.
|
||||
*/
|
||||
|
||||
if ( node->info.directory.mt_fs != NULL ) {
|
||||
newloc = node->info.directory.mt_fs->mt_fs_root;
|
||||
*pathloc = newloc;
|
||||
@@ -619,7 +608,6 @@ int IMFS_eval_path(
|
||||
/*
|
||||
* Otherwise find the token name in the present location.
|
||||
*/
|
||||
|
||||
node = IMFS_find_match_in_dir( node, token );
|
||||
if ( !node )
|
||||
rtems_set_errno_and_return_minus_one( ENOENT );
|
||||
|
||||
@@ -53,12 +53,10 @@ int IMFS_mknod(
|
||||
else if ( S_ISBLK(mode) || S_ISCHR(mode) ) {
|
||||
type = IMFS_DEVICE;
|
||||
rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor );
|
||||
}
|
||||
else if (S_ISFIFO(mode))
|
||||
} else if (S_ISFIFO(mode))
|
||||
type = IMFS_FIFO;
|
||||
else {
|
||||
rtems_set_errno_and_return_minus_one( EINVAL );
|
||||
}
|
||||
else
|
||||
IMFS_assert( 0 );
|
||||
|
||||
/*
|
||||
* Allocate and fill in an IMFS jnode
|
||||
@@ -70,14 +68,7 @@ int IMFS_mknod(
|
||||
* existed. The result was simpler code which should not have
|
||||
* this path.
|
||||
*/
|
||||
new_node = IMFS_create_node(
|
||||
pathloc,
|
||||
type,
|
||||
new_name,
|
||||
mode,
|
||||
&info
|
||||
);
|
||||
|
||||
new_node = IMFS_create_node( pathloc, type, new_name, mode, &info );
|
||||
if ( !new_node )
|
||||
rtems_set_errno_and_return_minus_one( ENOMEM );
|
||||
|
||||
|
||||
@@ -34,8 +34,7 @@ int IMFS_readlink(
|
||||
|
||||
node = loc->node_access;
|
||||
|
||||
if ( node->type != IMFS_SYM_LINK )
|
||||
rtems_set_errno_and_return_minus_one( EINVAL );
|
||||
IMFS_assert( node->type == IMFS_SYM_LINK );
|
||||
|
||||
for( i=0; ((i<bufsize) && (node->info.sym_link.name[i] != '\0')); i++ )
|
||||
buf[i] = node->info.sym_link.name[i];
|
||||
|
||||
@@ -190,10 +190,11 @@ static void pipe_unlock(void)
|
||||
rtems_status_code sc = RTEMS_SUCCESSFUL;
|
||||
|
||||
sc = rtems_semaphore_release(pipe_semaphore);
|
||||
if (sc != RTEMS_SUCCESSFUL) {
|
||||
/* FIXME */
|
||||
rtems_fatal_error_occurred(0xdeadbeef);
|
||||
}
|
||||
#ifdef RTEMS_DEBUG
|
||||
if (sc != RTEMS_SUCCESSFUL) {
|
||||
rtems_fatal_error_occurred(0xdeadbeef);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -248,15 +249,15 @@ int pipe_release(
|
||||
pipe_control_t *pipe = *pipep;
|
||||
uint32_t mode;
|
||||
|
||||
if (pipe_lock())
|
||||
#if defined(RTEMS_DEBUG)
|
||||
/* WARN pipe not freed and pipep not set to NULL! */
|
||||
/* FIXME */
|
||||
rtems_fatal_error_occurred(0xdeadbeef);
|
||||
if (pipe_lock())
|
||||
rtems_fatal_error_occurred(0xdeadbeef);
|
||||
|
||||
if (!PIPE_LOCK(pipe))
|
||||
/* WARN pipe not released! */
|
||||
/* FIXME */
|
||||
rtems_fatal_error_occurred(0xdeadbeef);
|
||||
if (!PIPE_LOCK(pipe))
|
||||
rtems_fatal_error_occurred(0xdeadbeef);
|
||||
#endif
|
||||
|
||||
mode = LIBIO_ACCMODE(iop);
|
||||
if (mode & LIBIO_FLAGS_READ)
|
||||
|
||||
Reference in New Issue
Block a user