comparison src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp @ 11144:33c52908bcdb

8015759: hotspot changes needed to compile with Visual Studio 2012 Reviewed-by: anthony, dholmes, dcubed Contributed-by: Tim Bell <timothy.bell@oracle.com>
author dholmes
date Mon, 15 Jul 2013 23:23:15 -0400
parents 15d6977f04b0
children
comparison
equal deleted inserted replaced
11143:ee9e76adced3 11144:33c52908bcdb
1 /* 1 /*
2 * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
27 27
28 28
29 #ifdef AMD64 29 #ifdef AMD64
30 typedef unsigned char UBYTE; 30 typedef unsigned char UBYTE;
31 31
32 #if _MSC_VER < 1700
33
34 /* Not needed for VS2012 compiler, comes from winnt.h. */
32 #define UNW_FLAG_EHANDLER 0x01 35 #define UNW_FLAG_EHANDLER 0x01
33 #define UNW_FLAG_UHANDLER 0x02 36 #define UNW_FLAG_UHANDLER 0x02
34 #define UNW_FLAG_CHAININFO 0x04 37 #define UNW_FLAG_CHAININFO 0x04
38
39 #endif
35 40
36 // This structure is used to define an UNWIND_INFO that 41 // This structure is used to define an UNWIND_INFO that
37 // only has an ExceptionHandler. There are no UnwindCodes 42 // only has an ExceptionHandler. There are no UnwindCodes
38 // declared. 43 // declared.
39 typedef struct _UNWIND_INFO_EH_ONLY { 44 typedef struct _UNWIND_INFO_EH_ONLY {
57 ULONG EndAddress; 62 ULONG EndAddress;
58 ULONG UnwindData; 63 ULONG UnwindData;
59 } RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; 64 } RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
60 */ 65 */
61 66
67 #if _MSC_VER < 1700
68
69 /* Not needed for VS2012 compiler, comes from winnt.h. */
62 typedef struct _DISPATCHER_CONTEXT { 70 typedef struct _DISPATCHER_CONTEXT {
63 ULONG64 ControlPc; 71 ULONG64 ControlPc;
64 ULONG64 ImageBase; 72 ULONG64 ImageBase;
65 PRUNTIME_FUNCTION FunctionEntry; 73 PRUNTIME_FUNCTION FunctionEntry;
66 ULONG64 EstablisherFrame; 74 ULONG64 EstablisherFrame;
68 PCONTEXT ContextRecord; 76 PCONTEXT ContextRecord;
69 // PEXCEPTION_ROUTINE LanguageHandler; 77 // PEXCEPTION_ROUTINE LanguageHandler;
70 char * LanguageHandler; // double dependency problem 78 char * LanguageHandler; // double dependency problem
71 PVOID HandlerData; 79 PVOID HandlerData;
72 } DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT; 80 } DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT;
81
82 #endif
73 83
74 #if _MSC_VER < 1500 84 #if _MSC_VER < 1500
75 85
76 /* Not needed for VS2008 compiler, comes from winnt.h. */ 86 /* Not needed for VS2008 compiler, comes from winnt.h. */
77 typedef EXCEPTION_DISPOSITION (*PEXCEPTION_ROUTINE) ( 87 typedef EXCEPTION_DISPOSITION (*PEXCEPTION_ROUTINE) (