diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2012-10-13 12:34:18 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2012-10-13 12:34:18 +0000 |
commit | db8224e8be2d72a00e828a4af6db5cbd1853cebf (patch) | |
tree | b194832d0893c11dcb8dabb39279cffff002566b /winsup/cygwin/fhandler.h | |
parent | 93c9cdc1b0cf91b83c31e9bc52a2e94f07a79ad5 (diff) | |
download | newlib-db8224e8be2d72a00e828a4af6db5cbd1853cebf.zip newlib-db8224e8be2d72a00e828a4af6db5cbd1853cebf.tar.gz newlib-db8224e8be2d72a00e828a4af6db5cbd1853cebf.tar.bz2 |
* 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.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index 3b7f05b..e2db959 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -798,7 +798,9 @@ class fhandler_mailslot : public fhandler_base_overlapped class fhandler_dev_raw: public fhandler_base { protected: + char *devbufalloc; char *devbuf; + size_t devbufalign; size_t devbufsiz; size_t devbufstart; size_t devbufend; @@ -856,7 +858,6 @@ class fhandler_dev_floppy: public fhandler_dev_raw { private: _off64_t drive_size; - unsigned long bytes_per_sector; part_t *partitions; struct status_flags { |