factor/vm/os-windows-nt.hpp

43 lines
881 B
C++
Raw Normal View History

2009-05-02 05:04:19 -04:00
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x0501 // For AddVectoredExceptionHandler
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
2009-05-05 14:03:24 -04:00
#include <shellapi.h>
2009-05-02 05:04:19 -04:00
#ifdef _MSC_VER
#undef min
#undef max
#endif
2009-05-04 02:46:13 -04:00
namespace factor
{
2009-05-04 05:50:24 -04:00
typedef char symbol_char;
2009-05-02 05:04:19 -04:00
#define FACTOR_OS_STRING "winnt"
#define FACTOR_DLL NULL
VM_C_API LONG exception_handler(PEXCEPTION_RECORD e, void *frame, PCONTEXT c, void *dispatch);
2009-05-04 02:46:13 -04:00
// SSE traps raise these exception codes, which are defined in internal NT headers
// but not winbase.h
2009-12-13 21:00:02 -05:00
#ifndef STATUS_FLOAT_MULTIPLE_FAULTS
#define STATUS_FLOAT_MULTIPLE_FAULTS 0xC00002B4
2009-12-13 21:00:02 -05:00
#endif
#ifndef STATUS_FLOAT_MULTIPLE_TRAPS
#define STATUS_FLOAT_MULTIPLE_TRAPS 0xC00002B5
2009-12-13 21:00:02 -05:00
#endif
2009-08-25 03:55:18 -04:00
typedef HANDLE THREADHANDLE;
THREADHANDLE start_thread(void *(*start_routine)(void *),void *args);
inline static THREADHANDLE thread_id() { return GetCurrentThread(); }
2009-08-28 16:46:47 -04:00
2009-05-04 02:46:13 -04:00
}