summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/external.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/external.cc')
-rw-r--r--winsup/cygwin/external.cc25
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);
}