Add NO_NTFS_DEVICE_DEFAULT_IO_OPS.

(Logical change 1.283)
edge.strict_endians
cantab.net!aia21 2004-02-26 11:41:48 +00:00
parent e48ba0d47f
commit 4b12f1bfce
3 changed files with 52 additions and 0 deletions

View File

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

View File

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

View File

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