diff options
Diffstat (limited to 'winsup/cygwin/external.cc')
-rw-r--r-- | winsup/cygwin/external.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc index 947680420..e6e349395 100644 --- a/winsup/cygwin/external.cc +++ b/winsup/cygwin/external.cc @@ -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); } |