Skip to content
This repository has been archived by the owner on May 4, 2018. It is now read-only.

Commit

Permalink
Fix MinGW and MinGW-w64 builds
Browse files Browse the repository at this point in the history
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 ee49c7a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
4 changes: 3 additions & 1 deletion include/uv-private/uv-win.h
Expand Up @@ -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_;
Expand Down
25 changes: 24 additions & 1 deletion src/win/winapi.h
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -4371,6 +4393,7 @@ typedef VOID (WINAPI* sReleaseSRWLockShared)
typedef VOID (WINAPI* sReleaseSRWLockExclusive)
(PSRWLOCK SRWLock);


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

0 comments on commit ee49c7a

Please sign in to comment.