From 73f6236bc09b3cadf0aa030e16396154421f3e30 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 1 Mar 1999 22:40:08 +0000 Subject: Patch from Eric Norum to eliminate external IO handlers scheme that was implemented originally just to support sockets. The file system IO switch is more general and works fine. --- c/src/lib/libc/close.c | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) (limited to 'c/src/lib/libc/close.c') diff --git a/c/src/lib/libc/close.c b/c/src/lib/libc/close.c index 04c269664b..ba69847533 100644 --- a/c/src/lib/libc/close.c +++ b/c/src/lib/libc/close.c @@ -20,35 +20,17 @@ int close( { rtems_libio_t *iop; rtems_status_code rc; - int status; rtems_libio_check_fd(fd); iop = rtems_libio_iop(fd); rtems_libio_check_is_open(iop); - if ( iop->flags & LIBIO_FLAGS_HANDLER_MASK ) { - int (*fp)(int fd); - fp = rtems_libio_handlers[ - (iop->flags >> LIBIO_FLAGS_HANDLER_SHIFT) - 1].close; - if ( fp == NULL ) - set_errno_and_return_minus_one( EBADF ); - status = (*fp)( fd ); - return status; - } - - if ( !iop->handlers ) - set_errno_and_return_minus_one( EBADF ); - - if ( !iop->handlers->close ) - set_errno_and_return_minus_one( ENOTSUP ); - - rc = (*iop->handlers->close)( iop ); + rc = RTEMS_SUCCESSFUL; + if ( iop->handlers->close ) + rc = (*iop->handlers->close)( iop ); rtems_libio_free( iop ); - if (rc != RTEMS_SUCCESSFUL) - set_errno_and_return_minus_one( rc ); - return rc; } -- cgit v1.2.3