Corrected mistakes in the IMFS file handlers table and added the missing

routine imfs_fcntl.c
This commit is contained in:
Joel Sherrill
1999-10-12 19:08:55 +00:00
parent d71fcabaa6
commit 578a415014
13 changed files with 428 additions and 31 deletions

View File

@@ -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 <errno.h>
#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 */
};

View File

@@ -447,6 +447,11 @@ int IMFS_fdatasync(
rtems_libio_t *iop
);
int IMFS_fcntl(
int cmd,
rtems_libio_t *iop
);
#ifdef __cplusplus
}
#endif

View File

@@ -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;
}

View File

@@ -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 \

View File

@@ -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 <errno.h>
#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 */
};

View File

@@ -447,6 +447,11 @@ int IMFS_fdatasync(
rtems_libio_t *iop
);
int IMFS_fcntl(
int cmd,
rtems_libio_t *iop
);
#ifdef __cplusplus
}
#endif

View File

@@ -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;
}

View File

@@ -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 */
};

View File

@@ -447,6 +447,11 @@ int IMFS_fdatasync(
rtems_libio_t *iop
);
int IMFS_fcntl(
int cmd,
rtems_libio_t *iop
);
#ifdef __cplusplus
}
#endif

View File

@@ -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;
}

View File

@@ -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 <errno.h>
#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 */
};

View File

@@ -447,6 +447,11 @@ int IMFS_fdatasync(
rtems_libio_t *iop
);
int IMFS_fcntl(
int cmd,
rtems_libio_t *iop
);
#ifdef __cplusplus
}
#endif

View File

@@ -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;
}