Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

Fix MinGW and MinGW-w64 builds

Closes GH-222 and GH-267.
Thanks Yuki Okumura and Yasuhiro Matsumoto for providing fixes.
  • Loading branch information
piscisaureus committed Dec 1, 2011
1 parent 7c50415 commit ee49c7a2b67e7d7b0245023408c7d2448287edb5
Showing with 27 additions and 2 deletions.
  1. +3 −1 include/uv-private/uv-win.h
  2. +24 −1 src/win/winapi.h
@@ -142,7 +142,9 @@ typedef HANDLE uv_thread_t;
typedef CRITICAL_SECTION uv_mutex_t;

typedef union {
SRWLOCK srwlock_;
/* srwlock_ has type SRWLOCK, but not all toolchains define this type in */
/* windows.h. */
void* srwlock_;
struct {
uv_mutex_t read_mutex_;
uv_mutex_t write_mutex_;
@@ -4080,7 +4080,7 @@

/* from ntifs.h */
/* MinGW already has it */
#ifndef __MINGW32__
#if defined(_MSC_VER) || defined(__MINGW64__)
typedef struct _REPARSE_DATA_BUFFER {
ULONG ReparseTag;
USHORT ReparseDataLength;
@@ -4281,6 +4281,10 @@ typedef enum _FILE_INFORMATION_CLASS {
FILE_SPECIAL_ACCESS)
#endif

#ifndef IO_REPARSE_TAG_SYMLINK
# define IO_REPARSE_TAG_SYMLINK (0xA000000CL)
#endif

typedef VOID (NTAPI *PIO_APC_ROUTINE)
(PVOID ApcContext,
PIO_STATUS_BLOCK IoStatusBlock,
@@ -4333,6 +4337,24 @@ typedef NTSTATUS (NTAPI *sNtSetInformationFile)
} OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY;
#endif

#ifdef __MINGW32__
typedef PVOID RTL_SRWLOCK;
typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK;
#endif

/* from wincon.h */
#ifndef ENABLE_INSERT_MODE
# define ENABLE_INSERT_MODE 0x20
#endif

#ifndef ENABLE_QUICK_EDIT_MODE
# define ENABLE_QUICK_EDIT_MODE 0x40
#endif

#ifndef ENABLE_EXTENDED_FLAGS
# define ENABLE_EXTENDED_FLAGS 0x80
#endif

typedef BOOL (WINAPI *sGetQueuedCompletionStatusEx)
(HANDLE CompletionPort,
LPOVERLAPPED_ENTRY lpCompletionPortEntries,
@@ -4371,6 +4393,7 @@ typedef VOID (WINAPI* sReleaseSRWLockShared)
typedef VOID (WINAPI* sReleaseSRWLockExclusive)
(PSRWLOCK SRWLock);


/* Ntapi function pointers */
extern sRtlNtStatusToDosError pRtlNtStatusToDosError;
extern sNtDeviceIoControlFile pNtDeviceIoControlFile;

0 comments on commit ee49c7a

Please sign in to comment.
You can’t perform that action at this time.