354
355 static void post_thread_start (JavaThread *thread) NOT_JVMTI_RETURN;
356 static void post_thread_end (JavaThread *thread) NOT_JVMTI_RETURN;
357
358 static void post_vthread_start (jthread vthread) NOT_JVMTI_RETURN;
359 static void post_vthread_end (jthread vthread) NOT_JVMTI_RETURN;
360 static void post_vthread_mount (jthread vthread) NOT_JVMTI_RETURN;
361 static void post_vthread_unmount (jthread vthread) NOT_JVMTI_RETURN;
362
363 static void continuation_yield_cleanup (JavaThread* thread, jint continuation_frame_count) NOT_JVMTI_RETURN;
364
365 // Support for java.lang.instrument agent loading.
366 static bool _should_post_class_file_load_hook;
367 inline static void set_should_post_class_file_load_hook(bool on) { _should_post_class_file_load_hook = on; }
368 inline static bool should_post_class_file_load_hook() {
369 JVMTI_ONLY(return _should_post_class_file_load_hook);
370 NOT_JVMTI(return false;)
371 }
372 static bool is_early_phase() NOT_JVMTI_RETURN_(false);
373 static bool has_early_class_hook_env() NOT_JVMTI_RETURN_(false);
374 // Return true if the class was modified by the hook.
375 static bool post_class_file_load_hook(Symbol* h_name, Handle class_loader,
376 Handle h_protection_domain,
377 unsigned char **data_ptr, unsigned char **end_ptr,
378 JvmtiCachedClassFileData **cache_ptr) NOT_JVMTI_RETURN_(false);
379 static void post_native_method_bind(Method* method, address* function_ptr) NOT_JVMTI_RETURN;
380 static void post_compiled_method_load(JvmtiEnv* env, nmethod *nm) NOT_JVMTI_RETURN;
381 static void post_compiled_method_load(nmethod *nm) NOT_JVMTI_RETURN;
382 static void post_dynamic_code_generated(const char *name, const void *code_begin, const void *code_end) NOT_JVMTI_RETURN;
383
384 // used to post a CompiledMethodUnload event
385 static void post_compiled_method_unload(jmethodID mid, const void *code_begin) NOT_JVMTI_RETURN;
386
387 // similar to post_dynamic_code_generated except that it can be used to
388 // post a DynamicCodeGenerated event while holding locks in the VM. Any event
389 // posted using this function is recorded by the enclosing event collector
390 // -- JvmtiDynamicCodeEventCollector.
391 static void post_dynamic_code_generated_while_holding_locks(const char* name, address code_begin, address code_end) NOT_JVMTI_RETURN;
392
393 static void post_garbage_collection_finish() NOT_JVMTI_RETURN;
|
354
355 static void post_thread_start (JavaThread *thread) NOT_JVMTI_RETURN;
356 static void post_thread_end (JavaThread *thread) NOT_JVMTI_RETURN;
357
358 static void post_vthread_start (jthread vthread) NOT_JVMTI_RETURN;
359 static void post_vthread_end (jthread vthread) NOT_JVMTI_RETURN;
360 static void post_vthread_mount (jthread vthread) NOT_JVMTI_RETURN;
361 static void post_vthread_unmount (jthread vthread) NOT_JVMTI_RETURN;
362
363 static void continuation_yield_cleanup (JavaThread* thread, jint continuation_frame_count) NOT_JVMTI_RETURN;
364
365 // Support for java.lang.instrument agent loading.
366 static bool _should_post_class_file_load_hook;
367 inline static void set_should_post_class_file_load_hook(bool on) { _should_post_class_file_load_hook = on; }
368 inline static bool should_post_class_file_load_hook() {
369 JVMTI_ONLY(return _should_post_class_file_load_hook);
370 NOT_JVMTI(return false;)
371 }
372 static bool is_early_phase() NOT_JVMTI_RETURN_(false);
373 static bool has_early_class_hook_env() NOT_JVMTI_RETURN_(false);
374 static bool has_early_vmstart_env() NOT_JVMTI_RETURN_(false);
375 // Return true if the class was modified by the hook.
376 static bool post_class_file_load_hook(Symbol* h_name, Handle class_loader,
377 Handle h_protection_domain,
378 unsigned char **data_ptr, unsigned char **end_ptr,
379 JvmtiCachedClassFileData **cache_ptr) NOT_JVMTI_RETURN_(false);
380 static void post_native_method_bind(Method* method, address* function_ptr) NOT_JVMTI_RETURN;
381 static void post_compiled_method_load(JvmtiEnv* env, nmethod *nm) NOT_JVMTI_RETURN;
382 static void post_compiled_method_load(nmethod *nm) NOT_JVMTI_RETURN;
383 static void post_dynamic_code_generated(const char *name, const void *code_begin, const void *code_end) NOT_JVMTI_RETURN;
384
385 // used to post a CompiledMethodUnload event
386 static void post_compiled_method_unload(jmethodID mid, const void *code_begin) NOT_JVMTI_RETURN;
387
388 // similar to post_dynamic_code_generated except that it can be used to
389 // post a DynamicCodeGenerated event while holding locks in the VM. Any event
390 // posted using this function is recorded by the enclosing event collector
391 // -- JvmtiDynamicCodeEventCollector.
392 static void post_dynamic_code_generated_while_holding_locks(const char* name, address code_begin, address code_end) NOT_JVMTI_RETURN;
393
394 static void post_garbage_collection_finish() NOT_JVMTI_RETURN;
|