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