mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-21 09:05:06 +08:00
Filesystem: New defaults fsync_h and fdatasync_h
New defaults rtems_filesystem_default_fsync_or_fdatasync() and rtems_filesystem_default_fsync_or_fdatasync_success() for fsync_h and fdatasync_h. The rtems_filesystem_default_fsync_or_fdatasync() sets now errno to EINVAL according to POSIX.
This commit is contained in:
@@ -675,7 +675,7 @@ static const rtems_filesystem_file_handlers_r rtems_tfs_handlers = {
|
||||
.lseek_h = rtems_tfs_lseek,
|
||||
.fstat_h = rtems_filesystem_default_fstat,
|
||||
.ftruncate_h = rtems_tfs_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -900,7 +900,8 @@ typedef int (*rtems_filesystem_ftruncate_t)(
|
||||
* @retval 0 Successful operation.
|
||||
* @retval -1 An error occured. The errno is set to indicate the error.
|
||||
*
|
||||
* @see rtems_filesystem_default_fsync().
|
||||
* @see rtems_filesystem_default_fsync_or_fdatasync() and
|
||||
* rtems_filesystem_default_fsync_or_fdatasync_success().
|
||||
*/
|
||||
typedef int (*rtems_filesystem_fsync_t)(
|
||||
rtems_libio_t *iop
|
||||
@@ -914,7 +915,8 @@ typedef int (*rtems_filesystem_fsync_t)(
|
||||
* @retval 0 Successful operation.
|
||||
* @retval -1 An error occured. The errno is set to indicate the error.
|
||||
*
|
||||
* @see rtems_filesystem_default_fdatasync().
|
||||
* @see rtems_filesystem_default_fsync_or_fdatasync() and
|
||||
* rtems_filesystem_default_fsync_or_fdatasync_success().
|
||||
*/
|
||||
typedef int (*rtems_filesystem_fdatasync_t)(
|
||||
rtems_libio_t *iop
|
||||
@@ -1068,20 +1070,20 @@ int rtems_filesystem_default_ftruncate_directory(
|
||||
);
|
||||
|
||||
/**
|
||||
* @retval -1 Always. The errno is set to ENOTSUP.
|
||||
* @retval -1 Always. The errno is set to EINVAL.
|
||||
*
|
||||
* @see rtems_filesystem_fsync_t.
|
||||
* @see rtems_filesystem_fsync_t and rtems_filesystem_fdatasync_t.
|
||||
*/
|
||||
int rtems_filesystem_default_fsync(
|
||||
int rtems_filesystem_default_fsync_or_fdatasync(
|
||||
rtems_libio_t *iop
|
||||
);
|
||||
|
||||
/**
|
||||
* @retval -1 Always. The errno is set to ENOTSUP.
|
||||
* @retval 0 Always.
|
||||
*
|
||||
* @see rtems_filesystem_fdatasync_t.
|
||||
* @see rtems_filesystem_fsync_t and rtems_filesystem_fdatasync_t.
|
||||
*/
|
||||
int rtems_filesystem_default_fdatasync(
|
||||
int rtems_filesystem_default_fsync_or_fdatasync_success(
|
||||
rtems_libio_t *iop
|
||||
);
|
||||
|
||||
|
||||
@@ -47,8 +47,8 @@ const rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers = {
|
||||
.lseek_h = rtems_filesystem_default_lseek,
|
||||
.fstat_h = null_handler_fstat,
|
||||
.ftruncate_h = rtems_filesystem_default_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
|
||||
@@ -16,7 +16,9 @@ libdefaultfs_a_SOURCES = \
|
||||
src/defaults/default_lock_and_unlock.c \
|
||||
src/defaults/default_eval_path.c \
|
||||
src/defaults/default_fchmod.c src/defaults/default_freenode.c \
|
||||
src/defaults/default_fsync.c src/defaults/default_link.c \
|
||||
src/defaults/default_fsync.c \
|
||||
src/defaults/default_fsync_success.c \
|
||||
src/defaults/default_link.c \
|
||||
src/defaults/default_read.c src/defaults/default_rmnod.c \
|
||||
src/defaults/default_chown.c \
|
||||
src/defaults/default_fcntl.c src/defaults/default_fsmount.c \
|
||||
@@ -24,7 +26,7 @@ libdefaultfs_a_SOURCES = \
|
||||
src/defaults/default_lseek_success.c \
|
||||
src/defaults/default_readlink.c src/defaults/default_statvfs.c \
|
||||
src/defaults/default_utime.c \
|
||||
src/defaults/default_fdatasync.c src/defaults/default_fstat.c \
|
||||
src/defaults/default_fstat.c \
|
||||
src/defaults/default_ioctl.c src/defaults/default_mount.c \
|
||||
src/defaults/default_rename.c src/defaults/default_symlink.c \
|
||||
src/defaults/default_write.c \
|
||||
@@ -42,7 +44,7 @@ libimfs_a_SOURCES += src/imfs/deviceerrno.c src/imfs/deviceio.c \
|
||||
src/imfs/fifoimfs_init.c src/imfs/imfs_chown.c src/imfs/imfs_config.c \
|
||||
src/imfs/imfs_creat.c src/imfs/imfs_debug.c src/imfs/imfs_directory.c \
|
||||
src/imfs/imfs_eval.c src/imfs/imfs_fchmod.c \
|
||||
src/imfs/imfs_fdatasync.c src/imfs/imfs_fifo.c \
|
||||
src/imfs/imfs_fifo.c \
|
||||
src/imfs/imfs_fsunmount.c \
|
||||
src/imfs/imfs_handlers_device.c \
|
||||
src/imfs/imfs_handlers_directory.c src/imfs/imfs_handlers_link.c \
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT (c) 2010.
|
||||
* 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.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <rtems/libio.h>
|
||||
#include <rtems/libio_.h>
|
||||
#include <rtems/seterr.h>
|
||||
|
||||
int rtems_filesystem_default_fdatasync(
|
||||
rtems_libio_t *iop
|
||||
)
|
||||
{
|
||||
rtems_set_errno_and_return_minus_one( ENOTSUP );
|
||||
}
|
||||
@@ -9,13 +9,15 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <rtems/libio.h>
|
||||
#include <rtems/libio_.h>
|
||||
#include <rtems/seterr.h>
|
||||
#if HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
int rtems_filesystem_default_fsync(
|
||||
#include <rtems/libio_.h>
|
||||
|
||||
int rtems_filesystem_default_fsync_or_fdatasync(
|
||||
rtems_libio_t *iop
|
||||
)
|
||||
{
|
||||
rtems_set_errno_and_return_minus_one( ENOTSUP );
|
||||
rtems_set_errno_and_return_minus_one( EINVAL );
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
|
||||
*
|
||||
* embedded brains GmbH
|
||||
* Obere Lagerstr. 30
|
||||
* 82178 Puchheim
|
||||
* Germany
|
||||
* <rtems@embedded-brains.de>
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*/
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <rtems/libio_.h>
|
||||
|
||||
int rtems_filesystem_default_fsync_or_fdatasync_success(
|
||||
rtems_libio_t *iop
|
||||
)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r rtems_filesystem_handlers_default = {
|
||||
.lseek_h = rtems_filesystem_default_lseek,
|
||||
.fstat_h = rtems_filesystem_default_fstat,
|
||||
.ftruncate_h = rtems_filesystem_default_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -45,8 +45,8 @@ const rtems_filesystem_file_handlers_r devFS_file_handlers = {
|
||||
.lseek_h = rtems_filesystem_default_lseek,
|
||||
.fstat_h = devFS_stat,
|
||||
.ftruncate_h = rtems_filesystem_default_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
|
||||
@@ -476,10 +476,6 @@ extern int IMFS_rename(
|
||||
size_t namelen
|
||||
);
|
||||
|
||||
extern int IMFS_fdatasync(
|
||||
rtems_libio_t *iop
|
||||
);
|
||||
|
||||
extern void IMFS_create_orphan(
|
||||
IMFS_jnode_t *jnode
|
||||
);
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
/*
|
||||
* IMFS_fdatasync
|
||||
*
|
||||
* The following routine does a sync on an IMFS node. The In Memory
|
||||
* File System is always in sync, therefore this routine always returns
|
||||
* pass.
|
||||
*
|
||||
* 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.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "imfs.h"
|
||||
|
||||
int IMFS_fdatasync(
|
||||
rtems_libio_t *iop
|
||||
)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -135,7 +135,7 @@ const rtems_filesystem_file_handlers_r IMFS_fifo_handlers = {
|
||||
IMFS_fifo_lseek,
|
||||
IMFS_stat,
|
||||
rtems_filesystem_default_ftruncate,
|
||||
rtems_filesystem_default_fsync,
|
||||
rtems_filesystem_default_fdatasync,
|
||||
rtems_filesystem_default_fsync_or_fdatasync,
|
||||
rtems_filesystem_default_fsync_or_fdatasync,
|
||||
rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r IMFS_device_handlers = {
|
||||
device_lseek,
|
||||
IMFS_stat,
|
||||
device_ftruncate,
|
||||
rtems_filesystem_default_fsync,
|
||||
rtems_filesystem_default_fdatasync,
|
||||
rtems_filesystem_default_fsync_or_fdatasync,
|
||||
rtems_filesystem_default_fsync_or_fdatasync,
|
||||
rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r IMFS_directory_handlers = {
|
||||
imfs_dir_lseek,
|
||||
IMFS_stat,
|
||||
rtems_filesystem_default_ftruncate_directory,
|
||||
rtems_filesystem_default_fsync,
|
||||
IMFS_fdatasync,
|
||||
rtems_filesystem_default_fsync_or_fdatasync_success,
|
||||
rtems_filesystem_default_fsync_or_fdatasync_success,
|
||||
rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r IMFS_link_handlers = {
|
||||
rtems_filesystem_default_lseek,
|
||||
IMFS_stat, /* stat */
|
||||
rtems_filesystem_default_ftruncate,
|
||||
rtems_filesystem_default_fsync,
|
||||
rtems_filesystem_default_fdatasync,
|
||||
rtems_filesystem_default_fsync_or_fdatasync,
|
||||
rtems_filesystem_default_fsync_or_fdatasync,
|
||||
rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -30,7 +30,7 @@ const rtems_filesystem_file_handlers_r IMFS_memfile_handlers = {
|
||||
memfile_lseek,
|
||||
IMFS_stat,
|
||||
memfile_ftruncate,
|
||||
IMFS_fdatasync, /* fsync */
|
||||
IMFS_fdatasync,
|
||||
rtems_filesystem_default_fsync_or_fdatasync_success,
|
||||
rtems_filesystem_default_fsync_or_fdatasync_success,
|
||||
rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -2634,8 +2634,8 @@ struct _rtems_filesystem_file_handlers_r nfs_file_file_handlers = {
|
||||
.lseek_h = nfs_file_lseek,
|
||||
.fstat_h = nfs_fstat,
|
||||
.ftruncate_h = nfs_file_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -2650,8 +2650,8 @@ struct _rtems_filesystem_file_handlers_r nfs_dir_file_handlers = {
|
||||
.lseek_h = nfs_dir_lseek,
|
||||
.fstat_h = nfs_fstat,
|
||||
.ftruncate_h = rtems_filesystem_default_ftruncate_directory,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -2666,8 +2666,8 @@ struct _rtems_filesystem_file_handlers_r nfs_link_file_handlers = {
|
||||
.lseek_h = rtems_filesystem_default_lseek,
|
||||
.fstat_h = nfs_fstat,
|
||||
.ftruncate_h = rtems_filesystem_default_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
|
||||
@@ -258,7 +258,7 @@ const rtems_filesystem_file_handlers_r rtems_rfs_rtems_device_handlers = {
|
||||
.lseek_h = rtems_rfs_rtems_device_lseek,
|
||||
.fstat_h = rtems_rfs_rtems_fstat,
|
||||
.ftruncate_h = rtems_rfs_rtems_device_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -200,7 +200,7 @@ const rtems_filesystem_file_handlers_r rtems_rfs_rtems_dir_handlers = {
|
||||
.lseek_h = rtems_rfs_rtems_dir_lseek,
|
||||
.fstat_h = rtems_rfs_rtems_fstat,
|
||||
.ftruncate_h = rtems_filesystem_default_ftruncate_directory,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_rfs_rtems_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -803,8 +803,8 @@ const rtems_filesystem_file_handlers_r rtems_rfs_rtems_link_handlers =
|
||||
.lseek_h = rtems_filesystem_default_lseek,
|
||||
.fstat_h = rtems_rfs_rtems_fstat,
|
||||
.ftruncate_h = rtems_filesystem_default_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
|
||||
@@ -1303,8 +1303,8 @@ static const rtems_filesystem_file_handlers_r rtems_ftpfs_handlers = {
|
||||
.lseek_h = rtems_filesystem_default_lseek,
|
||||
.fstat_h = rtems_ftpfs_fstat,
|
||||
.ftruncate_h = rtems_ftpfs_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -1317,7 +1317,7 @@ static const rtems_filesystem_file_handlers_r rtems_ftpfs_root_handlers = {
|
||||
.lseek_h = rtems_filesystem_default_lseek,
|
||||
.fstat_h = rtems_filesystem_default_fstat,
|
||||
.ftruncate_h = rtems_filesystem_default_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -1051,7 +1051,7 @@ static const rtems_filesystem_file_handlers_r rtems_tftp_handlers = {
|
||||
.lseek_h = rtems_filesystem_default_lseek,
|
||||
.fstat_h = rtems_filesystem_default_fstat,
|
||||
.ftruncate_h = rtems_tftp_ftruncate,
|
||||
.fsync_h = rtems_filesystem_default_fsync,
|
||||
.fdatasync_h = rtems_filesystem_default_fdatasync,
|
||||
.fsync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
|
||||
.fcntl_h = rtems_filesystem_default_fcntl
|
||||
};
|
||||
|
||||
@@ -770,7 +770,7 @@ static const rtems_filesystem_file_handlers_r socket_handlers = {
|
||||
rtems_filesystem_default_lseek, /* lseek */
|
||||
rtems_bsdnet_fstat, /* fstat */
|
||||
rtems_filesystem_default_ftruncate, /* ftruncate */
|
||||
rtems_filesystem_default_fsync, /* fsync */
|
||||
rtems_filesystem_default_fdatasync, /* fdatasync */
|
||||
rtems_filesystem_default_fsync_or_fdatasync, /* fsync */
|
||||
rtems_filesystem_default_fsync_or_fdatasync, /* fdatasync */
|
||||
rtems_bsdnet_fcntl /* fcntl */
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user