Mercurial > hg > truffle
comparison src/share/vm/prims/jvmtiExport.hpp @ 6725:da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author | coleenp |
---|---|
date | Sat, 01 Sep 2012 13:25:18 -0400 |
parents | d2a62e0f25eb |
children | fb19af007ffc |
comparison
equal
deleted
inserted
replaced
6724:36d1d483d5d6 | 6725:da91efe96a93 |
---|---|
134 JVMTI_VERSION_MASK = 0x70000000, | 134 JVMTI_VERSION_MASK = 0x70000000, |
135 JVMTI_VERSION_VALUE = 0x30000000, | 135 JVMTI_VERSION_VALUE = 0x30000000, |
136 JVMDI_VERSION_VALUE = 0x20000000 | 136 JVMDI_VERSION_VALUE = 0x20000000 |
137 }; | 137 }; |
138 | 138 |
139 static void post_field_modification(JavaThread *thread, methodOop method, address location, | 139 static void post_field_modification(JavaThread *thread, Method* method, address location, |
140 KlassHandle field_klass, Handle object, jfieldID field, | 140 KlassHandle field_klass, Handle object, jfieldID field, |
141 char sig_type, jvalue *value); | 141 char sig_type, jvalue *value); |
142 | 142 |
143 | 143 |
144 // posts a DynamicCodeGenerated event (internal/private implementation). | 144 // posts a DynamicCodeGenerated event (internal/private implementation). |
234 static jint get_jvmti_interface(JavaVM *jvm, void **penv, jint version); | 234 static jint get_jvmti_interface(JavaVM *jvm, void **penv, jint version); |
235 static void decode_version_values(jint version, int * major, int * minor, | 235 static void decode_version_values(jint version, int * major, int * minor, |
236 int * micro); | 236 int * micro); |
237 | 237 |
238 // single stepping management methods | 238 // single stepping management methods |
239 static void at_single_stepping_point(JavaThread *thread, methodOop method, address location) KERNEL_RETURN; | 239 static void at_single_stepping_point(JavaThread *thread, Method* method, address location) KERNEL_RETURN; |
240 static void expose_single_stepping(JavaThread *thread) KERNEL_RETURN; | 240 static void expose_single_stepping(JavaThread *thread) KERNEL_RETURN; |
241 static bool hide_single_stepping(JavaThread *thread) KERNEL_RETURN_(false); | 241 static bool hide_single_stepping(JavaThread *thread) KERNEL_RETURN_(false); |
242 | 242 |
243 // Methods that notify the debugger that something interesting has happened in the VM. | 243 // Methods that notify the debugger that something interesting has happened in the VM. |
244 static void post_vm_start (); | 244 static void post_vm_start (); |
245 static void post_vm_initialized (); | 245 static void post_vm_initialized (); |
246 static void post_vm_death (); | 246 static void post_vm_death (); |
247 | 247 |
248 static void post_single_step (JavaThread *thread, methodOop method, address location) KERNEL_RETURN; | 248 static void post_single_step (JavaThread *thread, Method* method, address location) KERNEL_RETURN; |
249 static void post_raw_breakpoint (JavaThread *thread, methodOop method, address location) KERNEL_RETURN; | 249 static void post_raw_breakpoint (JavaThread *thread, Method* method, address location) KERNEL_RETURN; |
250 | 250 |
251 static void post_exception_throw (JavaThread *thread, methodOop method, address location, oop exception) KERNEL_RETURN; | 251 static void post_exception_throw (JavaThread *thread, Method* method, address location, oop exception) KERNEL_RETURN; |
252 static void notice_unwind_due_to_exception (JavaThread *thread, methodOop method, address location, oop exception, bool in_handler_frame) KERNEL_RETURN; | 252 static void notice_unwind_due_to_exception (JavaThread *thread, Method* method, address location, oop exception, bool in_handler_frame) KERNEL_RETURN; |
253 | 253 |
254 static oop jni_GetField_probe (JavaThread *thread, jobject jobj, | 254 static oop jni_GetField_probe (JavaThread *thread, jobject jobj, |
255 oop obj, klassOop klass, jfieldID fieldID, bool is_static) | 255 oop obj, Klass* klass, jfieldID fieldID, bool is_static) |
256 KERNEL_RETURN_(NULL); | 256 KERNEL_RETURN_(NULL); |
257 static oop jni_GetField_probe_nh (JavaThread *thread, jobject jobj, | 257 static oop jni_GetField_probe_nh (JavaThread *thread, jobject jobj, |
258 oop obj, klassOop klass, jfieldID fieldID, bool is_static) | 258 oop obj, Klass* klass, jfieldID fieldID, bool is_static) |
259 KERNEL_RETURN_(NULL); | 259 KERNEL_RETURN_(NULL); |
260 static void post_field_access_by_jni (JavaThread *thread, oop obj, | 260 static void post_field_access_by_jni (JavaThread *thread, oop obj, |
261 klassOop klass, jfieldID fieldID, bool is_static) KERNEL_RETURN; | 261 Klass* klass, jfieldID fieldID, bool is_static) KERNEL_RETURN; |
262 static void post_field_access (JavaThread *thread, methodOop method, | 262 static void post_field_access (JavaThread *thread, Method* method, |
263 address location, KlassHandle field_klass, Handle object, jfieldID field) KERNEL_RETURN; | 263 address location, KlassHandle field_klass, Handle object, jfieldID field) KERNEL_RETURN; |
264 static oop jni_SetField_probe (JavaThread *thread, jobject jobj, | 264 static oop jni_SetField_probe (JavaThread *thread, jobject jobj, |
265 oop obj, klassOop klass, jfieldID fieldID, bool is_static, char sig_type, | 265 oop obj, Klass* klass, jfieldID fieldID, bool is_static, char sig_type, |
266 jvalue *value) KERNEL_RETURN_(NULL); | 266 jvalue *value) KERNEL_RETURN_(NULL); |
267 static oop jni_SetField_probe_nh (JavaThread *thread, jobject jobj, | 267 static oop jni_SetField_probe_nh (JavaThread *thread, jobject jobj, |
268 oop obj, klassOop klass, jfieldID fieldID, bool is_static, char sig_type, | 268 oop obj, Klass* klass, jfieldID fieldID, bool is_static, char sig_type, |
269 jvalue *value) KERNEL_RETURN_(NULL); | 269 jvalue *value) KERNEL_RETURN_(NULL); |
270 static void post_field_modification_by_jni(JavaThread *thread, oop obj, | 270 static void post_field_modification_by_jni(JavaThread *thread, oop obj, |
271 klassOop klass, jfieldID fieldID, bool is_static, char sig_type, | 271 Klass* klass, jfieldID fieldID, bool is_static, char sig_type, |
272 jvalue *value); | 272 jvalue *value); |
273 static void post_raw_field_modification(JavaThread *thread, methodOop method, | 273 static void post_raw_field_modification(JavaThread *thread, Method* method, |
274 address location, KlassHandle field_klass, Handle object, jfieldID field, | 274 address location, KlassHandle field_klass, Handle object, jfieldID field, |
275 char sig_type, jvalue *value) KERNEL_RETURN; | 275 char sig_type, jvalue *value) KERNEL_RETURN; |
276 | 276 |
277 static void post_method_entry (JavaThread *thread, methodOop method, frame current_frame) KERNEL_RETURN; | 277 static void post_method_entry (JavaThread *thread, Method* method, frame current_frame) KERNEL_RETURN; |
278 static void post_method_exit (JavaThread *thread, methodOop method, frame current_frame) KERNEL_RETURN; | 278 static void post_method_exit (JavaThread *thread, Method* method, frame current_frame) KERNEL_RETURN; |
279 | 279 |
280 static void post_class_load (JavaThread *thread, klassOop klass) KERNEL_RETURN; | 280 static void post_class_load (JavaThread *thread, Klass* klass) KERNEL_RETURN; |
281 static void post_class_unload (klassOop klass) KERNEL_RETURN; | 281 static void post_class_unload (Klass* klass) KERNEL_RETURN; |
282 static void post_class_prepare (JavaThread *thread, klassOop klass) KERNEL_RETURN; | 282 static void post_class_prepare (JavaThread *thread, Klass* klass) KERNEL_RETURN; |
283 | 283 |
284 static void post_thread_start (JavaThread *thread) KERNEL_RETURN; | 284 static void post_thread_start (JavaThread *thread) KERNEL_RETURN; |
285 static void post_thread_end (JavaThread *thread) KERNEL_RETURN; | 285 static void post_thread_end (JavaThread *thread) KERNEL_RETURN; |
286 | 286 |
287 // Support for java.lang.instrument agent loading. | 287 // Support for java.lang.instrument agent loading. |
291 static void post_class_file_load_hook(Symbol* h_name, Handle class_loader, | 291 static void post_class_file_load_hook(Symbol* h_name, Handle class_loader, |
292 Handle h_protection_domain, | 292 Handle h_protection_domain, |
293 unsigned char **data_ptr, unsigned char **end_ptr, | 293 unsigned char **data_ptr, unsigned char **end_ptr, |
294 unsigned char **cached_data_ptr, | 294 unsigned char **cached_data_ptr, |
295 jint *cached_length_ptr); | 295 jint *cached_length_ptr); |
296 static void post_native_method_bind(methodOop method, address* function_ptr) KERNEL_RETURN; | 296 static void post_native_method_bind(Method* method, address* function_ptr) KERNEL_RETURN; |
297 static void post_compiled_method_load(nmethod *nm) KERNEL_RETURN; | 297 static void post_compiled_method_load(nmethod *nm) KERNEL_RETURN; |
298 static void post_dynamic_code_generated(const char *name, const void *code_begin, const void *code_end) KERNEL_RETURN; | 298 static void post_dynamic_code_generated(const char *name, const void *code_begin, const void *code_end) KERNEL_RETURN; |
299 | 299 |
300 // used to post a CompiledMethodUnload event | 300 // used to post a CompiledMethodUnload event |
301 static void post_compiled_method_unload(jmethodID mid, const void *code_begin) KERNEL_RETURN; | 301 static void post_compiled_method_unload(jmethodID mid, const void *code_begin) KERNEL_RETURN; |