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 {}