* fhandler.h (PREFERRED_IO_BLKSIZE): Define as 64K.

* fhandler.cc (fhandler_base::fstat): Set st_blksize to
	PREFERRED_IO_BLKSIZE.
	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Ditto.
	* fhandler_mailslot.cc (fhandler_mailslot::fstat): Ditto.
	* fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
This commit is contained in:
Corinna Vinschen 2007-01-04 09:17:55 +00:00
parent 48edcc3fcc
commit 7bef7db5cc
6 changed files with 24 additions and 9 deletions

View File

@ -1,3 +1,13 @@
2007-01-04 Brian Ford <Brian.Ford@FlightSafety.com>
Corinna Vinschen <corinna@vinschen.de>
* fhandler.h (PREFERRED_IO_BLKSIZE): Define as 64K.
* fhandler.cc (fhandler_base::fstat): Set st_blksize to
PREFERRED_IO_BLKSIZE.
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Ditto.
* fhandler_mailslot.cc (fhandler_mailslot::fstat): Ditto.
* fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
2007-01-01 Christopher Faylor <me@cgf.cx> 2007-01-01 Christopher Faylor <me@cgf.cx>
* spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin * spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin

View File

@ -1,7 +1,7 @@
/* fhandler.cc. See console.cc for fhandler_console functions. /* fhandler.cc. See console.cc for fhandler_console functions.
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005, 2006 Red Hat, Inc. 2005, 2006, 2007 Red Hat, Inc.
This file is part of Cygwin. This file is part of Cygwin.
@ -1328,7 +1328,7 @@ fhandler_base::fstat (struct __stat64 *buf)
buf->st_uid = geteuid32 (); buf->st_uid = geteuid32 ();
buf->st_gid = getegid32 (); buf->st_gid = getegid32 ();
buf->st_nlink = 1; buf->st_nlink = 1;
buf->st_blksize = S_BLKSIZE; buf->st_blksize = PREFERRED_IO_BLKSIZE;
time_as_timestruc_t (&buf->st_ctim); time_as_timestruc_t (&buf->st_ctim);
buf->st_atim = buf->st_mtim = buf->st_ctim; buf->st_atim = buf->st_mtim = buf->st_ctim;
return 0; return 0;

View File

@ -1,7 +1,7 @@
/* fhandler.h /* fhandler.h
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005, 2006 Red Hat, Inc. 2005, 2006, 2007 Red Hat, Inc.
This file is part of Cygwin. This file is part of Cygwin.
@ -25,6 +25,11 @@ details. */
both flags are set. */ both flags are set. */
#define O_NONBLOCK_MASK (O_NONBLOCK | OLD_O_NDELAY) #define O_NONBLOCK_MASK (O_NONBLOCK | OLD_O_NDELAY)
/* It appears that 64K is the block size used for buffered I/O on NT.
Using this blocksize in read/write calls in the application results
in a much better performance than using smaller values. */
#define PREFERRED_IO_BLKSIZE ((blksize_t) 65536)
extern const char *windows_device_names[]; extern const char *windows_device_names[];
extern struct __cygwin_perfile *perfile_table; extern struct __cygwin_perfile *perfile_table;
#define __fmode (*(user_data->fmode_ptr)) #define __fmode (*(user_data->fmode_ptr))

View File

@ -1,7 +1,7 @@
/* fhandler_disk_file.cc /* fhandler_disk_file.cc
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2005, 2006 Red Hat, Inc. 2005, 2006, 2007 Red Hat, Inc.
This file is part of Cygwin. This file is part of Cygwin.
@ -436,7 +436,7 @@ fhandler_base::fstat_helper (struct __stat64 *buf,
else else
buf->st_ino = get_namehash (); buf->st_ino = get_namehash ();
buf->st_blksize = S_BLKSIZE; buf->st_blksize = PREFERRED_IO_BLKSIZE;
if (nAllocSize >= 0LL) if (nAllocSize >= 0LL)
/* A successful NtQueryInformationFile returns the allocation size /* A successful NtQueryInformationFile returns the allocation size

View File

@ -1,6 +1,6 @@
/* fhandler_mailslot.cc. See fhandler.h for a description of the fhandler classes. /* fhandler_mailslot.cc. See fhandler.h for a description of the fhandler classes.
Copyright 2005 Red Hat, Inc. Copyright 2005, 2007 Red Hat, Inc.
This file is part of Cygwin. This file is part of Cygwin.
@ -42,7 +42,7 @@ fhandler_mailslot::fstat (struct __stat64 *buf)
buf->st_uid = geteuid32 (); buf->st_uid = geteuid32 ();
buf->st_gid = getegid32 (); buf->st_gid = getegid32 ();
buf->st_nlink = 1; buf->st_nlink = 1;
buf->st_blksize = S_BLKSIZE; buf->st_blksize = PREFERRED_IO_BLKSIZE;
time_as_timestruc_t (&buf->st_ctim); time_as_timestruc_t (&buf->st_ctim);
buf->st_atim = buf->st_mtim = buf->st_ctim; buf->st_atim = buf->st_mtim = buf->st_ctim;
} }

View File

@ -1,6 +1,6 @@
/* fhandler_raw.cc. See fhandler.h for a description of the fhandler classes. /* fhandler_raw.cc. See fhandler.h for a description of the fhandler classes.
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005 Red Hat, Inc. Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 Red Hat, Inc.
This file is part of Cygwin. This file is part of Cygwin.
@ -55,7 +55,7 @@ fhandler_dev_raw::fstat (struct __stat64 *buf)
buf->st_uid = geteuid32 (); buf->st_uid = geteuid32 ();
buf->st_gid = getegid32 (); buf->st_gid = getegid32 ();
buf->st_nlink = 1; buf->st_nlink = 1;
buf->st_blksize = S_BLKSIZE; buf->st_blksize = PREFERRED_IO_BLKSIZE;
time_as_timestruc_t (&buf->st_ctim); time_as_timestruc_t (&buf->st_ctim);
buf->st_atim = buf->st_mtim = buf->st_ctim; buf->st_atim = buf->st_mtim = buf->st_ctim;
} }