summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_tape.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2012-10-13 12:34:18 +0000
committerCorinna Vinschen <corinna@vinschen.de>2012-10-13 12:34:18 +0000
commitdb8224e8be2d72a00e828a4af6db5cbd1853cebf (patch)
treeb194832d0893c11dcb8dabb39279cffff002566b /winsup/cygwin/fhandler_tape.cc
parent93c9cdc1b0cf91b83c31e9bc52a2e94f07a79ad5 (diff)
downloadcygnal-db8224e8be2d72a00e828a4af6db5cbd1853cebf.tar.gz
cygnal-db8224e8be2d72a00e828a4af6db5cbd1853cebf.tar.bz2
cygnal-db8224e8be2d72a00e828a4af6db5cbd1853cebf.zip
* fhandler.h (class fhandler_dev_raw): Add members devbufalloc and
devbufalign. (class fhandler_dev_floppy): Remove member bytes_per_sector; * fhandler_floppy.cc (bytes_per_sector): Define as devbufalign. (fhandler_dev_floppy::open): Set devbufalign to a multiple of the sector size and handle devbuf allocation and alignment in !O_DIRECT case here. Change comment accordingly. Call FSCTL_ALLOW_EXTENDED_DASD_IO for partitions as well. (fhandler_dev_floppy::raw_write): Fix comment. Rewrite and fix writing behaviour when application uses read and lseek. (fhandler_dev_floppy::lseek): Use rounddown macro. Call SetFilePointerEx rather than the old SetFilePointer. (fhandler_dev_floppy::ioctl): Reformat switch. Call IOCTL_DISK_UPDATE_PROPERTIES rather than IOCTL_DISK_UPDATE_DRIVE_SIZE in BLKRRPART case. Support BLKIOMIN, BLKIOOPT, BLKPBSZGET and BLKALIGNOFF. * fhandler_raw.cc (fhandler_dev_raw::fhandler_dev_raw): Initialize all devbuf-related members. (fhandler_dev_raw::~fhandler_dev_raw): Delete devbufalloc rather than devbuf. (fhandler_dev_raw::open): Drop allocating devbuf. (fhandler_dev_raw::dup): Allocate devbufalloc and set devbuf to support new sector-aligned devbuf handling. (fhandler_dev_raw::fixup_after_exec): Ditto. * fhandler_tape.cc (fhandler_dev_tape::open): Ditto, set devbufalign to 1. * include/cygwin/fs.h (BLKIOMIN): Define. (BLKIOOPT): Define. (BLKALIGNOFF): Define. (BLKPBSZGET): Define.
Diffstat (limited to 'winsup/cygwin/fhandler_tape.cc')
-rw-r--r--winsup/cygwin/fhandler_tape.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler_tape.cc b/winsup/cygwin/fhandler_tape.cc
index 5d1a7f9e6..67d6f5c8d 100644
--- a/winsup/cygwin/fhandler_tape.cc
+++ b/winsup/cygwin/fhandler_tape.cc
@@ -1214,9 +1214,9 @@ fhandler_dev_tape::open (int flags, mode_t)
if (!(flags & O_DIRECT))
{
devbufsiz = mt.drive (driveno ())->dp ()->MaximumBlockSize;
- devbuf = new char [devbufsiz];
+ devbufalign = 1;
+ devbufalloc = devbuf = new char [devbufsiz];
}
- devbufstart = devbufend = 0;
}
else
ReleaseMutex (mt_mtx);