Cygwin: errno: handle ERROR_CASE_DIFFERING_NAMES_IN_DIR
Rather than special case status code 0xc00004b3, add status and matching error code to ntdll.h and handle it as part of the standard error mapping. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
e1026837dd
commit
fb1fe93203
|
@ -53,6 +53,7 @@ static const errmap_t errmap[] =
|
||||||
X (CALL_NOT_IMPLEMENTED, ENOSYS),
|
X (CALL_NOT_IMPLEMENTED, ENOSYS),
|
||||||
X (CANCELLED, EINTR),
|
X (CANCELLED, EINTR),
|
||||||
X (CANNOT_MAKE, EPERM),
|
X (CANNOT_MAKE, EPERM),
|
||||||
|
X (CASE_DIFFERING_NAMES_IN_DIR, EINVAL),
|
||||||
X (CHILD_NOT_COMPLETE, EBUSY),
|
X (CHILD_NOT_COMPLETE, EBUSY),
|
||||||
X (COMMITMENT_LIMIT, EAGAIN),
|
X (COMMITMENT_LIMIT, EAGAIN),
|
||||||
X (CONNECTION_REFUSED, ECONNREFUSED),
|
X (CONNECTION_REFUSED, ECONNREFUSED),
|
||||||
|
|
|
@ -2547,15 +2547,7 @@ fhandler_disk_file::fs_ioc_setflags (uint64_t flags)
|
||||||
FileCaseSensitiveInformation);
|
FileCaseSensitiveInformation);
|
||||||
if (!NT_SUCCESS (status))
|
if (!NT_SUCCESS (status))
|
||||||
{
|
{
|
||||||
/* Special case: The directory contains files which only
|
__seterrno_from_nt_status (status);
|
||||||
differ in case. NtSetInformationFile refuses to change
|
|
||||||
back to case insensitivity and returns status 0xc00004b3.
|
|
||||||
There's no STATUS_xyz macro assigned to that value yet,
|
|
||||||
nor does it map to a useful Win32 error value. */
|
|
||||||
if (status == (NTSTATUS) 0xc00004b3)
|
|
||||||
set_errno (EINVAL); /* Does that make sense? */
|
|
||||||
else
|
|
||||||
__seterrno_from_nt_status (status);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,11 @@
|
||||||
extern GUID __cygwin_socket_guid;
|
extern GUID __cygwin_socket_guid;
|
||||||
#define CYGWIN_SOCKET_GUID (&__cygwin_socket_guid)
|
#define CYGWIN_SOCKET_GUID (&__cygwin_socket_guid)
|
||||||
|
|
||||||
|
/* Status codes not known to Mingw-w64 yet. The error code needs to
|
||||||
|
be maintained here as well as long as Mingw-w64 didn't follow up. */
|
||||||
|
#define STATUS_CASE_DIFFERING_NAMES_IN_DIR ((NTSTATUS)0xC00004B3)
|
||||||
|
#define ERROR_CASE_DIFFERING_NAMES_IN_DIR __MSABI_LONG(424)
|
||||||
|
|
||||||
/* Custom Cygwin-only status codes. */
|
/* Custom Cygwin-only status codes. */
|
||||||
#define STATUS_THREAD_SIGNALED ((NTSTATUS)0xe0000001)
|
#define STATUS_THREAD_SIGNALED ((NTSTATUS)0xe0000001)
|
||||||
#define STATUS_THREAD_CANCELED ((NTSTATUS)0xe0000002)
|
#define STATUS_THREAD_CANCELED ((NTSTATUS)0xe0000002)
|
||||||
|
|
Loading…
Reference in New Issue