2001-10-25 Jennifer Averett <jennifer@OARcorp.com>

* libc/libio.c: Initialize more fields to NULL/0 during initialiation.
	* include/rtems/libio_.h: Fix freenode macro so it works for sockets
	which do not have the full set of filesystem operations and are
	initialized via something other than open().
This commit is contained in:
Joel Sherrill
2001-10-25 17:38:55 +00:00
parent bc85fdbba3
commit 1af7963479
9 changed files with 64 additions and 22 deletions

View File

@@ -165,8 +165,9 @@ extern rtems_libio_t *rtems_libio_iop_freelist;
#define rtems_filesystem_freenode( _node ) \
do { \
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
if ( (_node)->ops )\
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
} while (0)
/*

View File

@@ -165,8 +165,9 @@ extern rtems_libio_t *rtems_libio_iop_freelist;
#define rtems_filesystem_freenode( _node ) \
do { \
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
if ( (_node)->ops )\
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
} while (0)
/*

View File

@@ -206,10 +206,20 @@ rtems_libio_t *rtems_libio_allocate( void )
if (rc != RTEMS_SUCCESSFUL)
goto failed;
rtems_libio_iop_freelist = iop->data1;
iop->data1 = 0;
iop->flags = LIBIO_FLAGS_OPEN;
iop->size = 0;
iop->offset = 0;
iop->driver = NULL;
iop->size = 0;
iop->offset = 0;
iop->flags = LIBIO_FLAGS_OPEN;
iop->pathinfo.node_access = NULL;
iop->pathinfo.handlers = NULL;
iop->pathinfo.ops = NULL;
iop->pathinfo.mt_entry = NULL;
iop->data0 = 0;
iop->data1 = NULL;
iop->file_info = NULL;
iop->handlers = NULL;
goto done;
}

View File

@@ -1,3 +1,10 @@
2001-10-25 Jennifer Averett <jennifer@OARcorp.com>
* libc/libio.c: Initialize more fields to NULL/0 during initialiation.
* include/rtems/libio_.h: Fix freenode macro so it works for sockets
which do not have the full set of filesystem operations and are
initialized via something other than open().
2001-10-18 Till Straumann <strauman@SLAC.Stanford.EDU>
* libc/open.c, libc/close.c: Moved freenode from open to

View File

@@ -165,8 +165,9 @@ extern rtems_libio_t *rtems_libio_iop_freelist;
#define rtems_filesystem_freenode( _node ) \
do { \
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
if ( (_node)->ops )\
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
} while (0)
/*

View File

@@ -206,10 +206,20 @@ rtems_libio_t *rtems_libio_allocate( void )
if (rc != RTEMS_SUCCESSFUL)
goto failed;
rtems_libio_iop_freelist = iop->data1;
iop->data1 = 0;
iop->flags = LIBIO_FLAGS_OPEN;
iop->size = 0;
iop->offset = 0;
iop->driver = NULL;
iop->size = 0;
iop->offset = 0;
iop->flags = LIBIO_FLAGS_OPEN;
iop->pathinfo.node_access = NULL;
iop->pathinfo.handlers = NULL;
iop->pathinfo.ops = NULL;
iop->pathinfo.mt_entry = NULL;
iop->data0 = 0;
iop->data1 = NULL;
iop->file_info = NULL;
iop->handlers = NULL;
goto done;
}

View File

@@ -165,8 +165,9 @@ extern rtems_libio_t *rtems_libio_iop_freelist;
#define rtems_filesystem_freenode( _node ) \
do { \
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
if ( (_node)->ops )\
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
} while (0)
/*

View File

@@ -165,8 +165,9 @@ extern rtems_libio_t *rtems_libio_iop_freelist;
#define rtems_filesystem_freenode( _node ) \
do { \
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
if ( (_node)->ops )\
if ( (_node)->ops->freenod_h ) \
(*(_node)->ops->freenod_h)( (_node) ); \
} while (0)
/*

View File

@@ -206,10 +206,20 @@ rtems_libio_t *rtems_libio_allocate( void )
if (rc != RTEMS_SUCCESSFUL)
goto failed;
rtems_libio_iop_freelist = iop->data1;
iop->data1 = 0;
iop->flags = LIBIO_FLAGS_OPEN;
iop->size = 0;
iop->offset = 0;
iop->driver = NULL;
iop->size = 0;
iop->offset = 0;
iop->flags = LIBIO_FLAGS_OPEN;
iop->pathinfo.node_access = NULL;
iop->pathinfo.handlers = NULL;
iop->pathinfo.ops = NULL;
iop->pathinfo.mt_entry = NULL;
iop->data0 = 0;
iop->data1 = NULL;
iop->file_info = NULL;
iop->handlers = NULL;
goto done;
}