summaryrefslogtreecommitdiffstats
path: root/c/src/lib
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2001-10-26 19:22:03 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2001-10-26 19:22:03 +0000
commit1e4968e4d7353fb9dd1345aa0a2672261b06370f (patch)
tree8e6e07dbb3ad2fef46820564f3a9fb31d76a2392 /c/src/lib
parent2001-10-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff)
downloadrtems-1e4968e4d7353fb9dd1345aa0a2672261b06370f.tar.bz2
2001-10-26 Joel Sherrill <joel@OARcorp.com>
* libc/libio.c: Cleanup of initialization per suggestion from Eric Norum.
Diffstat (limited to 'c/src/lib')
-rw-r--r--c/src/lib/ChangeLog5
-rw-r--r--c/src/lib/libc/libio.c21
2 files changed, 10 insertions, 16 deletions
diff --git a/c/src/lib/ChangeLog b/c/src/lib/ChangeLog
index 6ebb95d5f5..a7418f9bbe 100644
--- a/c/src/lib/ChangeLog
+++ b/c/src/lib/ChangeLog
@@ -1,3 +1,8 @@
+2001-10-26 Joel Sherrill <joel@OARcorp.com>
+
+ * libc/libio.c: Cleanup of initialization per suggestion from
+ Eric Norum.
+
2001-10-25 Jennifer Averett <jennifer@OARcorp.com>
* libc/unmount.c: Primarily restructuring and clean up to address
diff --git a/c/src/lib/libc/libio.c b/c/src/lib/libc/libio.c
index f5cd36dbd9..713ba6dd33 100644
--- a/c/src/lib/libc/libio.c
+++ b/c/src/lib/libc/libio.c
@@ -189,13 +189,16 @@ unsigned32 rtems_libio_to_fcntl_flags(
rtems_libio_t *rtems_libio_allocate( void )
{
- rtems_libio_t *iop;
+ rtems_libio_t *iop, *next;
rtems_status_code rc;
rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT );
if (rtems_libio_iop_freelist) {
iop = rtems_libio_iop_freelist;
+ next = iop->data1;
+ (void) memset( iop, 0, sizeof(rtems_libio_t) );
+ iop->flags = LIBIO_FLAGS_OPEN;
rc = rtems_semaphore_create(
RTEMS_LIBIO_IOP_SEM(iop - rtems_libio_iops),
1,
@@ -205,21 +208,7 @@ rtems_libio_t *rtems_libio_allocate( void )
);
if (rc != RTEMS_SUCCESSFUL)
goto failed;
- rtems_libio_iop_freelist = iop->data1;
-
- 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;
-
+ rtems_libio_iop_freelist = next;
goto done;
}