* external.cc (cygwin_internal): Implement CW_ALLOC_DRIVE_MAP,

CW_MAP_DRIVE_MAP, CW_FREE_DRIVE_MAP.
	* fhandler_process.cc: Include mount.h.
	(get_volume_path_names_for_volume_name): Move to mount.cc.
	(struct dos_drive_mappings): Ditto.
	* mount.cc (get_volume_path_names_for_volume_name): Move here.
	(dos_drive_mappings::dos_drive_mappings): Ditto.
	(dos_drive_mappings::fixup_if_match): Ditto.
	(dos_drive_mappings::~dos_drive_mappings): Ditto.
	* mount.h (class dos_drive_mappings): Declare her.
	* include/sys/cygwin.h (cygwin_getinfo_types): Add CW_ALLOC_DRIVE_MAP,
	CW_MAP_DRIVE_MAP, CW_FREE_DRIVE_MAP.
	* include/cygwin/version.h: Bump API minor number.
This commit is contained in:
Corinna Vinschen
2011-12-22 12:25:10 +00:00
parent 3a03267d6d
commit 3a24189bba
7 changed files with 217 additions and 165 deletions

View File

@ -528,6 +528,31 @@ cygwin_internal (cygwin_getinfo_types t, ...)
}
break;
case CW_ALLOC_DRIVE_MAP:
{
dos_drive_mappings *ddm = new dos_drive_mappings ();
res = (uintptr_t) ddm;
}
break;
case CW_MAP_DRIVE_MAP:
{
dos_drive_mappings *ddm = va_arg (arg, dos_drive_mappings *);
wchar_t *pathbuf = va_arg (arg, wchar_t *);
if (ddm && pathbuf)
res = (uintptr_t) ddm->fixup_if_match (pathbuf);
}
break;
case CW_FREE_DRIVE_MAP:
{
dos_drive_mappings *ddm = va_arg (arg, dos_drive_mappings *);
if (ddm)
delete ddm;
res = 0;
}
break;
default:
set_errno (ENOSYS);
}