From 578a41501456b14f7718e445a57bf121d30b2a8c Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 12 Oct 1999 19:08:55 +0000 Subject: Corrected mistakes in the IMFS file handlers table and added the missing routine imfs_fcntl.c --- c/src/lib/libc/Makefile.in | 5 +- c/src/lib/libc/fs_null_handlers.c | 97 +++++++++++++++++++++++++++++++++++++++ c/src/lib/libc/imfs.h | 5 ++ c/src/lib/libc/imfs_fcntl.c | 25 ++++++++++ c/src/lib/libc/imfs_handlers.c | 43 ++++++----------- 5 files changed, 144 insertions(+), 31 deletions(-) create mode 100644 c/src/lib/libc/fs_null_handlers.c create mode 100644 c/src/lib/libc/imfs_fcntl.c (limited to 'c/src/lib/libc') diff --git a/c/src/lib/libc/Makefile.in b/c/src/lib/libc/Makefile.in index c57d7ad305..663fd2d5a9 100644 --- a/c/src/lib/libc/Makefile.in +++ b/c/src/lib/libc/Makefile.in @@ -20,13 +20,14 @@ ERROR_C_PIECES=error ASSOCIATION_C_PIECES=assoc assocnamebad -BASE_FS_C_PIECES = base_fs mount unmount ioman libio libio_sockets eval +BASE_FS_C_PIECES = base_fs mount unmount ioman libio libio_sockets eval \ + fs_null_handlers IMFS_C_PIECES = imfs_chown imfs_creat imfs_directory imfs_eval imfs_free \ imfs_gtkn imfs_init imfs_link imfs_mknod imfs_mount imfs_fchmod \ imfs_rmnod imfs_unlink imfs_unmount imfs_utime imfs_ntype imfs_stat \ imfs_getchild memfile deviceio imfs_handlers imfs_debug imfs_symlink \ - imfs_readlink imfs_fdatasync + imfs_readlink imfs_fdatasync imfs_fcntl TERMIOS_C_PIECES = cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcgetattr \ tcsetattr tcdrain tcflow tcflush termios \ diff --git a/c/src/lib/libc/fs_null_handlers.c b/c/src/lib/libc/fs_null_handlers.c new file mode 100644 index 0000000000..e9ff4a578a --- /dev/null +++ b/c/src/lib/libc/fs_null_handlers.c @@ -0,0 +1,97 @@ +/* + * Operations Tables for the IMFS + * + * COPYRIGHT (c) 1989-1998. + * On-Line Applications Research Corporation (OAR). + * Copyright assigned to U.S. Government, 1994. + * + * 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$ + */ + +#include + +#include "imfs.h" + +/* + * Set of operations handlers for operations on memfile entities. + */ + +rtems_filesystem_file_handlers_r memfile_handlers = { + memfile_open, + memfile_close, + memfile_read, + memfile_write, + memfile_ioctl, + memfile_lseek, + IMFS_stat, + IMFS_fchmod, + memfile_ftruncate, + NULL, /* fpathconf */ + NULL, /* fsync */ + IMFS_fdatasync, + IMFS_fcntl +}; + +/* + * Set of operations handlers for operations on directories. + */ + +rtems_filesystem_file_handlers_r dir_handlers = { + imfs_dir_open, + imfs_dir_close, + imfs_dir_read, + NULL, /* write */ + NULL, /* ioctl */ + imfs_dir_lseek, + imfs_dir_fstat, + IMFS_fchmod, + NULL, /* ftruncate */ + NULL, /* fpathconf */ + NULL, /* fsync */ + IMFS_fdatasync, + IMFS_fcntl +}; + +/* + * Handler table for IMFS device nodes + */ + +rtems_filesystem_file_handlers_r device_handlers = { + device_open, + device_close, + device_read, + device_write, + device_ioctl, + device_lseek, + IMFS_stat, + IMFS_fchmod, + NULL, /* ftruncate */ + NULL, /* fpathconf */ + NULL, /* fsync */ + NULL, /* fdatasync */ + NULL /* fcntl */ +}; + +/* + * Set of null operations handlers. + */ + +rtems_filesystem_file_handlers_r null_handlers = { + NULL, /* open */ + NULL, /* close */ + NULL, /* read */ + NULL, /* write */ + NULL, /* ioctl */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL, /* fchmod */ + NULL, /* ftruncate */ + NULL, /* fpathconf */ + NULL, /* fsync */ + NULL, /* fdatasync */ + NULL /* fcntl */ +}; diff --git a/c/src/lib/libc/imfs.h b/c/src/lib/libc/imfs.h index 0421e9e25c..f5ea346b44 100644 --- a/c/src/lib/libc/imfs.h +++ b/c/src/lib/libc/imfs.h @@ -447,6 +447,11 @@ int IMFS_fdatasync( rtems_libio_t *iop ); +int IMFS_fcntl( + int cmd, + rtems_libio_t *iop +); + #ifdef __cplusplus } #endif diff --git a/c/src/lib/libc/imfs_fcntl.c b/c/src/lib/libc/imfs_fcntl.c new file mode 100644 index 0000000000..cbbbe1eedb --- /dev/null +++ b/c/src/lib/libc/imfs_fcntl.c @@ -0,0 +1,25 @@ +/* + * IMFS_fcntl + * + * The following routine does a fcntl on an IMFS node. + * + * COPYRIGHT (c) 1989-1998. + * On-Line Applications Research Corporation (OAR). + * Copyright assigned to U.S. Government, 1994. + * + * 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$ + */ + +#include "imfs.h" + +int IMFS_fcntl( + int cmd, + rtems_libio_t *iop +) +{ + return 0; +} diff --git a/c/src/lib/libc/imfs_handlers.c b/c/src/lib/libc/imfs_handlers.c index d34cac79eb..97e47fb8ea 100644 --- a/c/src/lib/libc/imfs_handlers.c +++ b/c/src/lib/libc/imfs_handlers.c @@ -30,9 +30,10 @@ rtems_filesystem_file_handlers_r memfile_handlers = { IMFS_stat, IMFS_fchmod, memfile_ftruncate, - NULL, + NULL, /* fpathconf */ + NULL, /* fsync */ IMFS_fdatasync, - IMFS_fdatasync + IMFS_fcntl }; /* @@ -43,14 +44,16 @@ rtems_filesystem_file_handlers_r dir_handlers = { imfs_dir_open, imfs_dir_close, imfs_dir_read, - NULL, - NULL, + NULL, /* write */ + NULL, /* ioctl */ imfs_dir_lseek, imfs_dir_fstat, IMFS_fchmod, - NULL, + NULL, /* ftruncate */ + NULL, /* fpathconf */ + NULL, /* fsync */ IMFS_fdatasync, - IMFS_fdatasync + IMFS_fcntl }; /* @@ -66,27 +69,9 @@ rtems_filesystem_file_handlers_r device_handlers = { device_lseek, IMFS_stat, IMFS_fchmod, - NULL, - NULL, - NULL, - NULL -}; - -/* - * Set of null operations handlers. - */ - -rtems_filesystem_file_handlers_r null_handlers = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + NULL, /* ftruncate */ + NULL, /* fpathconf */ + NULL, /* fsync */ + NULL, /* fdatasync */ + NULL /* fcntl */ }; -- cgit v1.2.3