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