aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/fhandler.h
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.h
parent93c9cdc1b0cf91b83c31e9bc52a2e94f07a79ad5 (diff)
downloadnewlib-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.h3
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
{