aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2005-04-11 21:54:54 +0000
committerCorinna Vinschen <corinna@vinschen.de>2005-04-11 21:54:54 +0000
commit98e103aac96bad385e6082c40681c76c1f37181c (patch)
tree60ecb1cd05670f46ebc3c4f7395e252304edab04 /winsup/cygwin
parent48d304ef5a306c5ae0c9b508193636202521fb7d (diff)
downloadnewlib-98e103aac96bad385e6082c40681c76c1f37181c.zip
newlib-98e103aac96bad385e6082c40681c76c1f37181c.tar.gz
newlib-98e103aac96bad385e6082c40681c76c1f37181c.tar.bz2
Revert previous patch.
* autoload.cc (GetVolumePathNamesForVolumeNameA): Remove. * autoload.cc (GetVolumeNameForVolumeMountPointA): Add. * syscalls.cc (sync): Rewrite guid case to skip floppies also on Windows 2000.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog8
-rw-r--r--winsup/cygwin/autoload.cc2
-rw-r--r--winsup/cygwin/syscalls.cc28
-rw-r--r--winsup/cygwin/wincap.cc24
-rw-r--r--winsup/cygwin/wincap.h4
5 files changed, 37 insertions, 29 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index b87a1e6..345f252 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,13 @@
2005-04-11 Corinna Vinschen <corinna@vinschen.de>
+ Revert previous patch.
+ * autoload.cc (GetVolumePathNamesForVolumeNameA): Remove.
+ * autoload.cc (GetVolumeNameForVolumeMountPointA): Add.
+ * syscalls.cc (sync): Rewrite guid case to skip floppies also on
+ Windows 2000.
+
+2005-04-11 Corinna Vinschen <corinna@vinschen.de>
+
* syscalls.cc (sync): Use renamed has_get_volume_pathnames wincap.
* wincap.h (wincaps::has_get_volume_pathnames): Rename from
has_guid_volumes
diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc
index 9ca88db..f018016 100644
--- a/winsup/cygwin/autoload.cc
+++ b/winsup/cygwin/autoload.cc
@@ -517,7 +517,7 @@ LoadDLLfuncEx (GetConsoleWindow, 0, kernel32, 1)
LoadDLLfuncEx (GetDiskFreeSpaceEx, 16, kernel32, 1)
LoadDLLfuncEx (GetNativeSystemInfo, 4, kernel32, 1)
LoadDLLfuncEx (GetSystemTimes, 12, kernel32, 1)
-LoadDLLfuncEx (GetVolumePathNamesForVolumeNameA, 16, kernel32, 1)
+LoadDLLfuncEx (GetVolumeNameForVolumeMountPointA, 12, kernel32, 1)
LoadDLLfuncEx2 (IsDebuggerPresent, 0, kernel32, 1, 1)
LoadDLLfunc (IsProcessorFeaturePresent, 4, kernel32);
LoadDLLfuncEx (IsWow64Process, 8, kernel32, 1);
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index b49b824..b3e7eb0 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -939,28 +939,28 @@ sync ()
{
char vol[CYG_MAX_PATH];
- if (wincap.has_get_volume_pathnames ()) /* Win2k and newer */
+ if (wincap.has_guid_volumes ()) /* Win2k and newer */
{
+ char a_drive[CYG_MAX_PATH] = {0};
+ char b_drive[CYG_MAX_PATH] = {0};
+
+ if (is_floppy ("A:"))
+ GetVolumeNameForVolumeMountPointA ("A:\\", a_drive, CYG_MAX_PATH);
+ if (is_floppy ("B:"))
+ GetVolumeNameForVolumeMountPointA ("B:\\", a_drive, CYG_MAX_PATH);
+
HANDLE sh = FindFirstVolumeA (vol, CYG_MAX_PATH);
if (sh != INVALID_HANDLE_VALUE)
{
do
{
- char pvol[CYG_MAX_PATH];
- DWORD len;
- if (GetVolumePathNamesForVolumeNameA (vol, pvol, CYG_MAX_PATH,
- &len))
- debug_printf ("Try volume %s (GUID: %s)", pvol, vol);
- else
- debug_printf ("Try volume %s", vol);
+ debug_printf ("Try volume %s", vol);
- /* Check pvol for being a floppy on A: or B:. Skip them. */
- if (strncasematch (pvol, "A:", 2)
- || strncasematch (pvol, "B:", 2))
+ /* Check vol for being a floppy on A: or B:. Skip them. */
+ if (strcasematch (vol, a_drive) || strcasematch (vol, b_drive))
{
- pvol[2] = '\0';
- if (is_floppy (pvol))
- continue;
+ debug_printf ("Is floppy, don't sync");
+ continue;
}
/* Eliminate trailing backslash. */
diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc
index bec5278..9a790b0 100644
--- a/winsup/cygwin/wincap.cc
+++ b/winsup/cygwin/wincap.cc
@@ -57,7 +57,7 @@ static NO_COPY wincaps wincap_unknown = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true,
has_extended_priority_class:false,
- has_get_volume_pathnames:false
+ has_guid_volumes:false
};
static NO_COPY wincaps wincap_95 = {
@@ -106,7 +106,7 @@ static NO_COPY wincaps wincap_95 = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true,
has_extended_priority_class:false,
- has_get_volume_pathnames:false
+ has_guid_volumes:false
};
static NO_COPY wincaps wincap_95osr2 = {
@@ -155,7 +155,7 @@ static NO_COPY wincaps wincap_95osr2 = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true,
has_extended_priority_class:false,
- has_get_volume_pathnames:false
+ has_guid_volumes:false
};
static NO_COPY wincaps wincap_98 = {
@@ -204,7 +204,7 @@ static NO_COPY wincaps wincap_98 = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true,
has_extended_priority_class:false,
- has_get_volume_pathnames:false
+ has_guid_volumes:false
};
static NO_COPY wincaps wincap_98se = {
@@ -253,7 +253,7 @@ static NO_COPY wincaps wincap_98se = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true,
has_extended_priority_class:false,
- has_get_volume_pathnames:false
+ has_guid_volumes:false
};
static NO_COPY wincaps wincap_me = {
@@ -302,7 +302,7 @@ static NO_COPY wincaps wincap_me = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:true,
has_extended_priority_class:false,
- has_get_volume_pathnames:false
+ has_guid_volumes:false
};
static NO_COPY wincaps wincap_nt3 = {
@@ -351,7 +351,7 @@ static NO_COPY wincaps wincap_nt3 = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:false,
has_extended_priority_class:false,
- has_get_volume_pathnames:false
+ has_guid_volumes:false
};
static NO_COPY wincaps wincap_nt4 = {
@@ -400,7 +400,7 @@ static NO_COPY wincaps wincap_nt4 = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:false,
has_extended_priority_class:false,
- has_get_volume_pathnames:false
+ has_guid_volumes:false
};
static NO_COPY wincaps wincap_nt4sp4 = {
@@ -449,7 +449,7 @@ static NO_COPY wincaps wincap_nt4sp4 = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:false,
has_extended_priority_class:false,
- has_get_volume_pathnames:false
+ has_guid_volumes:false
};
static NO_COPY wincaps wincap_2000 = {
@@ -498,7 +498,7 @@ static NO_COPY wincaps wincap_2000 = {
has_ioctl_storage_get_media_types_ex:false,
start_proc_suspended:false,
has_extended_priority_class:true,
- has_get_volume_pathnames:false
+ has_guid_volumes:true
};
static NO_COPY wincaps wincap_xp = {
@@ -547,7 +547,7 @@ static NO_COPY wincaps wincap_xp = {
has_ioctl_storage_get_media_types_ex:true,
start_proc_suspended:false,
has_extended_priority_class:true,
- has_get_volume_pathnames:true
+ has_guid_volumes:true
};
static NO_COPY wincaps wincap_2003 = {
@@ -596,7 +596,7 @@ static NO_COPY wincaps wincap_2003 = {
has_ioctl_storage_get_media_types_ex:true,
start_proc_suspended:false,
has_extended_priority_class:true,
- has_get_volume_pathnames:true
+ has_guid_volumes:true
};
wincapc wincap;
diff --git a/winsup/cygwin/wincap.h b/winsup/cygwin/wincap.h
index 52c2085..6d7d63e 100644
--- a/winsup/cygwin/wincap.h
+++ b/winsup/cygwin/wincap.h
@@ -58,7 +58,7 @@ struct wincaps
unsigned has_ioctl_storage_get_media_types_ex : 1;
unsigned start_proc_suspended : 1;
unsigned has_extended_priority_class : 1;
- unsigned has_get_volume_pathnames : 1;
+ unsigned has_guid_volumes : 1;
};
class wincapc
@@ -121,7 +121,7 @@ public:
bool IMPLEMENT (has_ioctl_storage_get_media_types_ex)
bool IMPLEMENT (start_proc_suspended)
bool IMPLEMENT (has_extended_priority_class)
- bool IMPLEMENT (has_get_volume_pathnames)
+ bool IMPLEMENT (has_guid_volumes)
#undef IMPLEMENT
};