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;