makepad_jni_sys/
lib.rs

1#![allow(non_camel_case_types)]
2#![allow(non_snake_case)]
3
4use std::ffi::{c_char, c_void};
5pub const JNI_VERSION_1_6: jint = 0x00010006;
6
7pub type va_list = *mut c_void;
8
9#[repr(C)]
10pub union jvalue {
11    pub z: jboolean,
12    pub b: jbyte,
13    pub c: jchar,
14    pub s: jshort,
15    pub i: jint,
16    pub j: jlong,
17    pub f: jfloat,
18    pub d: jdouble,
19    pub l: jobject,
20}
21
22pub type JavaVM = *const JNIInvokeInterface_;
23pub type JNIEnv = *const JNINativeInterface_;
24pub type jboolean = u8;
25pub type jbyte = i8;
26pub type jchar = u16;
27pub type jshort = i16;
28pub type jint = i32;
29pub type jlong = i64;
30pub type jsize = jint;
31pub type jfloat = f32;
32pub type jdouble = f64;
33pub type jobject = *mut _jobject;
34pub type jclass = *mut _jobject;
35pub type jstring = *mut _jobject;
36pub type jarray = *mut _jobject;
37pub type jobjectArray = *mut _jobject;
38pub type jbooleanArray = *mut _jobject;
39pub type jbyteArray = *mut _jobject;
40pub type jcharArray = *mut _jobject;
41pub type jshortArray = *mut _jobject;
42pub type jintArray = *mut _jobject;
43pub type jlongArray = *mut _jobject;
44pub type jfloatArray = *mut _jobject;
45pub type jdoubleArray = *mut _jobject;
46pub type jthrowable = *mut _jobject;
47pub type jweak = jobject;
48pub type jfieldID = *mut _jfieldID;
49pub type jmethodID = *mut _jmethodID;
50 
51pub const JNI_ABORT: i32 = 2; 
52
53#[repr(C)]
54pub struct JNINativeMethod {
55    pub name: *mut c_char,
56    pub signature: *mut c_char,
57    pub fnPtr: *mut c_void,
58}
59
60#[repr(C)]
61pub enum jobjectRefType {
62    JNIInvalidRefType = 0,
63    JNILocalRefType = 1,
64    JNIGlobalRefType = 2,
65    JNIWeakGlobalRefType = 3,
66}
67
68#[repr(C)]
69pub struct JNIInvokeInterface_ {
70    pub reserved0: *mut c_void,
71    pub reserved1: *mut c_void,
72    pub reserved2: *mut c_void,
73    pub DestroyJavaVM: Option<unsafe extern "system" fn(vm: *mut JavaVM) -> jint>,
74    pub AttachCurrentThread: Option<
75        unsafe extern "system" fn(
76            vm: *mut JavaVM,
77            penv: *mut *mut JNIEnv,
78            args: *mut c_void,
79        ) -> jint,
80    >,
81    pub DetachCurrentThread: Option<unsafe extern "system" fn(vm: *mut JavaVM) -> jint>,
82    pub GetEnv: Option<
83        unsafe extern "system" fn(vm: *mut JavaVM, penv: *mut *mut c_void, version: jint) -> jint,
84    >,
85    pub AttachCurrentThreadAsDaemon: Option<
86        unsafe extern "system" fn(
87            vm: *mut JavaVM,
88            penv: *mut *mut c_void,
89            args: *mut c_void,
90        ) -> jint,
91    >,
92}
93
94#[repr(C)]
95pub struct JNINativeInterface_ {
96    pub reserved0: *mut c_void,
97    pub reserved1: *mut c_void,
98    pub reserved2: *mut c_void,
99    pub reserved3: *mut c_void,
100    pub GetVersion: Option<unsafe extern "system" fn(env: *mut JNIEnv) -> jint>,
101    pub DefineClass: Option<
102        unsafe extern "system" fn(
103            env: *mut JNIEnv,
104            name: *const c_char,
105            loader: jobject,
106            buf: *const jbyte,
107            len: jsize,
108        ) -> jclass,
109    >,
110    pub FindClass:
111        Option<unsafe extern "system" fn(env: *mut JNIEnv, name: *const c_char) -> jclass>,
112    pub FromReflectedMethod:
113        Option<unsafe extern "system" fn(env: *mut JNIEnv, method: jobject) -> jmethodID>,
114    pub FromReflectedField:
115        Option<unsafe extern "system" fn(env: *mut JNIEnv, field: jobject) -> jfieldID>,
116    pub ToReflectedMethod: Option<
117        unsafe extern "system" fn(
118            env: *mut JNIEnv,
119            cls: jclass,
120            methodID: jmethodID,
121            isStatic: jboolean,
122        ) -> jobject,
123    >,
124    pub GetSuperclass: Option<unsafe extern "system" fn(env: *mut JNIEnv, sub: jclass) -> jclass>,
125    pub IsAssignableFrom:
126        Option<unsafe extern "system" fn(env: *mut JNIEnv, sub: jclass, sup: jclass) -> jboolean>,
127    pub ToReflectedField: Option<
128        unsafe extern "system" fn(
129            env: *mut JNIEnv,
130            cls: jclass,
131            fieldID: jfieldID,
132            isStatic: jboolean,
133        ) -> jobject,
134    >,
135    pub Throw: Option<unsafe extern "system" fn(env: *mut JNIEnv, obj: jthrowable) -> jint>,
136    pub ThrowNew: Option<
137        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, msg: *const c_char) -> jint,
138    >,
139    pub ExceptionOccurred: Option<unsafe extern "system" fn(env: *mut JNIEnv) -> jthrowable>,
140    pub ExceptionDescribe: Option<unsafe extern "system" fn(env: *mut JNIEnv)>,
141    pub ExceptionClear: Option<unsafe extern "system" fn(env: *mut JNIEnv)>,
142    pub FatalError: Option<unsafe extern "system" fn(env: *mut JNIEnv, msg: *const c_char) -> !>,
143    pub PushLocalFrame: Option<unsafe extern "system" fn(env: *mut JNIEnv, capacity: jint) -> jint>,
144    pub PopLocalFrame:
145        Option<unsafe extern "system" fn(env: *mut JNIEnv, result: jobject) -> jobject>,
146    pub NewGlobalRef: Option<unsafe extern "system" fn(env: *mut JNIEnv, lobj: jobject) -> jobject>,
147    pub DeleteGlobalRef: Option<unsafe extern "system" fn(env: *mut JNIEnv, gref: jobject)>,
148    pub DeleteLocalRef: Option<unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject)>,
149    pub IsSameObject: Option<
150        unsafe extern "system" fn(env: *mut JNIEnv, obj1: jobject, obj2: jobject) -> jboolean,
151    >,
152    pub NewLocalRef: Option<unsafe extern "system" fn(env: *mut JNIEnv, ref_: jobject) -> jobject>,
153    pub EnsureLocalCapacity:
154        Option<unsafe extern "system" fn(env: *mut JNIEnv, capacity: jint) -> jint>,
155    pub AllocObject: Option<unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass) -> jobject>,
156    pub NewObject: Option<
157        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jobject,
158    >,
159    pub NewObjectV: Option<
160        unsafe extern "system" fn(
161            env: *mut JNIEnv,
162            clazz: jclass,
163            methodID: jmethodID,
164            args: va_list,
165        ) -> jobject,
166    >,
167    pub NewObjectA: Option<
168        unsafe extern "system" fn(
169            env: *mut JNIEnv,
170            clazz: jclass,
171            methodID: jmethodID,
172            args: *const jvalue,
173        ) -> jobject,
174    >,
175    pub GetObjectClass: Option<unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject) -> jclass>,
176    pub IsInstanceOf: Option<
177        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, clazz: jclass) -> jboolean,
178    >,
179    pub GetMethodID: Option<
180        unsafe extern "system" fn(
181            env: *mut JNIEnv,
182            clazz: jclass,
183            name: *const c_char,
184            sig: *const c_char,
185        ) -> jmethodID,
186    >,
187    pub CallObjectMethod: Option<
188        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...) -> jobject,
189    >,
190    pub CallObjectMethodV: Option<
191        unsafe extern "system" fn(
192            env: *mut JNIEnv,
193            obj: jobject,
194            methodID: jmethodID,
195            args: va_list,
196        ) -> jobject,
197    >,
198    pub CallObjectMethodA: Option<
199        unsafe extern "system" fn(
200            env: *mut JNIEnv,
201            obj: jobject,
202            methodID: jmethodID,
203            args: *const jvalue,
204        ) -> jobject,
205    >,
206    pub CallBooleanMethod: Option<
207        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...) -> jboolean,
208    >,
209    pub CallBooleanMethodV: Option<
210        unsafe extern "system" fn(
211            env: *mut JNIEnv,
212            obj: jobject,
213            methodID: jmethodID,
214            args: va_list,
215        ) -> jboolean,
216    >,
217    pub CallBooleanMethodA: Option<
218        unsafe extern "system" fn(
219            env: *mut JNIEnv,
220            obj: jobject,
221            methodID: jmethodID,
222            args: *const jvalue,
223        ) -> jboolean,
224    >,
225    pub CallByteMethod: Option<
226        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...) -> jbyte,
227    >,
228    pub CallByteMethodV: Option<
229        unsafe extern "system" fn(
230            env: *mut JNIEnv,
231            obj: jobject,
232            methodID: jmethodID,
233            args: va_list,
234        ) -> jbyte,
235    >,
236    pub CallByteMethodA: Option<
237        unsafe extern "system" fn(
238            env: *mut JNIEnv,
239            obj: jobject,
240            methodID: jmethodID,
241            args: *const jvalue,
242        ) -> jbyte,
243    >,
244    pub CallCharMethod: Option<
245        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...) -> jchar,
246    >,
247    pub CallCharMethodV: Option<
248        unsafe extern "system" fn(
249            env: *mut JNIEnv,
250            obj: jobject,
251            methodID: jmethodID,
252            args: va_list,
253        ) -> jchar,
254    >,
255    pub CallCharMethodA: Option<
256        unsafe extern "system" fn(
257            env: *mut JNIEnv,
258            obj: jobject,
259            methodID: jmethodID,
260            args: *const jvalue,
261        ) -> jchar,
262    >,
263    pub CallShortMethod: Option<
264        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...) -> jshort,
265    >,
266    pub CallShortMethodV: Option<
267        unsafe extern "system" fn(
268            env: *mut JNIEnv,
269            obj: jobject,
270            methodID: jmethodID,
271            args: va_list,
272        ) -> jshort,
273    >,
274    pub CallShortMethodA: Option<
275        unsafe extern "system" fn(
276            env: *mut JNIEnv,
277            obj: jobject,
278            methodID: jmethodID,
279            args: *const jvalue,
280        ) -> jshort,
281    >,
282    pub CallIntMethod: Option<
283        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...) -> jint,
284    >,
285    pub CallIntMethodV: Option<
286        unsafe extern "system" fn(
287            env: *mut JNIEnv,
288            obj: jobject,
289            methodID: jmethodID,
290            args: va_list,
291        ) -> jint,
292    >,
293    pub CallIntMethodA: Option<
294        unsafe extern "system" fn(
295            env: *mut JNIEnv,
296            obj: jobject,
297            methodID: jmethodID,
298            args: *const jvalue,
299        ) -> jint,
300    >,
301    pub CallLongMethod: Option<
302        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...) -> jlong,
303    >,
304    pub CallLongMethodV: Option<
305        unsafe extern "system" fn(
306            env: *mut JNIEnv,
307            obj: jobject,
308            methodID: jmethodID,
309            args: va_list,
310        ) -> jlong,
311    >,
312    pub CallLongMethodA: Option<
313        unsafe extern "system" fn(
314            env: *mut JNIEnv,
315            obj: jobject,
316            methodID: jmethodID,
317            args: *const jvalue,
318        ) -> jlong,
319    >,
320    pub CallFloatMethod: Option<
321        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...) -> jfloat,
322    >,
323    pub CallFloatMethodV: Option<
324        unsafe extern "system" fn(
325            env: *mut JNIEnv,
326            obj: jobject,
327            methodID: jmethodID,
328            args: va_list,
329        ) -> jfloat,
330    >,
331    pub CallFloatMethodA: Option<
332        unsafe extern "system" fn(
333            env: *mut JNIEnv,
334            obj: jobject,
335            methodID: jmethodID,
336            args: *const jvalue,
337        ) -> jfloat,
338    >,
339    pub CallDoubleMethod: Option<
340        unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...) -> jdouble,
341    >,
342    pub CallDoubleMethodV: Option<
343        unsafe extern "system" fn(
344            env: *mut JNIEnv,
345            obj: jobject,
346            methodID: jmethodID,
347            args: va_list,
348        ) -> jdouble,
349    >,
350    pub CallDoubleMethodA: Option<
351        unsafe extern "system" fn(
352            env: *mut JNIEnv,
353            obj: jobject,
354            methodID: jmethodID,
355            args: *const jvalue,
356        ) -> jdouble,
357    >,
358    pub CallVoidMethod:
359        Option<unsafe extern "C" fn(env: *mut JNIEnv, obj: jobject, methodID: jmethodID, ...)>,
360    pub CallVoidMethodV: Option<
361        unsafe extern "system" fn(
362            env: *mut JNIEnv,
363            obj: jobject,
364            methodID: jmethodID,
365            args: va_list,
366        ),
367    >,
368    pub CallVoidMethodA: Option<
369        unsafe extern "system" fn(
370            env: *mut JNIEnv,
371            obj: jobject,
372            methodID: jmethodID,
373            args: *const jvalue,
374        ),
375    >,
376    pub CallNonvirtualObjectMethod: Option<
377        unsafe extern "C" fn(
378            env: *mut JNIEnv,
379            obj: jobject,
380            clazz: jclass,
381            methodID: jmethodID,
382            ...
383        ) -> jobject,
384    >,
385    pub CallNonvirtualObjectMethodV: Option<
386        unsafe extern "system" fn(
387            env: *mut JNIEnv,
388            obj: jobject,
389            clazz: jclass,
390            methodID: jmethodID,
391            args: va_list,
392        ) -> jobject,
393    >,
394    pub CallNonvirtualObjectMethodA: Option<
395        unsafe extern "system" fn(
396            env: *mut JNIEnv,
397            obj: jobject,
398            clazz: jclass,
399            methodID: jmethodID,
400            args: *const jvalue,
401        ) -> jobject,
402    >,
403    pub CallNonvirtualBooleanMethod: Option<
404        unsafe extern "C" fn(
405            env: *mut JNIEnv,
406            obj: jobject,
407            clazz: jclass,
408            methodID: jmethodID,
409            ...
410        ) -> jboolean,
411    >,
412    pub CallNonvirtualBooleanMethodV: Option<
413        unsafe extern "system" fn(
414            env: *mut JNIEnv,
415            obj: jobject,
416            clazz: jclass,
417            methodID: jmethodID,
418            args: va_list,
419        ) -> jboolean,
420    >,
421    pub CallNonvirtualBooleanMethodA: Option<
422        unsafe extern "system" fn(
423            env: *mut JNIEnv,
424            obj: jobject,
425            clazz: jclass,
426            methodID: jmethodID,
427            args: *const jvalue,
428        ) -> jboolean,
429    >,
430    pub CallNonvirtualByteMethod: Option<
431        unsafe extern "C" fn(
432            env: *mut JNIEnv,
433            obj: jobject,
434            clazz: jclass,
435            methodID: jmethodID,
436            ...
437        ) -> jbyte,
438    >,
439    pub CallNonvirtualByteMethodV: Option<
440        unsafe extern "system" fn(
441            env: *mut JNIEnv,
442            obj: jobject,
443            clazz: jclass,
444            methodID: jmethodID,
445            args: va_list,
446        ) -> jbyte,
447    >,
448    pub CallNonvirtualByteMethodA: Option<
449        unsafe extern "system" fn(
450            env: *mut JNIEnv,
451            obj: jobject,
452            clazz: jclass,
453            methodID: jmethodID,
454            args: *const jvalue,
455        ) -> jbyte,
456    >,
457    pub CallNonvirtualCharMethod: Option<
458        unsafe extern "C" fn(
459            env: *mut JNIEnv,
460            obj: jobject,
461            clazz: jclass,
462            methodID: jmethodID,
463            ...
464        ) -> jchar,
465    >,
466    pub CallNonvirtualCharMethodV: Option<
467        unsafe extern "system" fn(
468            env: *mut JNIEnv,
469            obj: jobject,
470            clazz: jclass,
471            methodID: jmethodID,
472            args: va_list,
473        ) -> jchar,
474    >,
475    pub CallNonvirtualCharMethodA: Option<
476        unsafe extern "system" fn(
477            env: *mut JNIEnv,
478            obj: jobject,
479            clazz: jclass,
480            methodID: jmethodID,
481            args: *const jvalue,
482        ) -> jchar,
483    >,
484    pub CallNonvirtualShortMethod: Option<
485        unsafe extern "C" fn(
486            env: *mut JNIEnv,
487            obj: jobject,
488            clazz: jclass,
489            methodID: jmethodID,
490            ...
491        ) -> jshort,
492    >,
493    pub CallNonvirtualShortMethodV: Option<
494        unsafe extern "system" fn(
495            env: *mut JNIEnv,
496            obj: jobject,
497            clazz: jclass,
498            methodID: jmethodID,
499            args: va_list,
500        ) -> jshort,
501    >,
502    pub CallNonvirtualShortMethodA: Option<
503        unsafe extern "system" fn(
504            env: *mut JNIEnv,
505            obj: jobject,
506            clazz: jclass,
507            methodID: jmethodID,
508            args: *const jvalue,
509        ) -> jshort,
510    >,
511    pub CallNonvirtualIntMethod: Option<
512        unsafe extern "C" fn(
513            env: *mut JNIEnv,
514            obj: jobject,
515            clazz: jclass,
516            methodID: jmethodID,
517            ...
518        ) -> jint,
519    >,
520    pub CallNonvirtualIntMethodV: Option<
521        unsafe extern "system" fn(
522            env: *mut JNIEnv,
523            obj: jobject,
524            clazz: jclass,
525            methodID: jmethodID,
526            args: va_list,
527        ) -> jint,
528    >,
529    pub CallNonvirtualIntMethodA: Option<
530        unsafe extern "system" fn(
531            env: *mut JNIEnv,
532            obj: jobject,
533            clazz: jclass,
534            methodID: jmethodID,
535            args: *const jvalue,
536        ) -> jint,
537    >,
538    pub CallNonvirtualLongMethod: Option<
539        unsafe extern "C" fn(
540            env: *mut JNIEnv,
541            obj: jobject,
542            clazz: jclass,
543            methodID: jmethodID,
544            ...
545        ) -> jlong,
546    >,
547    pub CallNonvirtualLongMethodV: Option<
548        unsafe extern "system" fn(
549            env: *mut JNIEnv,
550            obj: jobject,
551            clazz: jclass,
552            methodID: jmethodID,
553            args: va_list,
554        ) -> jlong,
555    >,
556    pub CallNonvirtualLongMethodA: Option<
557        unsafe extern "system" fn(
558            env: *mut JNIEnv,
559            obj: jobject,
560            clazz: jclass,
561            methodID: jmethodID,
562            args: *const jvalue,
563        ) -> jlong,
564    >,
565    pub CallNonvirtualFloatMethod: Option<
566        unsafe extern "C" fn(
567            env: *mut JNIEnv,
568            obj: jobject,
569            clazz: jclass,
570            methodID: jmethodID,
571            ...
572        ) -> jfloat,
573    >,
574    pub CallNonvirtualFloatMethodV: Option<
575        unsafe extern "system" fn(
576            env: *mut JNIEnv,
577            obj: jobject,
578            clazz: jclass,
579            methodID: jmethodID,
580            args: va_list,
581        ) -> jfloat,
582    >,
583    pub CallNonvirtualFloatMethodA: Option<
584        unsafe extern "system" fn(
585            env: *mut JNIEnv,
586            obj: jobject,
587            clazz: jclass,
588            methodID: jmethodID,
589            args: *const jvalue,
590        ) -> jfloat,
591    >,
592    pub CallNonvirtualDoubleMethod: Option<
593        unsafe extern "C" fn(
594            env: *mut JNIEnv,
595            obj: jobject,
596            clazz: jclass,
597            methodID: jmethodID,
598            ...
599        ) -> jdouble,
600    >,
601    pub CallNonvirtualDoubleMethodV: Option<
602        unsafe extern "system" fn(
603            env: *mut JNIEnv,
604            obj: jobject,
605            clazz: jclass,
606            methodID: jmethodID,
607            args: va_list,
608        ) -> jdouble,
609    >,
610    pub CallNonvirtualDoubleMethodA: Option<
611        unsafe extern "system" fn(
612            env: *mut JNIEnv,
613            obj: jobject,
614            clazz: jclass,
615            methodID: jmethodID,
616            args: *const jvalue,
617        ) -> jdouble,
618    >,
619    pub CallNonvirtualVoidMethod: Option<
620        unsafe extern "C" fn(
621            env: *mut JNIEnv,
622            obj: jobject,
623            clazz: jclass,
624            methodID: jmethodID,
625            ...
626        ),
627    >,
628    pub CallNonvirtualVoidMethodV: Option<
629        unsafe extern "system" fn(
630            env: *mut JNIEnv,
631            obj: jobject,
632            clazz: jclass,
633            methodID: jmethodID,
634            args: va_list,
635        ),
636    >,
637    pub CallNonvirtualVoidMethodA: Option<
638        unsafe extern "system" fn(
639            env: *mut JNIEnv,
640            obj: jobject,
641            clazz: jclass,
642            methodID: jmethodID,
643            args: *const jvalue,
644        ),
645    >,
646    pub GetFieldID: Option<
647        unsafe extern "system" fn(
648            env: *mut JNIEnv,
649            clazz: jclass,
650            name: *const c_char,
651            sig: *const c_char,
652        ) -> jfieldID,
653    >,
654    pub GetObjectField: Option<
655        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID) -> jobject,
656    >,
657    pub GetBooleanField: Option<
658        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID) -> jboolean,
659    >,
660    pub GetByteField: Option<
661        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID) -> jbyte,
662    >,
663    pub GetCharField: Option<
664        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID) -> jchar,
665    >,
666    pub GetShortField: Option<
667        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID) -> jshort,
668    >,
669    pub GetIntField: Option<
670        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID) -> jint,
671    >,
672    pub GetLongField: Option<
673        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID) -> jlong,
674    >,
675    pub GetFloatField: Option<
676        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID) -> jfloat,
677    >,
678    pub GetDoubleField: Option<
679        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID) -> jdouble,
680    >,
681    pub SetObjectField: Option<
682        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID, val: jobject),
683    >,
684    pub SetBooleanField: Option<
685        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID, val: jboolean),
686    >,
687    pub SetByteField: Option<
688        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID, val: jbyte),
689    >,
690    pub SetCharField: Option<
691        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID, val: jchar),
692    >,
693    pub SetShortField: Option<
694        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID, val: jshort),
695    >,
696    pub SetIntField: Option<
697        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID, val: jint),
698    >,
699    pub SetLongField: Option<
700        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID, val: jlong),
701    >,
702    pub SetFloatField: Option<
703        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID, val: jfloat),
704    >,
705    pub SetDoubleField: Option<
706        unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject, fieldID: jfieldID, val: jdouble),
707    >,
708    pub GetStaticMethodID: Option<
709        unsafe extern "system" fn(
710            env: *mut JNIEnv,
711            clazz: jclass,
712            name: *const c_char,
713            sig: *const c_char,
714        ) -> jmethodID,
715    >,
716    pub CallStaticObjectMethod: Option<
717        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jobject,
718    >,
719    pub CallStaticObjectMethodV: Option<
720        unsafe extern "system" fn(
721            env: *mut JNIEnv,
722            clazz: jclass,
723            methodID: jmethodID,
724            args: va_list,
725        ) -> jobject,
726    >,
727    pub CallStaticObjectMethodA: Option<
728        unsafe extern "system" fn(
729            env: *mut JNIEnv,
730            clazz: jclass,
731            methodID: jmethodID,
732            args: *const jvalue,
733        ) -> jobject,
734    >,
735    pub CallStaticBooleanMethod: Option<
736        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jboolean,
737    >,
738    pub CallStaticBooleanMethodV: Option<
739        unsafe extern "system" fn(
740            env: *mut JNIEnv,
741            clazz: jclass,
742            methodID: jmethodID,
743            args: va_list,
744        ) -> jboolean,
745    >,
746    pub CallStaticBooleanMethodA: Option<
747        unsafe extern "system" fn(
748            env: *mut JNIEnv,
749            clazz: jclass,
750            methodID: jmethodID,
751            args: *const jvalue,
752        ) -> jboolean,
753    >,
754    pub CallStaticByteMethod: Option<
755        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jbyte,
756    >,
757    pub CallStaticByteMethodV: Option<
758        unsafe extern "system" fn(
759            env: *mut JNIEnv,
760            clazz: jclass,
761            methodID: jmethodID,
762            args: va_list,
763        ) -> jbyte,
764    >,
765    pub CallStaticByteMethodA: Option<
766        unsafe extern "system" fn(
767            env: *mut JNIEnv,
768            clazz: jclass,
769            methodID: jmethodID,
770            args: *const jvalue,
771        ) -> jbyte,
772    >,
773    pub CallStaticCharMethod: Option<
774        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jchar,
775    >,
776    pub CallStaticCharMethodV: Option<
777        unsafe extern "system" fn(
778            env: *mut JNIEnv,
779            clazz: jclass,
780            methodID: jmethodID,
781            args: va_list,
782        ) -> jchar,
783    >,
784    pub CallStaticCharMethodA: Option<
785        unsafe extern "system" fn(
786            env: *mut JNIEnv,
787            clazz: jclass,
788            methodID: jmethodID,
789            args: *const jvalue,
790        ) -> jchar,
791    >,
792    pub CallStaticShortMethod: Option<
793        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jshort,
794    >,
795    pub CallStaticShortMethodV: Option<
796        unsafe extern "system" fn(
797            env: *mut JNIEnv,
798            clazz: jclass,
799            methodID: jmethodID,
800            args: va_list,
801        ) -> jshort,
802    >,
803    pub CallStaticShortMethodA: Option<
804        unsafe extern "system" fn(
805            env: *mut JNIEnv,
806            clazz: jclass,
807            methodID: jmethodID,
808            args: *const jvalue,
809        ) -> jshort,
810    >,
811    pub CallStaticIntMethod: Option<
812        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jint,
813    >,
814    pub CallStaticIntMethodV: Option<
815        unsafe extern "system" fn(
816            env: *mut JNIEnv,
817            clazz: jclass,
818            methodID: jmethodID,
819            args: va_list,
820        ) -> jint,
821    >,
822    pub CallStaticIntMethodA: Option<
823        unsafe extern "system" fn(
824            env: *mut JNIEnv,
825            clazz: jclass,
826            methodID: jmethodID,
827            args: *const jvalue,
828        ) -> jint,
829    >,
830    pub CallStaticLongMethod: Option<
831        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jlong,
832    >,
833    pub CallStaticLongMethodV: Option<
834        unsafe extern "system" fn(
835            env: *mut JNIEnv,
836            clazz: jclass,
837            methodID: jmethodID,
838            args: va_list,
839        ) -> jlong,
840    >,
841    pub CallStaticLongMethodA: Option<
842        unsafe extern "system" fn(
843            env: *mut JNIEnv,
844            clazz: jclass,
845            methodID: jmethodID,
846            args: *const jvalue,
847        ) -> jlong,
848    >,
849    pub CallStaticFloatMethod: Option<
850        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jfloat,
851    >,
852    pub CallStaticFloatMethodV: Option<
853        unsafe extern "system" fn(
854            env: *mut JNIEnv,
855            clazz: jclass,
856            methodID: jmethodID,
857            args: va_list,
858        ) -> jfloat,
859    >,
860    pub CallStaticFloatMethodA: Option<
861        unsafe extern "system" fn(
862            env: *mut JNIEnv,
863            clazz: jclass,
864            methodID: jmethodID,
865            args: *const jvalue,
866        ) -> jfloat,
867    >,
868    pub CallStaticDoubleMethod: Option<
869        unsafe extern "C" fn(env: *mut JNIEnv, clazz: jclass, methodID: jmethodID, ...) -> jdouble,
870    >,
871    pub CallStaticDoubleMethodV: Option<
872        unsafe extern "system" fn(
873            env: *mut JNIEnv,
874            clazz: jclass,
875            methodID: jmethodID,
876            args: va_list,
877        ) -> jdouble,
878    >,
879    pub CallStaticDoubleMethodA: Option<
880        unsafe extern "system" fn(
881            env: *mut JNIEnv,
882            clazz: jclass,
883            methodID: jmethodID,
884            args: *const jvalue,
885        ) -> jdouble,
886    >,
887    pub CallStaticVoidMethod:
888        Option<unsafe extern "C" fn(env: *mut JNIEnv, cls: jclass, methodID: jmethodID, ...)>,
889    pub CallStaticVoidMethodV: Option<
890        unsafe extern "system" fn(
891            env: *mut JNIEnv,
892            cls: jclass,
893            methodID: jmethodID,
894            args: va_list,
895        ),
896    >,
897    pub CallStaticVoidMethodA: Option<
898        unsafe extern "system" fn(
899            env: *mut JNIEnv,
900            cls: jclass,
901            methodID: jmethodID,
902            args: *const jvalue,
903        ),
904    >,
905    pub GetStaticFieldID: Option<
906        unsafe extern "system" fn(
907            env: *mut JNIEnv,
908            clazz: jclass,
909            name: *const c_char,
910            sig: *const c_char,
911        ) -> jfieldID,
912    >,
913    pub GetStaticObjectField: Option<
914        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID) -> jobject,
915    >,
916    pub GetStaticBooleanField: Option<
917        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID) -> jboolean,
918    >,
919    pub GetStaticByteField: Option<
920        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID) -> jbyte,
921    >,
922    pub GetStaticCharField: Option<
923        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID) -> jchar,
924    >,
925    pub GetStaticShortField: Option<
926        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID) -> jshort,
927    >,
928    pub GetStaticIntField: Option<
929        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID) -> jint,
930    >,
931    pub GetStaticLongField: Option<
932        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID) -> jlong,
933    >,
934    pub GetStaticFloatField: Option<
935        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID) -> jfloat,
936    >,
937    pub GetStaticDoubleField: Option<
938        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID) -> jdouble,
939    >,
940    pub SetStaticObjectField: Option<
941        unsafe extern "system" fn(
942            env: *mut JNIEnv,
943            clazz: jclass,
944            fieldID: jfieldID,
945            value: jobject,
946        ),
947    >,
948    pub SetStaticBooleanField: Option<
949        unsafe extern "system" fn(
950            env: *mut JNIEnv,
951            clazz: jclass,
952            fieldID: jfieldID,
953            value: jboolean,
954        ),
955    >,
956    pub SetStaticByteField: Option<
957        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID, value: jbyte),
958    >,
959    pub SetStaticCharField: Option<
960        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID, value: jchar),
961    >,
962    pub SetStaticShortField: Option<
963        unsafe extern "system" fn(
964            env: *mut JNIEnv,
965            clazz: jclass,
966            fieldID: jfieldID,
967            value: jshort,
968        ),
969    >,
970    pub SetStaticIntField: Option<
971        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID, value: jint),
972    >,
973    pub SetStaticLongField: Option<
974        unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass, fieldID: jfieldID, value: jlong),
975    >,
976    pub SetStaticFloatField: Option<
977        unsafe extern "system" fn(
978            env: *mut JNIEnv,
979            clazz: jclass,
980            fieldID: jfieldID,
981            value: jfloat,
982        ),
983    >,
984    pub SetStaticDoubleField: Option<
985        unsafe extern "system" fn(
986            env: *mut JNIEnv,
987            clazz: jclass,
988            fieldID: jfieldID,
989            value: jdouble,
990        ),
991    >,
992    pub NewString: Option<
993        unsafe extern "system" fn(env: *mut JNIEnv, unicode: *const jchar, len: jsize) -> jstring,
994    >,
995    pub GetStringLength: Option<unsafe extern "system" fn(env: *mut JNIEnv, str: jstring) -> jsize>,
996    pub GetStringChars: Option<
997        unsafe extern "system" fn(
998            env: *mut JNIEnv,
999            str: jstring,
1000            isCopy: *mut jboolean,
1001        ) -> *const jchar,
1002    >,
1003    pub ReleaseStringChars:
1004        Option<unsafe extern "system" fn(env: *mut JNIEnv, str: jstring, chars: *const jchar)>,
1005    pub NewStringUTF:
1006        Option<unsafe extern "system" fn(env: *mut JNIEnv, utf: *const c_char) -> jstring>,
1007    pub GetStringUTFLength:
1008        Option<unsafe extern "system" fn(env: *mut JNIEnv, str: jstring) -> jsize>,
1009    pub GetStringUTFChars: Option<
1010        unsafe extern "system" fn(
1011            env: *mut JNIEnv,
1012            str: jstring,
1013            isCopy: *mut jboolean,
1014        ) -> *const c_char,
1015    >,
1016    pub ReleaseStringUTFChars:
1017        Option<unsafe extern "system" fn(env: *mut JNIEnv, str: jstring, chars: *const c_char)>,
1018    pub GetArrayLength: Option<unsafe extern "system" fn(env: *mut JNIEnv, array: jarray) -> jsize>,
1019    pub NewObjectArray: Option<
1020        unsafe extern "system" fn(
1021            env: *mut JNIEnv,
1022            len: jsize,
1023            clazz: jclass,
1024            init: jobject,
1025        ) -> jobjectArray,
1026    >,
1027    pub GetObjectArrayElement: Option<
1028        unsafe extern "system" fn(env: *mut JNIEnv, array: jobjectArray, index: jsize) -> jobject,
1029    >,
1030    pub SetObjectArrayElement: Option<
1031        unsafe extern "system" fn(
1032            env: *mut JNIEnv,
1033            array: jobjectArray,
1034            index: jsize,
1035            val: jobject,
1036        ),
1037    >,
1038    pub NewBooleanArray:
1039        Option<unsafe extern "system" fn(env: *mut JNIEnv, len: jsize) -> jbooleanArray>,
1040    pub NewByteArray: Option<unsafe extern "system" fn(env: *mut JNIEnv, len: jsize) -> jbyteArray>,
1041    pub NewCharArray: Option<unsafe extern "system" fn(env: *mut JNIEnv, len: jsize) -> jcharArray>,
1042    pub NewShortArray:
1043        Option<unsafe extern "system" fn(env: *mut JNIEnv, len: jsize) -> jshortArray>,
1044    pub NewIntArray: Option<unsafe extern "system" fn(env: *mut JNIEnv, len: jsize) -> jintArray>,
1045    pub NewLongArray: Option<unsafe extern "system" fn(env: *mut JNIEnv, len: jsize) -> jlongArray>,
1046    pub NewFloatArray:
1047        Option<unsafe extern "system" fn(env: *mut JNIEnv, len: jsize) -> jfloatArray>,
1048    pub NewDoubleArray:
1049        Option<unsafe extern "system" fn(env: *mut JNIEnv, len: jsize) -> jdoubleArray>,
1050    pub GetBooleanArrayElements: Option<
1051        unsafe extern "system" fn(
1052            env: *mut JNIEnv,
1053            array: jbooleanArray,
1054            isCopy: *mut jboolean,
1055        ) -> *mut jboolean,
1056    >,
1057    pub GetByteArrayElements: Option<
1058        unsafe extern "system" fn(
1059            env: *mut JNIEnv,
1060            array: jbyteArray,
1061            isCopy: *mut jboolean,
1062        ) -> *mut jbyte,
1063    >,
1064    pub GetCharArrayElements: Option<
1065        unsafe extern "system" fn(
1066            env: *mut JNIEnv,
1067            array: jcharArray,
1068            isCopy: *mut jboolean,
1069        ) -> *mut jchar,
1070    >,
1071    pub GetShortArrayElements: Option<
1072        unsafe extern "system" fn(
1073            env: *mut JNIEnv,
1074            array: jshortArray,
1075            isCopy: *mut jboolean,
1076        ) -> *mut jshort,
1077    >,
1078    pub GetIntArrayElements: Option<
1079        unsafe extern "system" fn(
1080            env: *mut JNIEnv,
1081            array: jintArray,
1082            isCopy: *mut jboolean,
1083        ) -> *mut jint,
1084    >,
1085    pub GetLongArrayElements: Option<
1086        unsafe extern "system" fn(
1087            env: *mut JNIEnv,
1088            array: jlongArray,
1089            isCopy: *mut jboolean,
1090        ) -> *mut jlong,
1091    >,
1092    pub GetFloatArrayElements: Option<
1093        unsafe extern "system" fn(
1094            env: *mut JNIEnv,
1095            array: jfloatArray,
1096            isCopy: *mut jboolean,
1097        ) -> *mut jfloat,
1098    >,
1099    pub GetDoubleArrayElements: Option<
1100        unsafe extern "system" fn(
1101            env: *mut JNIEnv,
1102            array: jdoubleArray,
1103            isCopy: *mut jboolean,
1104        ) -> *mut jdouble,
1105    >,
1106    pub ReleaseBooleanArrayElements: Option<
1107        unsafe extern "system" fn(
1108            env: *mut JNIEnv,
1109            array: jbooleanArray,
1110            elems: *mut jboolean,
1111            mode: jint,
1112        ),
1113    >,
1114    pub ReleaseByteArrayElements: Option<
1115        unsafe extern "system" fn(
1116            env: *mut JNIEnv,
1117            array: jbyteArray,
1118            elems: *mut jbyte,
1119            mode: jint,
1120        ),
1121    >,
1122    pub ReleaseCharArrayElements: Option<
1123        unsafe extern "system" fn(
1124            env: *mut JNIEnv,
1125            array: jcharArray,
1126            elems: *mut jchar,
1127            mode: jint,
1128        ),
1129    >,
1130    pub ReleaseShortArrayElements: Option<
1131        unsafe extern "system" fn(
1132            env: *mut JNIEnv,
1133            array: jshortArray,
1134            elems: *mut jshort,
1135            mode: jint,
1136        ),
1137    >,
1138    pub ReleaseIntArrayElements: Option<
1139        unsafe extern "system" fn(env: *mut JNIEnv, array: jintArray, elems: *mut jint, mode: jint),
1140    >,
1141    pub ReleaseLongArrayElements: Option<
1142        unsafe extern "system" fn(
1143            env: *mut JNIEnv,
1144            array: jlongArray,
1145            elems: *mut jlong,
1146            mode: jint,
1147        ),
1148    >,
1149    pub ReleaseFloatArrayElements: Option<
1150        unsafe extern "system" fn(
1151            env: *mut JNIEnv,
1152            array: jfloatArray,
1153            elems: *mut jfloat,
1154            mode: jint,
1155        ),
1156    >,
1157    pub ReleaseDoubleArrayElements: Option<
1158        unsafe extern "system" fn(
1159            env: *mut JNIEnv,
1160            array: jdoubleArray,
1161            elems: *mut jdouble,
1162            mode: jint,
1163        ),
1164    >,
1165    pub GetBooleanArrayRegion: Option<
1166        unsafe extern "system" fn(
1167            env: *mut JNIEnv,
1168            array: jbooleanArray,
1169            start: jsize,
1170            l: jsize,
1171            buf: *mut jboolean,
1172        ),
1173    >,
1174    pub GetByteArrayRegion: Option<
1175        unsafe extern "system" fn(
1176            env: *mut JNIEnv,
1177            array: jbyteArray,
1178            start: jsize,
1179            len: jsize,
1180            buf: *mut jbyte,
1181        ),
1182    >,
1183    pub GetCharArrayRegion: Option<
1184        unsafe extern "system" fn(
1185            env: *mut JNIEnv,
1186            array: jcharArray,
1187            start: jsize,
1188            len: jsize,
1189            buf: *mut jchar,
1190        ),
1191    >,
1192    pub GetShortArrayRegion: Option<
1193        unsafe extern "system" fn(
1194            env: *mut JNIEnv,
1195            array: jshortArray,
1196            start: jsize,
1197            len: jsize,
1198            buf: *mut jshort,
1199        ),
1200    >,
1201    pub GetIntArrayRegion: Option<
1202        unsafe extern "system" fn(
1203            env: *mut JNIEnv,
1204            array: jintArray,
1205            start: jsize,
1206            len: jsize,
1207            buf: *mut jint,
1208        ),
1209    >,
1210    pub GetLongArrayRegion: Option<
1211        unsafe extern "system" fn(
1212            env: *mut JNIEnv,
1213            array: jlongArray,
1214            start: jsize,
1215            len: jsize,
1216            buf: *mut jlong,
1217        ),
1218    >,
1219    pub GetFloatArrayRegion: Option<
1220        unsafe extern "system" fn(
1221            env: *mut JNIEnv,
1222            array: jfloatArray,
1223            start: jsize,
1224            len: jsize,
1225            buf: *mut jfloat,
1226        ),
1227    >,
1228    pub GetDoubleArrayRegion: Option<
1229        unsafe extern "system" fn(
1230            env: *mut JNIEnv,
1231            array: jdoubleArray,
1232            start: jsize,
1233            len: jsize,
1234            buf: *mut jdouble,
1235        ),
1236    >,
1237    pub SetBooleanArrayRegion: Option<
1238        unsafe extern "system" fn(
1239            env: *mut JNIEnv,
1240            array: jbooleanArray,
1241            start: jsize,
1242            l: jsize,
1243            buf: *const jboolean,
1244        ),
1245    >,
1246    pub SetByteArrayRegion: Option<
1247        unsafe extern "system" fn(
1248            env: *mut JNIEnv,
1249            array: jbyteArray,
1250            start: jsize,
1251            len: jsize,
1252            buf: *const jbyte,
1253        ),
1254    >,
1255    pub SetCharArrayRegion: Option<
1256        unsafe extern "system" fn(
1257            env: *mut JNIEnv,
1258            array: jcharArray,
1259            start: jsize,
1260            len: jsize,
1261            buf: *const jchar,
1262        ),
1263    >,
1264    pub SetShortArrayRegion: Option<
1265        unsafe extern "system" fn(
1266            env: *mut JNIEnv,
1267            array: jshortArray,
1268            start: jsize,
1269            len: jsize,
1270            buf: *const jshort,
1271        ),
1272    >,
1273    pub SetIntArrayRegion: Option<
1274        unsafe extern "system" fn(
1275            env: *mut JNIEnv,
1276            array: jintArray,
1277            start: jsize,
1278            len: jsize,
1279            buf: *const jint,
1280        ),
1281    >,
1282    pub SetLongArrayRegion: Option<
1283        unsafe extern "system" fn(
1284            env: *mut JNIEnv,
1285            array: jlongArray,
1286            start: jsize,
1287            len: jsize,
1288            buf: *const jlong,
1289        ),
1290    >,
1291    pub SetFloatArrayRegion: Option<
1292        unsafe extern "system" fn(
1293            env: *mut JNIEnv,
1294            array: jfloatArray,
1295            start: jsize,
1296            len: jsize,
1297            buf: *const jfloat,
1298        ),
1299    >,
1300    pub SetDoubleArrayRegion: Option<
1301        unsafe extern "system" fn(
1302            env: *mut JNIEnv,
1303            array: jdoubleArray,
1304            start: jsize,
1305            len: jsize,
1306            buf: *const jdouble,
1307        ),
1308    >,
1309    pub RegisterNatives: Option<
1310        unsafe extern "system" fn(
1311            env: *mut JNIEnv,
1312            clazz: jclass,
1313            methods: *const JNINativeMethod,
1314            nMethods: jint,
1315        ) -> jint,
1316    >,
1317    pub UnregisterNatives:
1318        Option<unsafe extern "system" fn(env: *mut JNIEnv, clazz: jclass) -> jint>,
1319    pub MonitorEnter: Option<unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject) -> jint>,
1320    pub MonitorExit: Option<unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject) -> jint>,
1321    pub GetJavaVM:
1322        Option<unsafe extern "system" fn(env: *mut JNIEnv, vm: *mut *mut JavaVM) -> jint>,
1323    pub GetStringRegion: Option<
1324        unsafe extern "system" fn(
1325            env: *mut JNIEnv,
1326            str: jstring,
1327            start: jsize,
1328            len: jsize,
1329            buf: *mut jchar,
1330        ),
1331    >,
1332    pub GetStringUTFRegion: Option<
1333        unsafe extern "system" fn(
1334            env: *mut JNIEnv,
1335            str: jstring,
1336            start: jsize,
1337            len: jsize,
1338            buf: *mut c_char,
1339        ),
1340    >,
1341    pub GetPrimitiveArrayCritical: Option<
1342        unsafe extern "system" fn(
1343            env: *mut JNIEnv,
1344            array: jarray,
1345            isCopy: *mut jboolean,
1346        ) -> *mut c_void,
1347    >,
1348    pub ReleasePrimitiveArrayCritical: Option<
1349        unsafe extern "system" fn(env: *mut JNIEnv, array: jarray, carray: *mut c_void, mode: jint),
1350    >,
1351    pub GetStringCritical: Option<
1352        unsafe extern "system" fn(
1353            env: *mut JNIEnv,
1354            string: jstring,
1355            isCopy: *mut jboolean,
1356        ) -> *const jchar,
1357    >,
1358    pub ReleaseStringCritical:
1359        Option<unsafe extern "system" fn(env: *mut JNIEnv, string: jstring, cstring: *const jchar)>,
1360    pub NewWeakGlobalRef:
1361        Option<unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject) -> jweak>,
1362    pub DeleteWeakGlobalRef: Option<unsafe extern "system" fn(env: *mut JNIEnv, ref_: jweak)>,
1363    pub ExceptionCheck: Option<unsafe extern "system" fn(env: *mut JNIEnv) -> jboolean>,
1364    pub NewDirectByteBuffer: Option<
1365        unsafe extern "system" fn(
1366            env: *mut JNIEnv,
1367            address: *mut c_void,
1368            capacity: jlong,
1369        ) -> jobject,
1370    >,
1371    pub GetDirectBufferAddress:
1372        Option<unsafe extern "system" fn(env: *mut JNIEnv, buf: jobject) -> *mut c_void>,
1373    pub GetDirectBufferCapacity:
1374        Option<unsafe extern "system" fn(env: *mut JNIEnv, buf: jobject) -> jlong>,
1375    pub GetObjectRefType:
1376        Option<unsafe extern "system" fn(env: *mut JNIEnv, obj: jobject) -> jobjectRefType>,
1377}
1378
1379pub enum _jobject {}
1380pub enum _jfieldID {}
1381pub enum _jmethodID {}