diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-11-01 21:08:14 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-11-01 21:08:14 +0000 |
commit | 3ba74c733f4adf1d310a7e7ea4ddd2a0abc0b2fd (patch) | |
tree | 2849436d5bc8c06fa9b6dd522af3a539c043dc38 /c/src/lib/libc/libio_.h | |
parent | 2000-11-01 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-3ba74c733f4adf1d310a7e7ea4ddd2a0abc0b2fd.tar.bz2 |
2000-11-01 Joel Sherrill <joel@OARcorp.com>
* include/Makefile.am, include/rtems/libio_.h, libc/Makefile.am,
libc/assoc.c, libc/assocnamebad.c, libc/base_fs.c, libc/cfsetispeed.c,
libc/cfsetospeed.c, libc/chdir.c, libc/chmod.c, libc/chown.c,
libc/close.c, libc/closedir.c, libc/dup2.c, libc/error.c, libc/eval.c,
libc/fchdir.c, libc/fchmod.c, libc/fcntl.c, libc/fdatasync.c,
libc/fpathconf.c, libc/fstat.c, libc/fsync.c, libc/ftruncate.c,
libc/getdents.c, libc/ioctl.c, libc/libio.c, libc/libio_sockets.c,
libc/link.c, libc/lseek.c, libc/malloc.c, libc/mallocfreespace.c,
libc/mknod.c, libc/mount.c, libc/newlibc.c, libc/no_libc.c,
libc/open.c, libc/read.c, libc/readlink.c, libc/rmdir.c, libc/stat.c,
libc/symlink.c, libc/tcsetattr.c, libc/telldir.c, libc/ttyname.c,
libc/ttyname_r.c, libc/umask.c, libc/unlink.c, libc/unmount.c,
libc/utime.c, libc/write.c:
assoc.h, error.h, libio_.h, libio.h, and libcsupport.h moved
from libc to lib/include/rtems and now must be referenced as
<rtems/XXX.h>.
* include/rtems/Makefile.am, include/rtems/.cvsignore: New file.
* include/rtems/assoc.h, include/rtems/error.h,
include/rtems/libcsupport.h, include/rtems/libio.h,
include/rtems/libio_.h: New/moved files.
Diffstat (limited to 'c/src/lib/libc/libio_.h')
-rw-r--r-- | c/src/lib/libc/libio_.h | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/c/src/lib/libc/libio_.h b/c/src/lib/libc/libio_.h deleted file mode 100644 index e840c74a1b..0000000000 --- a/c/src/lib/libc/libio_.h +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Libio Internal Information - * - * COPYRIGHT (c) 1989-1999. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#ifndef __LIBIO__h -#define __LIBIO__h - -#ifdef __cplusplus -extern "C" { -#endif - -#include <rtems.h> -#include <rtems/libio.h> /* include before standard IO */ -#include <rtems/assoc.h> /* assoc.h not included by rtems.h */ - -#include <stdio.h> /* O_RDONLY, et.al. */ -#include <fcntl.h> /* O_RDONLY, et.al. */ -#include <assert.h> -#include <stdarg.h> -#include <errno.h> - -#if ! defined(O_NDELAY) -# if defined(solaris2) -# define O_NDELAY O_NONBLOCK -# elif defined(RTEMS_NEWLIB) -# define O_NDELAY _FNBIO -# endif -#endif - -#if !defined(ENOTSUP) -#define ENOTSUP EOPNOTSUPP -#endif - -#include <errno.h> -#include <string.h> /* strcmp */ -#include <unistd.h> -#include <stdlib.h> /* calloc() */ - -/* - * Semaphore to protect the io table - */ - -#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O') -#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n) - -extern rtems_id rtems_libio_semaphore; -extern rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers; - -/* - * File descriptor Table Information - */ - -extern unsigned32 rtems_libio_number_iops; -extern rtems_libio_t *rtems_libio_iops; -extern rtems_libio_t *rtems_libio_last_iop; -extern rtems_libio_t *rtems_libio_iop_freelist; - -/* - * Default mode for all files. - */ - -extern mode_t rtems_filesystem_umask; - -/* - * set_errno_and_return_minus_one - * - * Macro to ease common way to return an error. - */ - -#ifndef set_errno_and_return_minus_one -#define set_errno_and_return_minus_one( _error ) \ - do { errno = (_error); return -1; } while(0) -#endif - -/* - * rtems_libio_iop - * - * Macro to return the file descriptor pointer. - */ - -#define rtems_libio_iop(_fd) \ - ((((unsigned32)(_fd)) < rtems_libio_number_iops) ? \ - &rtems_libio_iops[_fd] : 0) - -/* - * rtems_libio_check_is_open - * - * Macro to check if a file descriptor is actually open. - */ - -#define rtems_libio_check_is_open(_iop) \ - do { \ - if (((_iop)->flags & LIBIO_FLAGS_OPEN) == 0) { \ - errno = EBADF; \ - return -1; \ - } \ - } while (0) - -/* - * rtems_libio_check_fd - * - * Macro to check if a file descriptor number is valid. - */ - -#define rtems_libio_check_fd(_fd) \ - do { \ - if ((unsigned32) (_fd) >= rtems_libio_number_iops) { \ - errno = EBADF; \ - return -1; \ - } \ - } while (0) - -/* - * rtems_libio_check_buffer - * - * Macro to check if a buffer pointer is valid. - */ - -#define rtems_libio_check_buffer(_buffer) \ - do { \ - if ((_buffer) == 0) { \ - errno = EINVAL; \ - return -1; \ - } \ - } while (0) - -/* - * rtems_libio_check_count - * - * Macro to check if a count or length is valid. - */ - -#define rtems_libio_check_count(_count) \ - do { \ - if ((_count) == 0) { \ - return 0; \ - } \ - } while (0) - -/* - * rtems_libio_check_permissions - * - * Macro to check if a file descriptor is open for this operation. - */ - -#define rtems_libio_check_permissions(_iop, _flag) \ - do { \ - if (((_iop)->flags & (_flag)) == 0) { \ - set_errno_and_return_minus_one( EINVAL ); \ - return -1; \ - } \ - } while (0) - -/* - * rtems_filesystem_freenode - * - * Macro to free a node. - */ - -#define rtems_filesystem_freenode( _node ) \ - do { \ - if ( (_node)->ops->freenod_h ) \ - (*(_node)->ops->freenod_h)( (_node) ); \ - } while (0) - -/* - * rtems_filesystem_is_separator - * - * Macro to determine if a character is a path name separator. - * - * NOTE: This macro handles MS-DOS and UNIX style names. - */ - -#define rtems_filesystem_is_separator( _ch ) \ - ( ((_ch) == '/') || ((_ch) == '\\') || ((_ch) == '\0')) - -/* - * rtems_filesystem_get_start_loc - * - * Macro to determine if path is absolute or relative. - */ - -#define rtems_filesystem_get_start_loc( _path, _index, _loc ) \ - do { \ - if ( rtems_filesystem_is_separator( (_path)[ 0 ] ) ) { \ - *(_loc) = rtems_filesystem_root; \ - *(_index) = 1; \ - } else { \ - *(_loc) = rtems_filesystem_current; \ - *(_index) = 0; \ - } \ - } while (0) - -#define rtems_filesystem_get_sym_start_loc( _path, _index, _loc ) \ - do { \ - if ( rtems_filesystem_is_separator( (_path)[ 0 ] ) ) { \ - *(_loc) = rtems_filesystem_root; \ - *(_index) = 1; \ - } else { \ - *(_index) = 0; \ - } \ - } while (0) - - -/* - * External structures - */ - -extern rtems_filesystem_location_info_t rtems_filesystem_current; -extern rtems_filesystem_location_info_t rtems_filesystem_root; -extern nlink_t rtems_filesystem_link_counts; - - -/* - * File Descriptor Routine Prototypes - */ - -rtems_libio_t *rtems_libio_allocate(void); - -unsigned32 rtems_libio_fcntl_flags( - unsigned32 fcntl_flags -); - -unsigned32 rtems_libio_to_fcntl_flags( - unsigned32 flags -); - -void rtems_libio_free( - rtems_libio_t *iop -); - -int rtems_libio_is_open_files_in_fs( - rtems_filesystem_mount_table_entry_t *mt_entry -); - -int rtems_libio_is_file_open( - void *node_access -); - -/* - * File System Routine Prototypes - */ - -int rtems_filesystem_evaluate_path( - const char *pathname, - int flags, - rtems_filesystem_location_info_t *pathloc, - int follow_link -); - -void rtems_filesystem_initialize(); - -int init_fs_mount_table(); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ - - - |