Mercurial > hg > truffle
annotate src/os/windows/vm/jvm_windows.h @ 4680:acf7d88327fa
Fixed two asserts in the implicit div exception handling for Windows that are not valid for Graal (as it deoptimizes to some place before the div instead of exactly to the div bytecode).
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Thu, 23 Feb 2012 23:06:28 +0100 |
parents | 5def270bc147 |
children | 11c26bfcf8c7 |
rev | line source |
---|---|
0 | 1 /* |
1972 | 2 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
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 | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
25 #ifndef _JAVASOFT_JVM_MD_H_ | |
26 #define _JAVASOFT_JVM_MD_H_ | |
27 | |
28 /* | |
29 * This file is currently collecting system-specific dregs for the | |
30 * JNI conversion, which should be sorted out later. | |
31 */ | |
32 | |
3429
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
33 // JDK7 requires VS2010 |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
34 #if _MSC_VER >= 1600 |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
35 // JDK7 minimum platform requirement: Windows XP |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
36 #if _WIN32_WINNT < 0x0501 |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
37 #undef _WIN32_WINNT |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
38 #define _WIN32_WINNT 0x0501 |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
39 #endif |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
40 #endif |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
41 |
0 | 42 #include <windows.h> |
43 | |
3429
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
44 #if _MSC_VER <= 1200 |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
45 // Psapi.h doesn't come with Visual Studio 6; it can be downloaded as Platform |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
46 // SDK from Microsoft. Here are the definitions copied from Psapi.h |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
47 typedef struct _MODULEINFO { |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
48 LPVOID lpBaseOfDll; |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
49 DWORD SizeOfImage; |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
50 LPVOID EntryPoint; |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
51 } MODULEINFO, *LPMODULEINFO; |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
52 |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
53 #else |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
54 #include <Psapi.h> |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
55 #endif |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
56 |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
57 |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
58 |
5def270bc147
7016797: Hotspot: securely/restrictive load dlls and new API for loading system dlls
zgu
parents:
1972
diff
changeset
|
59 #include <Tlhelp32.h> |
0 | 60 |
61 // #include "jni.h" | |
62 | |
63 #define JNI_ONLOAD_SYMBOLS {"_JNI_OnLoad@8", "JNI_OnLoad"} | |
64 #define JNI_ONUNLOAD_SYMBOLS {"_JNI_OnUnload@8", "JNI_OnUnload"} | |
65 #define JVM_ONLOAD_SYMBOLS {"_JVM_OnLoad@12", "JVM_OnLoad"} | |
66 #define AGENT_ONLOAD_SYMBOLS {"_Agent_OnLoad@12", "Agent_OnLoad"} | |
67 #define AGENT_ONUNLOAD_SYMBOLS {"_Agent_OnUnload@4", "Agent_OnUnload"} | |
68 #define AGENT_ONATTACH_SYMBOLS {"_Agent_OnAttach@12", "Agent_OnAttach"} | |
69 | |
70 #define JNI_LIB_PREFIX "" | |
71 #define JNI_LIB_SUFFIX ".dll" | |
72 | |
73 struct dirent { | |
74 char d_name[MAX_PATH]; | |
75 }; | |
76 | |
77 typedef struct { | |
78 struct dirent dirent; | |
79 char *path; | |
80 HANDLE handle; | |
81 WIN32_FIND_DATA find_data; | |
82 } DIR; | |
83 | |
84 #include <stdlib.h> | |
85 | |
86 #define JVM_MAXPATHLEN _MAX_PATH | |
87 | |
88 #define JVM_R_OK 4 | |
89 #define JVM_W_OK 2 | |
90 #define JVM_X_OK 1 | |
91 #define JVM_F_OK 0 | |
92 | |
93 #ifdef __cplusplus | |
94 extern "C" { | |
95 #endif | |
96 | |
97 JNIEXPORT void * JNICALL | |
98 JVM_GetThreadInterruptEvent(); | |
99 | |
100 #ifdef __cplusplus | |
101 } /* extern "C" */ | |
102 #endif /* __cplusplus */ | |
103 | |
104 /* | |
105 * File I/O | |
106 */ | |
107 | |
108 // #include <sys/types.h> | |
109 // #include <sys/stat.h> | |
110 // #include <fcntl.h> | |
111 // #include <errno.h> | |
112 | |
113 /* O Flags */ | |
114 | |
115 #define JVM_O_RDONLY O_RDONLY | |
116 #define JVM_O_WRONLY O_WRONLY | |
117 #define JVM_O_RDWR O_RDWR | |
118 #define JVM_O_O_APPEND O_APPEND | |
119 #define JVM_O_EXCL O_EXCL | |
120 #define JVM_O_CREAT O_CREAT | |
121 #define JVM_O_DELETE O_TEMPORARY | |
122 | |
123 /* Signals */ | |
124 | |
125 #define JVM_SIGINT SIGINT | |
126 #define JVM_SIGTERM SIGTERM | |
127 | |
128 #define SHUTDOWN1_SIGNAL SIGINT /* Shutdown Hooks support. */ | |
129 #define SHUTDOWN2_SIGNAL SIGTERM | |
130 | |
131 #endif /* !_JAVASOFT_JVM_MD_H_ */ |