1#![allow(non_snake_case, non_camel_case_types)]
2
3use jni_sys::*;
4use std::os::raw::c_char;
5use std::os::raw::c_void;
6use std::os::raw::c_uchar;
7use std::option::Option;
8
9use crate::sys::r#type::*;
10use crate::sys::constant::{jvmtiEventMode, jvmtiEvent, jvmtiError, jvmtiHeapObjectFilter, jvmtiJlocationFormat, jvmtiPhase, jvmtiVerboseFlag};
11
12pub type jvmtiEnv = *const jvmtiInterface_;
13
14#[repr(C)]
15#[derive(Debug, Copy, Clone)]
16pub struct jvmtiInterface_ {
17 pub reserved1: *mut c_void,
18 pub SetEventNotificationMode: Option<
19 unsafe extern "C" fn(
20 env: *mut jvmtiEnv,
21 mode: jvmtiEventMode,
22 event_type: jvmtiEvent,
23 event_thread: jthread,
24 ...
25 ) -> jvmtiError,
26 >,
27 pub reserved3: *mut c_void,
28 pub GetAllThreads: Option<
29 unsafe extern "C" fn(
30 env: *mut jvmtiEnv,
31 threads_count_ptr: *mut jint,
32 threads_ptr: *mut *mut jthread,
33 ) -> jvmtiError,
34 >,
35 pub SuspendThread: Option<
36 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread) -> jvmtiError,
37 >,
38 pub ResumeThread: Option<
39 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread) -> jvmtiError,
40 >,
41 pub StopThread: Option<
42 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread, exception: jobject) -> jvmtiError,
43 >,
44 pub InterruptThread: Option<
45 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread) -> jvmtiError,
46 >,
47 pub GetThreadInfo: Option<
48 unsafe extern "C" fn(
49 env: *mut jvmtiEnv,
50 thread: jthread,
51 info_ptr: *mut jvmtiThreadInfo,
52 ) -> jvmtiError,
53 >,
54 pub GetOwnedMonitorInfo: Option<
55 unsafe extern "C" fn(
56 env: *mut jvmtiEnv,
57 thread: jthread,
58 owned_monitor_count_ptr: *mut jint,
59 owned_monitors_ptr: *mut *mut jobject,
60 ) -> jvmtiError,
61 >,
62 pub GetCurrentContendedMonitor: Option<
63 unsafe extern "C" fn(
64 env: *mut jvmtiEnv,
65 thread: jthread,
66 monitor_ptr: *mut jobject,
67 ) -> jvmtiError,
68 >,
69 pub RunAgentThread: Option<
70 unsafe extern "C" fn(
71 env: *mut jvmtiEnv,
72 thread: jthread,
73 proc_: jvmtiStartFunction,
74 arg: *const c_void,
75 priority: jint,
76 ) -> jvmtiError,
77 >,
78 pub GetTopThreadGroups: Option<
79 unsafe extern "C" fn(
80 env: *mut jvmtiEnv,
81 group_count_ptr: *mut jint,
82 groups_ptr: *mut *mut jthreadGroup,
83 ) -> jvmtiError,
84 >,
85 pub GetThreadGroupInfo: Option<
86 unsafe extern "C" fn(
87 env: *mut jvmtiEnv,
88 group: jthreadGroup,
89 info_ptr: *mut jvmtiThreadGroupInfo,
90 ) -> jvmtiError,
91 >,
92 pub GetThreadGroupChildren: Option<
93 unsafe extern "C" fn(
94 env: *mut jvmtiEnv,
95 group: jthreadGroup,
96 thread_count_ptr: *mut jint,
97 threads_ptr: *mut *mut jthread,
98 group_count_ptr: *mut jint,
99 groups_ptr: *mut *mut jthreadGroup,
100 ) -> jvmtiError,
101 >,
102 pub GetFrameCount: Option<
103 unsafe extern "C" fn(
104 env: *mut jvmtiEnv,
105 thread: jthread,
106 count_ptr: *mut jint,
107 ) -> jvmtiError,
108 >,
109 pub GetThreadState: Option<
110 unsafe extern "C" fn(
111 env: *mut jvmtiEnv,
112 thread: jthread,
113 thread_state_ptr: *mut jint,
114 ) -> jvmtiError,
115 >,
116 pub GetCurrentThread: Option<
117 unsafe extern "C" fn(env: *mut jvmtiEnv, thread_ptr: *mut jthread) -> jvmtiError,
118 >,
119 pub GetFrameLocation: Option<
120 unsafe extern "C" fn(
121 env: *mut jvmtiEnv,
122 thread: jthread,
123 depth: jint,
124 method_ptr: *mut jmethodID,
125 location_ptr: *mut jlocation,
126 ) -> jvmtiError,
127 >,
128 pub NotifyFramePop: Option<
129 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread, depth: jint) -> jvmtiError,
130 >,
131 pub GetLocalObject: Option<
132 unsafe extern "C" fn(
133 env: *mut jvmtiEnv,
134 thread: jthread,
135 depth: jint,
136 slot: jint,
137 value_ptr: *mut jobject,
138 ) -> jvmtiError,
139 >,
140 pub GetLocalInt: Option<
141 unsafe extern "C" fn(
142 env: *mut jvmtiEnv,
143 thread: jthread,
144 depth: jint,
145 slot: jint,
146 value_ptr: *mut jint,
147 ) -> jvmtiError,
148 >,
149 pub GetLocalLong: Option<
150 unsafe extern "C" fn(
151 env: *mut jvmtiEnv,
152 thread: jthread,
153 depth: jint,
154 slot: jint,
155 value_ptr: *mut jlong,
156 ) -> jvmtiError,
157 >,
158 pub GetLocalFloat: Option<
159 unsafe extern "C" fn(
160 env: *mut jvmtiEnv,
161 thread: jthread,
162 depth: jint,
163 slot: jint,
164 value_ptr: *mut jfloat,
165 ) -> jvmtiError,
166 >,
167 pub GetLocalDouble: Option<
168 unsafe extern "C" fn(
169 env: *mut jvmtiEnv,
170 thread: jthread,
171 depth: jint,
172 slot: jint,
173 value_ptr: *mut jdouble,
174 ) -> jvmtiError,
175 >,
176 pub SetLocalObject: Option<
177 unsafe extern "C" fn(
178 env: *mut jvmtiEnv,
179 thread: jthread,
180 depth: jint,
181 slot: jint,
182 value: jobject,
183 ) -> jvmtiError,
184 >,
185 pub SetLocalInt: Option<
186 unsafe extern "C" fn(
187 env: *mut jvmtiEnv,
188 thread: jthread,
189 depth: jint,
190 slot: jint,
191 value: jint,
192 ) -> jvmtiError,
193 >,
194 pub SetLocalLong: Option<
195 unsafe extern "C" fn(
196 env: *mut jvmtiEnv,
197 thread: jthread,
198 depth: jint,
199 slot: jint,
200 value: jlong,
201 ) -> jvmtiError,
202 >,
203 pub SetLocalFloat: Option<
204 unsafe extern "C" fn(
205 env: *mut jvmtiEnv,
206 thread: jthread,
207 depth: jint,
208 slot: jint,
209 value: jfloat,
210 ) -> jvmtiError,
211 >,
212 pub SetLocalDouble: Option<
213 unsafe extern "C" fn(
214 env: *mut jvmtiEnv,
215 thread: jthread,
216 depth: jint,
217 slot: jint,
218 value: jdouble,
219 ) -> jvmtiError,
220 >,
221 pub CreateRawMonitor: Option<
222 unsafe extern "C" fn(
223 env: *mut jvmtiEnv,
224 name: *const c_char,
225 monitor_ptr: *mut jrawMonitorID,
226 ) -> jvmtiError,
227 >,
228 pub DestroyRawMonitor: Option<
229 unsafe extern "C" fn(env: *mut jvmtiEnv, monitor: jrawMonitorID) -> jvmtiError,
230 >,
231 pub RawMonitorEnter: Option<
232 unsafe extern "C" fn(env: *mut jvmtiEnv, monitor: jrawMonitorID) -> jvmtiError,
233 >,
234 pub RawMonitorExit: Option<
235 unsafe extern "C" fn(env: *mut jvmtiEnv, monitor: jrawMonitorID) -> jvmtiError,
236 >,
237 pub RawMonitorWait: Option<
238 unsafe extern "C" fn(
239 env: *mut jvmtiEnv,
240 monitor: jrawMonitorID,
241 millis: jlong,
242 ) -> jvmtiError,
243 >,
244 pub RawMonitorNotify: Option<
245 unsafe extern "C" fn(env: *mut jvmtiEnv, monitor: jrawMonitorID) -> jvmtiError,
246 >,
247 pub RawMonitorNotifyAll: Option<
248 unsafe extern "C" fn(env: *mut jvmtiEnv, monitor: jrawMonitorID) -> jvmtiError,
249 >,
250 pub SetBreakpoint: Option<
251 unsafe extern "C" fn(
252 env: *mut jvmtiEnv,
253 method: jmethodID,
254 location: jlocation,
255 ) -> jvmtiError,
256 >,
257 pub ClearBreakpoint: Option<
258 unsafe extern "C" fn(
259 env: *mut jvmtiEnv,
260 method: jmethodID,
261 location: jlocation,
262 ) -> jvmtiError,
263 >,
264 pub reserved40: *mut c_void,
265 pub SetFieldAccessWatch: Option<
266 unsafe extern "C" fn(env: *mut jvmtiEnv, klass: jclass, field: jfieldID) -> jvmtiError,
267 >,
268 pub ClearFieldAccessWatch: Option<
269 unsafe extern "C" fn(env: *mut jvmtiEnv, klass: jclass, field: jfieldID) -> jvmtiError,
270 >,
271 pub SetFieldModificationWatch: Option<
272 unsafe extern "C" fn(env: *mut jvmtiEnv, klass: jclass, field: jfieldID) -> jvmtiError,
273 >,
274 pub ClearFieldModificationWatch: Option<
275 unsafe extern "C" fn(env: *mut jvmtiEnv, klass: jclass, field: jfieldID) -> jvmtiError,
276 >,
277 pub IsModifiableClass: Option<
278 unsafe extern "C" fn(
279 env: *mut jvmtiEnv,
280 klass: jclass,
281 is_modifiable_class_ptr: *mut jboolean,
282 ) -> jvmtiError,
283 >,
284 pub Allocate: Option<
285 unsafe extern "C" fn(
286 env: *mut jvmtiEnv,
287 size: jlong,
288 mem_ptr: *mut *mut c_uchar,
289 ) -> jvmtiError,
290 >,
291 pub Deallocate: Option<
292 unsafe extern "C" fn(env: *mut jvmtiEnv, mem: *mut c_uchar) -> jvmtiError,
293 >,
294 pub GetClassSignature: Option<
295 unsafe extern "C" fn(
296 env: *mut jvmtiEnv,
297 klass: jclass,
298 signature_ptr: *mut *mut c_char,
299 generic_ptr: *mut *mut c_char,
300 ) -> jvmtiError,
301 >,
302 pub GetClassStatus: Option<
303 unsafe extern "C" fn(
304 env: *mut jvmtiEnv,
305 klass: jclass,
306 status_ptr: *mut jint,
307 ) -> jvmtiError,
308 >,
309 pub GetSourceFileName: Option<
310 unsafe extern "C" fn(
311 env: *mut jvmtiEnv,
312 klass: jclass,
313 source_name_ptr: *mut *mut c_char,
314 ) -> jvmtiError,
315 >,
316 pub GetClassModifiers: Option<
317 unsafe extern "C" fn(
318 env: *mut jvmtiEnv,
319 klass: jclass,
320 modifiers_ptr: *mut jint,
321 ) -> jvmtiError,
322 >,
323 pub GetClassMethods: Option<
324 unsafe extern "C" fn(
325 env: *mut jvmtiEnv,
326 klass: jclass,
327 method_count_ptr: *mut jint,
328 methods_ptr: *mut *mut jmethodID,
329 ) -> jvmtiError,
330 >,
331 pub GetClassFields: Option<
332 unsafe extern "C" fn(
333 env: *mut jvmtiEnv,
334 klass: jclass,
335 field_count_ptr: *mut jint,
336 fields_ptr: *mut *mut jfieldID,
337 ) -> jvmtiError,
338 >,
339 pub GetImplementedInterfaces: Option<
340 unsafe extern "C" fn(
341 env: *mut jvmtiEnv,
342 klass: jclass,
343 interface_count_ptr: *mut jint,
344 interfaces_ptr: *mut *mut jclass,
345 ) -> jvmtiError,
346 >,
347 pub IsInterface: Option<
348 unsafe extern "C" fn(
349 env: *mut jvmtiEnv,
350 klass: jclass,
351 is_interface_ptr: *mut jboolean,
352 ) -> jvmtiError,
353 >,
354 pub IsArrayClass: Option<
355 unsafe extern "C" fn(
356 env: *mut jvmtiEnv,
357 klass: jclass,
358 is_array_class_ptr: *mut jboolean,
359 ) -> jvmtiError,
360 >,
361 pub GetClassLoader: Option<
362 unsafe extern "C" fn(
363 env: *mut jvmtiEnv,
364 klass: jclass,
365 classloader_ptr: *mut jobject,
366 ) -> jvmtiError,
367 >,
368 pub GetObjectHashCode: Option<
369 unsafe extern "C" fn(
370 env: *mut jvmtiEnv,
371 object: jobject,
372 hash_code_ptr: *mut jint,
373 ) -> jvmtiError,
374 >,
375 pub GetObjectMonitorUsage: Option<
376 unsafe extern "C" fn(
377 env: *mut jvmtiEnv,
378 object: jobject,
379 info_ptr: *mut jvmtiMonitorUsage,
380 ) -> jvmtiError,
381 >,
382 pub GetFieldName: Option<
383 unsafe extern "C" fn(
384 env: *mut jvmtiEnv,
385 klass: jclass,
386 field: jfieldID,
387 name_ptr: *mut *mut c_char,
388 signature_ptr: *mut *mut c_char,
389 generic_ptr: *mut *mut c_char,
390 ) -> jvmtiError,
391 >,
392 pub GetFieldDeclaringClass: Option<
393 unsafe extern "C" fn(
394 env: *mut jvmtiEnv,
395 klass: jclass,
396 field: jfieldID,
397 declaring_class_ptr: *mut jclass,
398 ) -> jvmtiError,
399 >,
400 pub GetFieldModifiers: Option<
401 unsafe extern "C" fn(
402 env: *mut jvmtiEnv,
403 klass: jclass,
404 field: jfieldID,
405 modifiers_ptr: *mut jint,
406 ) -> jvmtiError,
407 >,
408 pub IsFieldSynthetic: Option<
409 unsafe extern "C" fn(
410 env: *mut jvmtiEnv,
411 klass: jclass,
412 field: jfieldID,
413 is_synthetic_ptr: *mut jboolean,
414 ) -> jvmtiError,
415 >,
416 pub GetMethodName: Option<
417 unsafe extern "C" fn(
418 env: *mut jvmtiEnv,
419 method: jmethodID,
420 name_ptr: *mut *mut c_char,
421 signature_ptr: *mut *mut c_char,
422 generic_ptr: *mut *mut c_char,
423 ) -> jvmtiError,
424 >,
425 pub GetMethodDeclaringClass: Option<
426 unsafe extern "C" fn(
427 env: *mut jvmtiEnv,
428 method: jmethodID,
429 declaring_class_ptr: *mut jclass,
430 ) -> jvmtiError,
431 >,
432 pub GetMethodModifiers: Option<
433 unsafe extern "C" fn(
434 env: *mut jvmtiEnv,
435 method: jmethodID,
436 modifiers_ptr: *mut jint,
437 ) -> jvmtiError,
438 >,
439 pub reserved67: *mut c_void,
440 pub GetMaxLocals: Option<
441 unsafe extern "C" fn(
442 env: *mut jvmtiEnv,
443 method: jmethodID,
444 max_ptr: *mut jint,
445 ) -> jvmtiError,
446 >,
447 pub GetArgumentsSize: Option<
448 unsafe extern "C" fn(
449 env: *mut jvmtiEnv,
450 method: jmethodID,
451 size_ptr: *mut jint,
452 ) -> jvmtiError,
453 >,
454 pub GetLineNumberTable: Option<
455 unsafe extern "C" fn(
456 env: *mut jvmtiEnv,
457 method: jmethodID,
458 entry_count_ptr: *mut jint,
459 table_ptr: *mut *mut jvmtiLineNumberEntry,
460 ) -> jvmtiError,
461 >,
462 pub GetMethodLocation: Option<
463 unsafe extern "C" fn(
464 env: *mut jvmtiEnv,
465 method: jmethodID,
466 start_location_ptr: *mut jlocation,
467 end_location_ptr: *mut jlocation,
468 ) -> jvmtiError,
469 >,
470 pub GetLocalVariableTable: Option<
471 unsafe extern "C" fn(
472 env: *mut jvmtiEnv,
473 method: jmethodID,
474 entry_count_ptr: *mut jint,
475 table_ptr: *mut *mut jvmtiLocalVariableEntry,
476 ) -> jvmtiError,
477 >,
478 pub SetNativeMethodPrefix: Option<
479 unsafe extern "C" fn(
480 env: *mut jvmtiEnv,
481 prefix: *const c_char,
482 ) -> jvmtiError,
483 >,
484 pub SetNativeMethodPrefixes: Option<
485 unsafe extern "C" fn(
486 env: *mut jvmtiEnv,
487 prefix_count: jint,
488 prefixes: *mut *mut c_char,
489 ) -> jvmtiError,
490 >,
491 pub GetBytecodes: Option<
492 unsafe extern "C" fn(
493 env: *mut jvmtiEnv,
494 method: jmethodID,
495 bytecode_count_ptr: *mut jint,
496 bytecodes_ptr: *mut *mut c_uchar,
497 ) -> jvmtiError,
498 >,
499 pub IsMethodNative: Option<
500 unsafe extern "C" fn(
501 env: *mut jvmtiEnv,
502 method: jmethodID,
503 is_native_ptr: *mut jboolean,
504 ) -> jvmtiError,
505 >,
506 pub IsMethodSynthetic: Option<
507 unsafe extern "C" fn(
508 env: *mut jvmtiEnv,
509 method: jmethodID,
510 is_synthetic_ptr: *mut jboolean,
511 ) -> jvmtiError,
512 >,
513 pub GetLoadedClasses: Option<
514 unsafe extern "C" fn(
515 env: *mut jvmtiEnv,
516 class_count_ptr: *mut jint,
517 classes_ptr: *mut *mut jclass,
518 ) -> jvmtiError,
519 >,
520 pub GetClassLoaderClasses: Option<
521 unsafe extern "C" fn(
522 env: *mut jvmtiEnv,
523 initiating_loader: jobject,
524 class_count_ptr: *mut jint,
525 classes_ptr: *mut *mut jclass,
526 ) -> jvmtiError,
527 >,
528 pub PopFrame: Option<
529 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread) -> jvmtiError,
530 >,
531 pub ForceEarlyReturnObject: Option<
532 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread, value: jobject) -> jvmtiError,
533 >,
534 pub ForceEarlyReturnInt: Option<
535 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread, value: jint) -> jvmtiError,
536 >,
537 pub ForceEarlyReturnLong: Option<
538 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread, value: jlong) -> jvmtiError,
539 >,
540 pub ForceEarlyReturnFloat: Option<
541 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread, value: jfloat) -> jvmtiError,
542 >,
543 pub ForceEarlyReturnDouble: Option<
544 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread, value: jdouble) -> jvmtiError,
545 >,
546 pub ForceEarlyReturnVoid: Option<
547 unsafe extern "C" fn(env: *mut jvmtiEnv, thread: jthread) -> jvmtiError,
548 >,
549 pub RedefineClasses: Option<
550 unsafe extern "C" fn(
551 env: *mut jvmtiEnv,
552 class_count: jint,
553 class_definitions: *const jvmtiClassDefinition,
554 ) -> jvmtiError,
555 >,
556 pub GetVersionNumber: Option<
557 unsafe extern "C" fn(env: *mut jvmtiEnv, version_ptr: *mut jint) -> jvmtiError,
558 >,
559 pub GetCapabilities: Option<
560 unsafe extern "C" fn(
561 env: *mut jvmtiEnv,
562 capabilities_ptr: *mut jvmtiCapabilities,
563 ) -> jvmtiError,
564 >,
565 pub GetSourceDebugExtension: Option<
566 unsafe extern "C" fn(
567 env: *mut jvmtiEnv,
568 klass: jclass,
569 source_debug_extension_ptr: *mut *mut c_char,
570 ) -> jvmtiError,
571 >,
572 pub IsMethodObsolete: Option<
573 unsafe extern "C" fn(
574 env: *mut jvmtiEnv,
575 method: jmethodID,
576 is_obsolete_ptr: *mut jboolean,
577 ) -> jvmtiError,
578 >,
579 pub SuspendThreadList: Option<
580 unsafe extern "C" fn(
581 env: *mut jvmtiEnv,
582 request_count: jint,
583 request_list: *const jthread,
584 results: *mut jvmtiError,
585 ) -> jvmtiError,
586 >,
587 pub ResumeThreadList: Option<
588 unsafe extern "C" fn(
589 env: *mut jvmtiEnv,
590 request_count: jint,
591 request_list: *const jthread,
592 results: *mut jvmtiError,
593 ) -> jvmtiError,
594 >,
595 pub reserved94: *mut c_void,
596 pub reserved95: *mut c_void,
597 pub reserved96: *mut c_void,
598 pub reserved97: *mut c_void,
599 pub reserved98: *mut c_void,
600 pub reserved99: *mut c_void,
601 pub GetAllStackTraces: Option<
602 unsafe extern "C" fn(
603 env: *mut jvmtiEnv,
604 max_frame_count: jint,
605 stack_info_ptr: *mut *mut jvmtiStackInfo,
606 thread_count_ptr: *mut jint,
607 ) -> jvmtiError,
608 >,
609 pub GetThreadListStackTraces: Option<
610 unsafe extern "C" fn(
611 env: *mut jvmtiEnv,
612 thread_count: jint,
613 thread_list: *const jthread,
614 max_frame_count: jint,
615 stack_info_ptr: *mut *mut jvmtiStackInfo,
616 ) -> jvmtiError,
617 >,
618 pub GetThreadLocalStorage: Option<
619 unsafe extern "C" fn(
620 env: *mut jvmtiEnv,
621 thread: jthread,
622 data_ptr: *mut *mut c_void,
623 ) -> jvmtiError,
624 >,
625 pub SetThreadLocalStorage: Option<
626 unsafe extern "C" fn(
627 env: *mut jvmtiEnv,
628 thread: jthread,
629 data: *const c_void,
630 ) -> jvmtiError,
631 >,
632 pub GetStackTrace: Option<
633 unsafe extern "C" fn(
634 env: *mut jvmtiEnv,
635 thread: jthread,
636 start_depth: jint,
637 max_frame_count: jint,
638 frame_buffer: *mut jvmtiFrameInfo,
639 count_ptr: *mut jint,
640 ) -> jvmtiError,
641 >,
642 pub reserved105: *mut c_void,
643 pub GetTag: Option<
644 unsafe extern "C" fn(
645 env: *mut jvmtiEnv,
646 object: jobject,
647 tag_ptr: *mut jlong,
648 ) -> jvmtiError,
649 >,
650 pub SetTag: Option<
651 unsafe extern "C" fn(env: *mut jvmtiEnv, object: jobject, tag: jlong) -> jvmtiError,
652 >,
653 pub ForceGarbageCollection:
654 Option<unsafe extern "C" fn(env: *mut jvmtiEnv) -> jvmtiError>,
655 pub IterateOverObjectsReachableFromObject: Option<
656 unsafe extern "C" fn(
657 env: *mut jvmtiEnv,
658 object: jobject,
659 object_reference_callback: jvmtiObjectReferenceCallback,
660 user_data: *const c_void,
661 ) -> jvmtiError,
662 >,
663 pub IterateOverReachableObjects: Option<
664 unsafe extern "C" fn(
665 env: *mut jvmtiEnv,
666 heap_root_callback: jvmtiHeapRootCallback,
667 stack_ref_callback: jvmtiStackReferenceCallback,
668 object_ref_callback: jvmtiObjectReferenceCallback,
669 user_data: *const c_void,
670 ) -> jvmtiError,
671 >,
672 pub IterateOverHeap: Option<
673 unsafe extern "C" fn(
674 env: *mut jvmtiEnv,
675 object_filter: jvmtiHeapObjectFilter,
676 heap_object_callback: jvmtiHeapObjectCallback,
677 user_data: *const c_void,
678 ) -> jvmtiError,
679 >,
680 pub IterateOverInstancesOfClass: Option<
681 unsafe extern "C" fn(
682 env: *mut jvmtiEnv,
683 klass: jclass,
684 object_filter: jvmtiHeapObjectFilter,
685 heap_object_callback: jvmtiHeapObjectCallback,
686 user_data: *const c_void,
687 ) -> jvmtiError,
688 >,
689 pub reserved113: *mut c_void,
690 pub GetObjectsWithTags: Option<
691 unsafe extern "C" fn(
692 env: *mut jvmtiEnv,
693 tag_count: jint,
694 tags: *const jlong,
695 count_ptr: *mut jint,
696 object_result_ptr: *mut *mut jobject,
697 tag_result_ptr: *mut *mut jlong,
698 ) -> jvmtiError,
699 >,
700 pub FollowReferences: Option<
701 unsafe extern "C" fn(
702 env: *mut jvmtiEnv,
703 heap_filter: jint,
704 klass: jclass,
705 initial_object: jobject,
706 callbacks: *const jvmtiHeapCallbacks,
707 user_data: *const c_void,
708 ) -> jvmtiError,
709 >,
710 pub IterateThroughHeap: Option<
711 unsafe extern "C" fn(
712 env: *mut jvmtiEnv,
713 heap_filter: jint,
714 klass: jclass,
715 callbacks: *const jvmtiHeapCallbacks,
716 user_data: *const c_void,
717 ) -> jvmtiError,
718 >,
719 pub reserved117: *mut c_void,
720 pub reserved118: *mut c_void,
721 pub reserved119: *mut c_void,
722 pub SetJNIFunctionTable: Option<
723 unsafe extern "C" fn(
724 env: *mut jvmtiEnv,
725 function_table: *const jniNativeInterface,
726 ) -> jvmtiError,
727 >,
728 pub GetJNIFunctionTable: Option<
729 unsafe extern "C" fn(
730 env: *mut jvmtiEnv,
731 function_table: *mut *mut jniNativeInterface,
732 ) -> jvmtiError,
733 >,
734 pub SetEventCallbacks: Option<
735 unsafe extern "C" fn(
736 env: *mut jvmtiEnv,
737 callbacks: *const jvmtiEventCallbacks,
738 size_of_callbacks: jint,
739 ) -> jvmtiError
740 >,
741 pub GenerateEvents: Option<
742 unsafe extern "C" fn(env: *mut jvmtiEnv, event_type: jvmtiEvent) -> jvmtiError,
743 >,
744 pub GetExtensionFunctions: Option<
745 unsafe extern "C" fn(
746 env: *mut jvmtiEnv,
747 extension_count_ptr: *mut jint,
748 extensions: *mut *mut jvmtiExtensionFunctionInfo,
749 ) -> jvmtiError,
750 >,
751 pub GetExtensionEvents: Option<
752 unsafe extern "C" fn(
753 env: *mut jvmtiEnv,
754 extension_count_ptr: *mut jint,
755 extensions: *mut *mut jvmtiExtensionEventInfo,
756 ) -> jvmtiError,
757 >,
758 pub SetExtensionEventCallback: Option<
759 unsafe extern "C" fn(
760 env: *mut jvmtiEnv,
761 extension_event_index: jint,
762 callback: jvmtiExtensionEvent,
763 ) -> jvmtiError,
764 >,
765 pub DisposeEnvironment:
766 Option<unsafe extern "C" fn(env: *mut jvmtiEnv) -> jvmtiError>,
767 pub GetErrorName: Option<
768 unsafe extern "C" fn(
769 env: *mut jvmtiEnv,
770 error: jvmtiError,
771 name_ptr: *mut *mut c_char,
772 ) -> jvmtiError,
773 >,
774 pub GetJLocationFormat: Option<
775 unsafe extern "C" fn(
776 env: *mut jvmtiEnv,
777 format_ptr: *mut jvmtiJlocationFormat,
778 ) -> jvmtiError,
779 >,
780 pub GetSystemProperties: Option<
781 unsafe extern "C" fn(
782 env: *mut jvmtiEnv,
783 count_ptr: *mut jint,
784 property_ptr: *mut *mut *mut c_char,
785 ) -> jvmtiError,
786 >,
787 pub GetSystemProperty: Option<
788 unsafe extern "C" fn(
789 env: *mut jvmtiEnv,
790 property: *const c_char,
791 value_ptr: *mut *mut c_char,
792 ) -> jvmtiError,
793 >,
794 pub SetSystemProperty: Option<
795 unsafe extern "C" fn(
796 env: *mut jvmtiEnv,
797 property: *const c_char,
798 value: *const c_char,
799 ) -> jvmtiError,
800 >,
801 pub GetPhase: Option<
802 unsafe extern "C" fn(env: *mut jvmtiEnv, phase_ptr: *mut jvmtiPhase) -> jvmtiError,
803 >,
804 pub GetCurrentThreadCpuTimerInfo: Option<
805 unsafe extern "C" fn(env: *mut jvmtiEnv, info_ptr: *mut jvmtiTimerInfo) -> jvmtiError,
806 >,
807 pub GetCurrentThreadCpuTime: Option<
808 unsafe extern "C" fn(env: *mut jvmtiEnv, nanos_ptr: *mut jlong) -> jvmtiError,
809 >,
810 pub GetThreadCpuTimerInfo: Option<
811 unsafe extern "C" fn(env: *mut jvmtiEnv, info_ptr: *mut jvmtiTimerInfo) -> jvmtiError,
812 >,
813 pub GetThreadCpuTime: Option<
814 unsafe extern "C" fn(
815 env: *mut jvmtiEnv,
816 thread: jthread,
817 nanos_ptr: *mut jlong,
818 ) -> jvmtiError,
819 >,
820 pub GetTimerInfo: Option<
821 unsafe extern "C" fn(env: *mut jvmtiEnv, info_ptr: *mut jvmtiTimerInfo) -> jvmtiError,
822 >,
823 pub GetTime: Option<
824 unsafe extern "C" fn(env: *mut jvmtiEnv, nanos_ptr: *mut jlong) -> jvmtiError,
825 >,
826 pub GetPotentialCapabilities: Option<
827 unsafe extern "C" fn(
828 env: *mut jvmtiEnv,
829 capabilities_ptr: *mut jvmtiCapabilities,
830 ) -> jvmtiError,
831 >,
832 pub reserved141: *mut c_void,
833 pub AddCapabilities: Option<
834 unsafe extern "C" fn(
835 env: *mut jvmtiEnv,
836 capabilities_ptr: *const jvmtiCapabilities,
837 ) -> jvmtiError,
838 >,
839 pub RelinquishCapabilities: Option<
840 unsafe extern "C" fn(
841 env: *mut jvmtiEnv,
842 capabilities_ptr: *const jvmtiCapabilities,
843 ) -> jvmtiError,
844 >,
845 pub GetAvailableProcessors: Option<
846 unsafe extern "C" fn(env: *mut jvmtiEnv, processor_count_ptr: *mut jint) -> jvmtiError,
847 >,
848 pub GetClassVersionNumbers: Option<
849 unsafe extern "C" fn(
850 env: *mut jvmtiEnv,
851 klass: jclass,
852 minor_version_ptr: *mut jint,
853 major_version_ptr: *mut jint,
854 ) -> jvmtiError,
855 >,
856 pub GetConstantPool: Option<
857 unsafe extern "C" fn(
858 env: *mut jvmtiEnv,
859 klass: jclass,
860 constant_pool_count_ptr: *mut jint,
861 constant_pool_byte_count_ptr: *mut jint,
862 constant_pool_bytes_ptr: *mut *mut c_uchar,
863 ) -> jvmtiError,
864 >,
865 pub GetEnvironmentLocalStorage: Option<
866 unsafe extern "C" fn(
867 env: *mut jvmtiEnv,
868 data_ptr: *mut *mut c_void,
869 ) -> jvmtiError,
870 >,
871 pub SetEnvironmentLocalStorage: Option<
872 unsafe extern "C" fn(env: *mut jvmtiEnv, data: *const c_void) -> jvmtiError,
873 >,
874 pub AddToBootstrapClassLoaderSearch: Option<
875 unsafe extern "C" fn(
876 env: *mut jvmtiEnv,
877 segment: *const c_char,
878 ) -> jvmtiError,
879 >,
880 pub SetVerboseFlag: Option<
881 unsafe extern "C" fn(
882 env: *mut jvmtiEnv,
883 flag: jvmtiVerboseFlag,
884 value: jboolean,
885 ) -> jvmtiError,
886 >,
887 pub AddToSystemClassLoaderSearch: Option<
888 unsafe extern "C" fn(
889 env: *mut jvmtiEnv,
890 segment: *const c_char,
891 ) -> jvmtiError,
892 >,
893 pub RetransformClasses: Option<
894 unsafe extern "C" fn(
895 env: *mut jvmtiEnv,
896 class_count: jint,
897 classes: *const jclass,
898 ) -> jvmtiError,
899 >,
900 pub GetOwnedMonitorStackDepthInfo: Option<
901 unsafe extern "C" fn(
902 env: *mut jvmtiEnv,
903 thread: jthread,
904 monitor_info_count_ptr: *mut jint,
905 monitor_info_ptr: *mut *mut jvmtiMonitorStackDepthInfo,
906 ) -> jvmtiError,
907 >,
908 pub GetObjectSize: Option<
909 unsafe extern "C" fn(
910 env: *mut jvmtiEnv,
911 object: jobject,
912 size_ptr: *mut jlong,
913 ) -> jvmtiError,
914 >,
915 pub GetLocalInstance: Option<
916 unsafe extern "C" fn(
917 env: *mut jvmtiEnv,
918 thread: jthread,
919 depth: jint,
920 value_ptr: *mut jobject,
921 ) -> jvmtiError,
922 >,
923}