From 4b12f1bfcea08b1bc05bb79fa7a6d33b74274dde Mon Sep 17 00:00:00 2001 From: "cantab.net!aia21" Date: Thu, 26 Feb 2004 11:41:48 +0000 Subject: [PATCH] Add NO_NTFS_DEVICE_DEFAULT_IO_OPS. (Logical change 1.283) --- include/ntfs/device_io.h | 4 ++++ libntfs/device_io.c | 38 ++++++++++++++++++++++++++++++++++++++ libntfs/volume.c | 10 ++++++++++ 3 files changed, 52 insertions(+) diff --git a/include/ntfs/device_io.h b/include/ntfs/device_io.h index 03e03849..7213631e 100644 --- a/include/ntfs/device_io.h +++ b/include/ntfs/device_io.h @@ -24,6 +24,8 @@ #include "config.h" +#ifndef NO_NTFS_DEVICE_DEFAULT_IO_OPS + #ifndef __CYGWIN32__ /* Not on Cygwin; use standard Unix style low level device operations. */ @@ -42,5 +44,7 @@ struct ntfs_device_operations; extern struct ntfs_device_operations ntfs_device_default_io_ops; +#endif /* NO_NTFS_DEVICE_DEFAULT_IO_OPS */ + #endif /* defined _NTFS_DEVICE_IO_H */ diff --git a/libntfs/device_io.c b/libntfs/device_io.c index e69de29b..9a044d61 100644 --- a/libntfs/device_io.c +++ b/libntfs/device_io.c @@ -0,0 +1,38 @@ +/* + * device_io.c - Default device io operations. Part of the Linux-NTFS project. + * + * Copyright (c) 2003 Anton Altaparmakov + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program (in the main directory of the Linux-NTFS + * distribution in the file COPYING); if not, write to the Free Software + * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "config.h" + +#ifndef NO_NTFS_DEVICE_DEFAULT_IO_OPS + +#ifndef __CYGWIN32__ + +/* Not on Cygwin; use standard Unix style low level device operations. */ +#include "unix_io.c" + +#else /* __CYGWIN32__ */ + +/* On Cygwin; use Win32 low level device operations. */ +#include "win32_io.c" + +#endif /* __CYGWIN32__ */ + +#endif /* NO_NTFS_DEVICE_DEFAULT_IO_OPS */ diff --git a/libntfs/volume.c b/libntfs/volume.c index afeb5802..69df2493 100644 --- a/libntfs/volume.c +++ b/libntfs/volume.c @@ -945,10 +945,20 @@ ntfs_volume *ntfs_mount(const char *name, unsigned long rwflag) { struct ntfs_device *dev; +#ifndef NO_NTFS_DEVICE_DEFAULT_IO_OPS /* Allocate an ntfs_device structure. */ dev = ntfs_device_alloc(name, 0, &ntfs_device_default_io_ops, NULL); if (!dev) return NULL; +#else + /* + * ntfs_mount() makes no sense if NO_NTFS_DEVICE_DEFAULT_IO_OPS is + * defined as there are no device operations available in libntfs in + * this case. + */ + errno = ENOTSUP; + return NULL; +#endif /* Call ntfs_device_mount() to do the actual mount. */ return ntfs_device_mount(dev, rwflag); }