jvm_rs/
jmm.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4#![allow(dead_code)]
5
6use crate::bitfield::__BindgenBitfieldUnit;
7use crate::jni::*;
8
9pub const JMM_VERSION_1: ::std::os::raw::c_uint = 536936448;
10pub const JMM_VERSION_1_0: ::std::os::raw::c_uint = 536936448;
11pub const JMM_VERSION_1_1: ::std::os::raw::c_uint = 536936704;
12pub const JMM_VERSION_1_2: ::std::os::raw::c_uint = 536936960;
13pub const JMM_VERSION_1_2_1: ::std::os::raw::c_uint = 536936961;
14pub const JMM_VERSION_1_2_2: ::std::os::raw::c_uint = 536936962;
15pub const JMM_VERSION_2: ::std::os::raw::c_uint = 537001984;
16pub const JMM_VERSION_3: ::std::os::raw::c_uint = 537067520;
17pub const JMM_VERSION: ::std::os::raw::c_uint = 537067520;
18#[repr(C)]
19#[repr(align(4))]
20#[derive(Debug, Copy, Clone)]
21pub struct jmmOptionalSupport {
22    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u8>,
23}
24impl jmmOptionalSupport {
25    #[inline]
26    pub fn isLowMemoryDetectionSupported(&self) -> ::std::os::raw::c_uint {
27        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
28    }
29    #[inline]
30    pub fn set_isLowMemoryDetectionSupported(&mut self, val: ::std::os::raw::c_uint) {
31        unsafe {
32            let val: u32 = ::std::mem::transmute(val);
33            self._bitfield_1.set(0usize, 1u8, val as u64)
34        }
35    }
36    #[inline]
37    pub fn isCompilationTimeMonitoringSupported(&self) -> ::std::os::raw::c_uint {
38        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
39    }
40    #[inline]
41    pub fn set_isCompilationTimeMonitoringSupported(&mut self, val: ::std::os::raw::c_uint) {
42        unsafe {
43            let val: u32 = ::std::mem::transmute(val);
44            self._bitfield_1.set(1usize, 1u8, val as u64)
45        }
46    }
47    #[inline]
48    pub fn isThreadContentionMonitoringSupported(&self) -> ::std::os::raw::c_uint {
49        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
50    }
51    #[inline]
52    pub fn set_isThreadContentionMonitoringSupported(&mut self, val: ::std::os::raw::c_uint) {
53        unsafe {
54            let val: u32 = ::std::mem::transmute(val);
55            self._bitfield_1.set(2usize, 1u8, val as u64)
56        }
57    }
58    #[inline]
59    pub fn isCurrentThreadCpuTimeSupported(&self) -> ::std::os::raw::c_uint {
60        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
61    }
62    #[inline]
63    pub fn set_isCurrentThreadCpuTimeSupported(&mut self, val: ::std::os::raw::c_uint) {
64        unsafe {
65            let val: u32 = ::std::mem::transmute(val);
66            self._bitfield_1.set(3usize, 1u8, val as u64)
67        }
68    }
69    #[inline]
70    pub fn isOtherThreadCpuTimeSupported(&self) -> ::std::os::raw::c_uint {
71        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
72    }
73    #[inline]
74    pub fn set_isOtherThreadCpuTimeSupported(&mut self, val: ::std::os::raw::c_uint) {
75        unsafe {
76            let val: u32 = ::std::mem::transmute(val);
77            self._bitfield_1.set(4usize, 1u8, val as u64)
78        }
79    }
80    #[inline]
81    pub fn isObjectMonitorUsageSupported(&self) -> ::std::os::raw::c_uint {
82        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
83    }
84    #[inline]
85    pub fn set_isObjectMonitorUsageSupported(&mut self, val: ::std::os::raw::c_uint) {
86        unsafe {
87            let val: u32 = ::std::mem::transmute(val);
88            self._bitfield_1.set(5usize, 1u8, val as u64)
89        }
90    }
91    #[inline]
92    pub fn isSynchronizerUsageSupported(&self) -> ::std::os::raw::c_uint {
93        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
94    }
95    #[inline]
96    pub fn set_isSynchronizerUsageSupported(&mut self, val: ::std::os::raw::c_uint) {
97        unsafe {
98            let val: u32 = ::std::mem::transmute(val);
99            self._bitfield_1.set(6usize, 1u8, val as u64)
100        }
101    }
102    #[inline]
103    pub fn isThreadAllocatedMemorySupported(&self) -> ::std::os::raw::c_uint {
104        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
105    }
106    #[inline]
107    pub fn set_isThreadAllocatedMemorySupported(&mut self, val: ::std::os::raw::c_uint) {
108        unsafe {
109            let val: u32 = ::std::mem::transmute(val);
110            self._bitfield_1.set(7usize, 1u8, val as u64)
111        }
112    }
113    #[inline]
114    pub fn isRemoteDiagnosticCommandsSupported(&self) -> ::std::os::raw::c_uint {
115        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
116    }
117    #[inline]
118    pub fn set_isRemoteDiagnosticCommandsSupported(&mut self, val: ::std::os::raw::c_uint) {
119        unsafe {
120            let val: u32 = ::std::mem::transmute(val);
121            self._bitfield_1.set(8usize, 1u8, val as u64)
122        }
123    }
124    #[inline]
125    pub fn new_bitfield_1(
126        isLowMemoryDetectionSupported: ::std::os::raw::c_uint,
127        isCompilationTimeMonitoringSupported: ::std::os::raw::c_uint,
128        isThreadContentionMonitoringSupported: ::std::os::raw::c_uint,
129        isCurrentThreadCpuTimeSupported: ::std::os::raw::c_uint,
130        isOtherThreadCpuTimeSupported: ::std::os::raw::c_uint,
131        isObjectMonitorUsageSupported: ::std::os::raw::c_uint,
132        isSynchronizerUsageSupported: ::std::os::raw::c_uint,
133        isThreadAllocatedMemorySupported: ::std::os::raw::c_uint,
134        isRemoteDiagnosticCommandsSupported: ::std::os::raw::c_uint,
135    ) -> __BindgenBitfieldUnit<[u8; 4usize], u8> {
136        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u8> =
137            Default::default();
138        __bindgen_bitfield_unit.set(0usize, 1u8, {
139            let isLowMemoryDetectionSupported: u32 =
140                unsafe { ::std::mem::transmute(isLowMemoryDetectionSupported) };
141            isLowMemoryDetectionSupported as u64
142        });
143        __bindgen_bitfield_unit.set(1usize, 1u8, {
144            let isCompilationTimeMonitoringSupported: u32 =
145                unsafe { ::std::mem::transmute(isCompilationTimeMonitoringSupported) };
146            isCompilationTimeMonitoringSupported as u64
147        });
148        __bindgen_bitfield_unit.set(2usize, 1u8, {
149            let isThreadContentionMonitoringSupported: u32 =
150                unsafe { ::std::mem::transmute(isThreadContentionMonitoringSupported) };
151            isThreadContentionMonitoringSupported as u64
152        });
153        __bindgen_bitfield_unit.set(3usize, 1u8, {
154            let isCurrentThreadCpuTimeSupported: u32 =
155                unsafe { ::std::mem::transmute(isCurrentThreadCpuTimeSupported) };
156            isCurrentThreadCpuTimeSupported as u64
157        });
158        __bindgen_bitfield_unit.set(4usize, 1u8, {
159            let isOtherThreadCpuTimeSupported: u32 =
160                unsafe { ::std::mem::transmute(isOtherThreadCpuTimeSupported) };
161            isOtherThreadCpuTimeSupported as u64
162        });
163        __bindgen_bitfield_unit.set(5usize, 1u8, {
164            let isObjectMonitorUsageSupported: u32 =
165                unsafe { ::std::mem::transmute(isObjectMonitorUsageSupported) };
166            isObjectMonitorUsageSupported as u64
167        });
168        __bindgen_bitfield_unit.set(6usize, 1u8, {
169            let isSynchronizerUsageSupported: u32 =
170                unsafe { ::std::mem::transmute(isSynchronizerUsageSupported) };
171            isSynchronizerUsageSupported as u64
172        });
173        __bindgen_bitfield_unit.set(7usize, 1u8, {
174            let isThreadAllocatedMemorySupported: u32 =
175                unsafe { ::std::mem::transmute(isThreadAllocatedMemorySupported) };
176            isThreadAllocatedMemorySupported as u64
177        });
178        __bindgen_bitfield_unit.set(8usize, 1u8, {
179            let isRemoteDiagnosticCommandsSupported: u32 =
180                unsafe { ::std::mem::transmute(isRemoteDiagnosticCommandsSupported) };
181            isRemoteDiagnosticCommandsSupported as u64
182        });
183        __bindgen_bitfield_unit
184    }
185}
186pub const jmmLongAttribute_JMM_CLASS_LOADED_COUNT: jmmLongAttribute = 1;
187pub const jmmLongAttribute_JMM_CLASS_UNLOADED_COUNT: jmmLongAttribute = 2;
188pub const jmmLongAttribute_JMM_THREAD_TOTAL_COUNT: jmmLongAttribute = 3;
189pub const jmmLongAttribute_JMM_THREAD_LIVE_COUNT: jmmLongAttribute = 4;
190pub const jmmLongAttribute_JMM_THREAD_PEAK_COUNT: jmmLongAttribute = 5;
191pub const jmmLongAttribute_JMM_THREAD_DAEMON_COUNT: jmmLongAttribute = 6;
192pub const jmmLongAttribute_JMM_JVM_INIT_DONE_TIME_MS: jmmLongAttribute = 7;
193pub const jmmLongAttribute_JMM_COMPILE_TOTAL_TIME_MS: jmmLongAttribute = 8;
194pub const jmmLongAttribute_JMM_GC_TIME_MS: jmmLongAttribute = 9;
195pub const jmmLongAttribute_JMM_GC_COUNT: jmmLongAttribute = 10;
196pub const jmmLongAttribute_JMM_JVM_UPTIME_MS: jmmLongAttribute = 11;
197pub const jmmLongAttribute_JMM_INTERNAL_ATTRIBUTE_INDEX: jmmLongAttribute = 100;
198pub const jmmLongAttribute_JMM_CLASS_LOADED_BYTES: jmmLongAttribute = 101;
199pub const jmmLongAttribute_JMM_CLASS_UNLOADED_BYTES: jmmLongAttribute = 102;
200pub const jmmLongAttribute_JMM_TOTAL_CLASSLOAD_TIME_MS: jmmLongAttribute = 103;
201pub const jmmLongAttribute_JMM_VM_GLOBAL_COUNT: jmmLongAttribute = 104;
202pub const jmmLongAttribute_JMM_SAFEPOINT_COUNT: jmmLongAttribute = 105;
203pub const jmmLongAttribute_JMM_TOTAL_SAFEPOINTSYNC_TIME_MS: jmmLongAttribute = 106;
204pub const jmmLongAttribute_JMM_TOTAL_STOPPED_TIME_MS: jmmLongAttribute = 107;
205pub const jmmLongAttribute_JMM_TOTAL_APP_TIME_MS: jmmLongAttribute = 108;
206pub const jmmLongAttribute_JMM_VM_THREAD_COUNT: jmmLongAttribute = 109;
207pub const jmmLongAttribute_JMM_CLASS_INIT_TOTAL_COUNT: jmmLongAttribute = 110;
208pub const jmmLongAttribute_JMM_CLASS_INIT_TOTAL_TIME_MS: jmmLongAttribute = 111;
209pub const jmmLongAttribute_JMM_METHOD_DATA_SIZE_BYTES: jmmLongAttribute = 112;
210pub const jmmLongAttribute_JMM_CLASS_VERIFY_TOTAL_TIME_MS: jmmLongAttribute = 113;
211pub const jmmLongAttribute_JMM_SHARED_CLASS_LOADED_COUNT: jmmLongAttribute = 114;
212pub const jmmLongAttribute_JMM_SHARED_CLASS_UNLOADED_COUNT: jmmLongAttribute = 115;
213pub const jmmLongAttribute_JMM_SHARED_CLASS_LOADED_BYTES: jmmLongAttribute = 116;
214pub const jmmLongAttribute_JMM_SHARED_CLASS_UNLOADED_BYTES: jmmLongAttribute = 117;
215pub const jmmLongAttribute_JMM_OS_ATTRIBUTE_INDEX: jmmLongAttribute = 200;
216pub const jmmLongAttribute_JMM_OS_PROCESS_ID: jmmLongAttribute = 201;
217pub const jmmLongAttribute_JMM_OS_MEM_TOTAL_PHYSICAL_BYTES: jmmLongAttribute = 202;
218pub const jmmLongAttribute_JMM_GC_EXT_ATTRIBUTE_INFO_SIZE: jmmLongAttribute = 401;
219pub type jmmLongAttribute = ::std::os::raw::c_uint;
220pub const jmmBoolAttribute_JMM_VERBOSE_GC: jmmBoolAttribute = 21;
221pub const jmmBoolAttribute_JMM_VERBOSE_CLASS: jmmBoolAttribute = 22;
222pub const jmmBoolAttribute_JMM_THREAD_CONTENTION_MONITORING: jmmBoolAttribute = 23;
223pub const jmmBoolAttribute_JMM_THREAD_CPU_TIME: jmmBoolAttribute = 24;
224pub const jmmBoolAttribute_JMM_THREAD_ALLOCATED_MEMORY: jmmBoolAttribute = 25;
225pub type jmmBoolAttribute = ::std::os::raw::c_uint;
226pub const JMM_THREAD_STATE_FLAG_SUSPENDED: ::std::os::raw::c_uint = 1048576;
227pub const JMM_THREAD_STATE_FLAG_NATIVE: ::std::os::raw::c_uint = 4194304;
228pub const jmmStatisticType_JMM_STAT_PEAK_THREAD_COUNT: jmmStatisticType = 801;
229pub const jmmStatisticType_JMM_STAT_THREAD_CONTENTION_COUNT: jmmStatisticType = 802;
230pub const jmmStatisticType_JMM_STAT_THREAD_CONTENTION_TIME: jmmStatisticType = 803;
231pub const jmmStatisticType_JMM_STAT_THREAD_CONTENTION_STAT: jmmStatisticType = 804;
232pub const jmmStatisticType_JMM_STAT_PEAK_POOL_USAGE: jmmStatisticType = 805;
233pub const jmmStatisticType_JMM_STAT_GC_STAT: jmmStatisticType = 806;
234pub type jmmStatisticType = ::std::os::raw::c_uint;
235pub const jmmThresholdType_JMM_USAGE_THRESHOLD_HIGH: jmmThresholdType = 901;
236pub const jmmThresholdType_JMM_USAGE_THRESHOLD_LOW: jmmThresholdType = 902;
237pub const jmmThresholdType_JMM_COLLECTION_USAGE_THRESHOLD_HIGH: jmmThresholdType = 903;
238pub const jmmThresholdType_JMM_COLLECTION_USAGE_THRESHOLD_LOW: jmmThresholdType = 904;
239pub type jmmThresholdType = ::std::os::raw::c_uint;
240pub const jmmVMGlobalType_JMM_VMGLOBAL_TYPE_UNKNOWN: jmmVMGlobalType = 0;
241pub const jmmVMGlobalType_JMM_VMGLOBAL_TYPE_JBOOLEAN: jmmVMGlobalType = 1;
242pub const jmmVMGlobalType_JMM_VMGLOBAL_TYPE_JSTRING: jmmVMGlobalType = 2;
243pub const jmmVMGlobalType_JMM_VMGLOBAL_TYPE_JLONG: jmmVMGlobalType = 3;
244pub const jmmVMGlobalType_JMM_VMGLOBAL_TYPE_JDOUBLE: jmmVMGlobalType = 4;
245pub type jmmVMGlobalType = ::std::os::raw::c_uint;
246pub const jmmVMGlobalOrigin_JMM_VMGLOBAL_ORIGIN_DEFAULT: jmmVMGlobalOrigin = 1;
247pub const jmmVMGlobalOrigin_JMM_VMGLOBAL_ORIGIN_COMMAND_LINE: jmmVMGlobalOrigin = 2;
248pub const jmmVMGlobalOrigin_JMM_VMGLOBAL_ORIGIN_MANAGEMENT: jmmVMGlobalOrigin = 3;
249pub const jmmVMGlobalOrigin_JMM_VMGLOBAL_ORIGIN_ENVIRON_VAR: jmmVMGlobalOrigin = 4;
250pub const jmmVMGlobalOrigin_JMM_VMGLOBAL_ORIGIN_CONFIG_FILE: jmmVMGlobalOrigin = 5;
251pub const jmmVMGlobalOrigin_JMM_VMGLOBAL_ORIGIN_ERGONOMIC: jmmVMGlobalOrigin = 6;
252pub const jmmVMGlobalOrigin_JMM_VMGLOBAL_ORIGIN_ATTACH_ON_DEMAND: jmmVMGlobalOrigin = 7;
253pub const jmmVMGlobalOrigin_JMM_VMGLOBAL_ORIGIN_OTHER: jmmVMGlobalOrigin = 99;
254pub type jmmVMGlobalOrigin = ::std::os::raw::c_uint;
255#[repr(C)]
256#[derive(Copy, Clone)]
257pub struct jmmVMGlobal {
258    pub name: jstring,
259    pub value: jvalue,
260    pub type_: jmmVMGlobalType,
261    pub origin: jmmVMGlobalOrigin,
262    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize], u32>,
263    pub reserved1: *mut ::std::os::raw::c_void,
264    pub reserved2: *mut ::std::os::raw::c_void,
265}
266impl jmmVMGlobal {
267    #[inline]
268    pub fn writeable(&self) -> ::std::os::raw::c_uint {
269        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
270    }
271    #[inline]
272    pub fn set_writeable(&mut self, val: ::std::os::raw::c_uint) {
273        unsafe {
274            let val: u32 = ::std::mem::transmute(val);
275            self._bitfield_1.set(0usize, 1u8, val as u64)
276        }
277    }
278    #[inline]
279    pub fn external(&self) -> ::std::os::raw::c_uint {
280        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
281    }
282    #[inline]
283    pub fn set_external(&mut self, val: ::std::os::raw::c_uint) {
284        unsafe {
285            let val: u32 = ::std::mem::transmute(val);
286            self._bitfield_1.set(1usize, 1u8, val as u64)
287        }
288    }
289    #[inline]
290    pub fn reserved(&self) -> ::std::os::raw::c_uint {
291        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) }
292    }
293    #[inline]
294    pub fn set_reserved(&mut self, val: ::std::os::raw::c_uint) {
295        unsafe {
296            let val: u32 = ::std::mem::transmute(val);
297            self._bitfield_1.set(2usize, 30u8, val as u64)
298        }
299    }
300    #[inline]
301    pub fn new_bitfield_1(
302        writeable: ::std::os::raw::c_uint,
303        external: ::std::os::raw::c_uint,
304        reserved: ::std::os::raw::c_uint,
305    ) -> __BindgenBitfieldUnit<[u8; 4usize], u32> {
306        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize], u32> =
307            Default::default();
308        __bindgen_bitfield_unit.set(0usize, 1u8, {
309            let writeable: u32 = unsafe { ::std::mem::transmute(writeable) };
310            writeable as u64
311        });
312        __bindgen_bitfield_unit.set(1usize, 1u8, {
313            let external: u32 = unsafe { ::std::mem::transmute(external) };
314            external as u64
315        });
316        __bindgen_bitfield_unit.set(2usize, 30u8, {
317            let reserved: u32 = unsafe { ::std::mem::transmute(reserved) };
318            reserved as u64
319        });
320        __bindgen_bitfield_unit
321    }
322}
323#[repr(C)]
324#[derive(Debug, Copy, Clone)]
325pub struct jmmExtAttributeInfo {
326    pub name: *const ::std::os::raw::c_char,
327    pub type_: ::std::os::raw::c_char,
328    pub description: *const ::std::os::raw::c_char,
329}
330#[repr(C)]
331#[derive(Debug, Copy, Clone)]
332pub struct jmmGCStat {
333    pub gc_index: jlong,
334    pub start_time: jlong,
335    pub end_time: jlong,
336    pub usage_before_gc: jobjectArray,
337    pub usage_after_gc: jobjectArray,
338    pub gc_ext_attribute_values_size: jint,
339    pub gc_ext_attribute_values: *mut jvalue,
340    pub num_gc_ext_attributes: jint,
341}
342#[repr(C)]
343#[derive(Debug, Copy, Clone)]
344pub struct dcmdInfo {
345    pub name: *const ::std::os::raw::c_char,
346    pub description: *const ::std::os::raw::c_char,
347    pub impact: *const ::std::os::raw::c_char,
348    pub permission_class: *const ::std::os::raw::c_char,
349    pub permission_name: *const ::std::os::raw::c_char,
350    pub permission_action: *const ::std::os::raw::c_char,
351    pub num_arguments: ::std::os::raw::c_int,
352    pub enabled: jboolean,
353}
354#[repr(C)]
355#[derive(Debug, Copy, Clone)]
356pub struct dcmdArgInfo {
357    pub name: *const ::std::os::raw::c_char,
358    pub description: *const ::std::os::raw::c_char,
359    pub type_: *const ::std::os::raw::c_char,
360    pub default_string: *const ::std::os::raw::c_char,
361    pub mandatory: jboolean,
362    pub option: jboolean,
363    pub multiple: jboolean,
364    pub position: ::std::os::raw::c_int,
365}
366#[repr(C)]
367#[derive(Debug, Copy, Clone)]
368pub struct jmmInterface_1_ {
369    pub reserved1: *mut ::std::os::raw::c_void,
370    pub reserved2: *mut ::std::os::raw::c_void,
371    pub GetVersion: ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv) -> jint>,
372    pub GetOptionalSupport: ::std::option::Option<
373        unsafe extern "C" fn(env: *mut JNIEnv, support_ptr: *mut jmmOptionalSupport) -> jint,
374    >,
375    pub GetThreadInfo: ::std::option::Option<
376        unsafe extern "C" fn(
377            env: *mut JNIEnv,
378            ids: jlongArray,
379            maxDepth: jint,
380            infoArray: jobjectArray,
381        ) -> jint,
382    >,
383    pub GetMemoryPools:
384        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv, mgr: jobject) -> jobjectArray>,
385    pub GetMemoryManagers: ::std::option::Option<
386        unsafe extern "C" fn(env: *mut JNIEnv, pool: jobject) -> jobjectArray,
387    >,
388    pub GetMemoryPoolUsage:
389        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv, pool: jobject) -> jobject>,
390    pub GetPeakMemoryPoolUsage:
391        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv, pool: jobject) -> jobject>,
392    pub GetOneThreadAllocatedMemory:
393        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv, thread_id: jlong) -> jlong>,
394    pub GetThreadAllocatedMemory: ::std::option::Option<
395        unsafe extern "C" fn(env: *mut JNIEnv, ids: jlongArray, sizeArray: jlongArray),
396    >,
397    pub GetMemoryUsage:
398        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv, heap: jboolean) -> jobject>,
399    pub GetLongAttribute: ::std::option::Option<
400        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, att: jmmLongAttribute) -> jlong,
401    >,
402    pub GetBoolAttribute: ::std::option::Option<
403        unsafe extern "C" fn(env: *mut JNIEnv, att: jmmBoolAttribute) -> jboolean,
404    >,
405    pub SetBoolAttribute: ::std::option::Option<
406        unsafe extern "C" fn(env: *mut JNIEnv, att: jmmBoolAttribute, flag: jboolean) -> jboolean,
407    >,
408    pub GetLongAttributes: ::std::option::Option<
409        unsafe extern "C" fn(
410            env: *mut JNIEnv,
411            obj: jobject,
412            atts: *mut jmmLongAttribute,
413            count: jint,
414            result: *mut jlong,
415        ) -> jint,
416    >,
417    pub FindCircularBlockedThreads:
418        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv) -> jobjectArray>,
419    pub GetThreadCpuTime:
420        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv, thread_id: jlong) -> jlong>,
421    pub GetVMGlobalNames:
422        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv) -> jobjectArray>,
423    pub GetVMGlobals: ::std::option::Option<
424        unsafe extern "C" fn(
425            env: *mut JNIEnv,
426            names: jobjectArray,
427            globals: *mut jmmVMGlobal,
428            count: jint,
429        ) -> jint,
430    >,
431    pub GetInternalThreadTimes: ::std::option::Option<
432        unsafe extern "C" fn(env: *mut JNIEnv, names: jobjectArray, times: jlongArray) -> jint,
433    >,
434    pub ResetStatistic: ::std::option::Option<
435        unsafe extern "C" fn(env: *mut JNIEnv, obj: jvalue, type_: jmmStatisticType) -> jboolean,
436    >,
437    pub SetPoolSensor: ::std::option::Option<
438        unsafe extern "C" fn(
439            env: *mut JNIEnv,
440            pool: jobject,
441            type_: jmmThresholdType,
442            sensor: jobject,
443        ),
444    >,
445    pub SetPoolThreshold: ::std::option::Option<
446        unsafe extern "C" fn(
447            env: *mut JNIEnv,
448            pool: jobject,
449            type_: jmmThresholdType,
450            threshold: jlong,
451        ) -> jlong,
452    >,
453    pub GetPoolCollectionUsage:
454        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv, pool: jobject) -> jobject>,
455    pub GetGCExtAttributeInfo: ::std::option::Option<
456        unsafe extern "C" fn(
457            env: *mut JNIEnv,
458            mgr: jobject,
459            ext_info: *mut jmmExtAttributeInfo,
460            count: jint,
461        ) -> jint,
462    >,
463    pub GetLastGCStat: ::std::option::Option<
464        unsafe extern "C" fn(env: *mut JNIEnv, mgr: jobject, gc_stat: *mut jmmGCStat),
465    >,
466    pub GetThreadCpuTimeWithKind: ::std::option::Option<
467        unsafe extern "C" fn(
468            env: *mut JNIEnv,
469            thread_id: jlong,
470            user_sys_cpu_time: jboolean,
471        ) -> jlong,
472    >,
473    pub GetThreadCpuTimesWithKind: ::std::option::Option<
474        unsafe extern "C" fn(
475            env: *mut JNIEnv,
476            ids: jlongArray,
477            timeArray: jlongArray,
478            user_sys_cpu_time: jboolean,
479        ),
480    >,
481    pub DumpHeap0: ::std::option::Option<
482        unsafe extern "C" fn(env: *mut JNIEnv, outputfile: jstring, live: jboolean) -> jint,
483    >,
484    pub FindDeadlocks: ::std::option::Option<
485        unsafe extern "C" fn(env: *mut JNIEnv, object_monitors_only: jboolean) -> jobjectArray,
486    >,
487    pub SetVMGlobal: ::std::option::Option<
488        unsafe extern "C" fn(env: *mut JNIEnv, flag_name: jstring, new_value: jvalue),
489    >,
490    pub reserved6: *mut ::std::os::raw::c_void,
491    pub DumpThreads: ::std::option::Option<
492        unsafe extern "C" fn(
493            env: *mut JNIEnv,
494            ids: jlongArray,
495            lockedMonitors: jboolean,
496            lockedSynchronizers: jboolean,
497            maxDepth: jint,
498        ) -> jobjectArray,
499    >,
500    pub SetGCNotificationEnabled: ::std::option::Option<
501        unsafe extern "C" fn(env: *mut JNIEnv, mgr: jobject, enabled: jboolean),
502    >,
503    pub GetDiagnosticCommands:
504        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv) -> jobjectArray>,
505    pub GetDiagnosticCommandInfo: ::std::option::Option<
506        unsafe extern "C" fn(env: *mut JNIEnv, cmds: jobjectArray, infoArray: *mut dcmdInfo),
507    >,
508    pub GetDiagnosticCommandArgumentsInfo: ::std::option::Option<
509        unsafe extern "C" fn(env: *mut JNIEnv, commandName: jstring, infoArray: *mut dcmdArgInfo),
510    >,
511    pub ExecuteDiagnosticCommand:
512        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv, command: jstring) -> jstring>,
513    pub SetDiagnosticFrameworkNotificationEnabled:
514        ::std::option::Option<unsafe extern "C" fn(env: *mut JNIEnv, enabled: jboolean)>,
515}
516pub type JmmInterface = jmmInterface_1_;