1// Copyright 2012 the V8 project authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef V8_BASE_WIN32_HEADERS_H_ 6#define V8_BASE_WIN32_HEADERS_H_ 7 8#ifndef WIN32_LEAN_AND_MEAN 9// WIN32_LEAN_AND_MEAN implies NOCRYPT and NOGDI. 10#define WIN32_LEAN_AND_MEAN 11#endif 12#ifndef NOMINMAX 13#define NOMINMAX 14#endif 15#ifndef NOKERNEL 16#define NOKERNEL 17#endif 18#ifndef NOUSER 19#define NOUSER 20#endif 21#ifndef NOSERVICE 22#define NOSERVICE 23#endif 24#ifndef NOSOUND 25#define NOSOUND 26#endif 27#ifndef NOMCX 28#define NOMCX 29#endif 30// Require Windows XP or higher (this is required for the RtlCaptureContext 31// function to be present). 32#ifndef _WIN32_WINNT 33#define _WIN32_WINNT 0x501 34#endif 35 36#include <windows.h> 37 38#include <mmsystem.h> // For timeGetTime(). 39#include <signal.h> // For raise(). 40#include <time.h> // For LocalOffset() implementation. 41#ifdef __MINGW32__ 42// Require Windows XP or higher when compiling with MinGW. This is for MinGW 43// header files to expose getaddrinfo. 44#undef _WIN32_WINNT 45#define _WIN32_WINNT 0x501 46#endif // __MINGW32__ 47#if !defined(__MINGW32__) || defined(__MINGW64_VERSION_MAJOR) 48#include <dbghelp.h> // For SymLoadModule64 and al. 49#include <errno.h> // For STRUNCATE 50#endif // !defined(__MINGW32__) || defined(__MINGW64_VERSION_MAJOR) 51#include <limits.h> // For INT_MAX and al. 52#include <tlhelp32.h> // For Module32First and al. 53 54// These additional WIN32 includes have to be right here as the #undef's below 55// makes it impossible to have them elsewhere. 56#include <winsock2.h> 57#include <ws2tcpip.h> 58#ifndef __MINGW32__ 59#include <wspiapi.h> 60#endif // __MINGW32__ 61#include <process.h> // For _beginthreadex(). 62#include <stdlib.h> 63 64#undef VOID 65#undef DELETE 66#undef IN 67#undef THIS 68#undef CONST 69#undef NAN 70#undef UNKNOWN 71#undef NONE 72#undef ANY 73#undef IGNORE 74#undef STRICT 75#undef GetObject 76#undef CreateSemaphore 77#undef Yield 78#undef RotateRight32 79#undef RotateRight64 80 81#endif // V8_BASE_WIN32_HEADERS_H_ 82