@@ -522,48 +522,48 @@ int32_t AMotionEvent_getMetaState(const AInputEvent* motion_event);
522
522
int32_t AMotionEvent_getEdgeFlags (const AInputEvent * motion_event );
523
523
int64_t AMotionEvent_getDownTime (const AInputEvent * motion_event );
524
524
int64_t AMotionEvent_getEventTime (const AInputEvent * motion_event );
525
- float AMotionEvent_getXOffset (const AInputEvent * motion_event ); // __NDK_FPABI__
526
- float AMotionEvent_getYOffset (const AInputEvent * motion_event ); // __NDK_FPABI__
527
- float AMotionEvent_getXPrecision (const AInputEvent * motion_event ); // __NDK_FPABI__
528
- float AMotionEvent_getYPrecision (const AInputEvent * motion_event ); // __NDK_FPABI__
525
+ float AMotionEvent_getXOffset (const AInputEvent * motion_event );
526
+ float AMotionEvent_getYOffset (const AInputEvent * motion_event );
527
+ float AMotionEvent_getXPrecision (const AInputEvent * motion_event );
528
+ float AMotionEvent_getYPrecision (const AInputEvent * motion_event );
529
529
size_t AMotionEvent_getPointerCount (const AInputEvent * motion_event );
530
530
int32_t AMotionEvent_getPointerId (const AInputEvent * motion_event , size_t pointer_index );
531
- float AMotionEvent_getRawX (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
532
- float AMotionEvent_getRawY (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
533
- float AMotionEvent_getX (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
534
- float AMotionEvent_getY (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
535
- float AMotionEvent_getPressure (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
536
- float AMotionEvent_getSize (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
537
- float AMotionEvent_getTouchMajor (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
538
- float AMotionEvent_getTouchMinor (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
539
- float AMotionEvent_getToolMajor (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
540
- float AMotionEvent_getToolMinor (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
541
- float AMotionEvent_getOrientation (const AInputEvent * motion_event , size_t pointer_index ); // __NDK_FPABI__
531
+ float AMotionEvent_getRawX (const AInputEvent * motion_event , size_t pointer_index );
532
+ float AMotionEvent_getRawY (const AInputEvent * motion_event , size_t pointer_index );
533
+ float AMotionEvent_getX (const AInputEvent * motion_event , size_t pointer_index );
534
+ float AMotionEvent_getY (const AInputEvent * motion_event , size_t pointer_index );
535
+ float AMotionEvent_getPressure (const AInputEvent * motion_event , size_t pointer_index );
536
+ float AMotionEvent_getSize (const AInputEvent * motion_event , size_t pointer_index );
537
+ float AMotionEvent_getTouchMajor (const AInputEvent * motion_event , size_t pointer_index );
538
+ float AMotionEvent_getTouchMinor (const AInputEvent * motion_event , size_t pointer_index );
539
+ float AMotionEvent_getToolMajor (const AInputEvent * motion_event , size_t pointer_index );
540
+ float AMotionEvent_getToolMinor (const AInputEvent * motion_event , size_t pointer_index );
541
+ float AMotionEvent_getOrientation (const AInputEvent * motion_event , size_t pointer_index );
542
542
size_t AMotionEvent_getHistorySize (const AInputEvent * motion_event );
543
543
int64_t AMotionEvent_getHistoricalEventTime (const AInputEvent * motion_event ,
544
544
size_t history_index );
545
545
float AMotionEvent_getHistoricalRawX (const AInputEvent * motion_event , size_t pointer_index ,
546
- size_t history_index ); // __NDK_FPABI__
546
+ size_t history_index );
547
547
float AMotionEvent_getHistoricalRawY (const AInputEvent * motion_event , size_t pointer_index ,
548
- size_t history_index ); // __NDK_FPABI__
548
+ size_t history_index );
549
549
float AMotionEvent_getHistoricalX (const AInputEvent * motion_event , size_t pointer_index ,
550
- size_t history_index ); // __NDK_FPABI__
550
+ size_t history_index );
551
551
float AMotionEvent_getHistoricalY (const AInputEvent * motion_event , size_t pointer_index ,
552
- size_t history_index ); // __NDK_FPABI__
552
+ size_t history_index );
553
553
float AMotionEvent_getHistoricalPressure (const AInputEvent * motion_event , size_t pointer_index ,
554
- size_t history_index ); // __NDK_FPABI__
554
+ size_t history_index );
555
555
float AMotionEvent_getHistoricalSize (const AInputEvent * motion_event , size_t pointer_index ,
556
- size_t history_index ); // __NDK_FPABI__
556
+ size_t history_index );
557
557
float AMotionEvent_getHistoricalTouchMajor (const AInputEvent * motion_event , size_t pointer_index ,
558
- size_t history_index ); // __NDK_FPABI__
558
+ size_t history_index );
559
559
float AMotionEvent_getHistoricalTouchMinor (const AInputEvent * motion_event , size_t pointer_index ,
560
- size_t history_index ); // __NDK_FPABI__
560
+ size_t history_index );
561
561
float AMotionEvent_getHistoricalToolMajor (const AInputEvent * motion_event , size_t pointer_index ,
562
- size_t history_index ); // __NDK_FPABI__
562
+ size_t history_index );
563
563
float AMotionEvent_getHistoricalToolMinor (const AInputEvent * motion_event , size_t pointer_index ,
564
- size_t history_index ); // __NDK_FPABI__
564
+ size_t history_index );
565
565
float AMotionEvent_getHistoricalOrientation (const AInputEvent * motion_event , size_t pointer_index ,
566
- size_t history_index ); // __NDK_FPABI__
566
+ size_t history_index );
567
567
568
568
struct AInputQueue;
569
569
typedef struct AInputQueue AInputQueue;
@@ -610,23 +610,24 @@ void ANativeWindow_release(ANativeWindow* window);
610
610
int32_t ANativeWindow_getWidth (ANativeWindow * window );
611
611
int32_t ANativeWindow_getHeight (ANativeWindow * window );
612
612
int32_t ANativeWindow_getFormat (ANativeWindow * window );
613
- int32_t ANativeWindow_setBuffersGeometry (ANativeWindow * window , int32_t width , int32_t height , int32_t format );
613
+ int32_t ANativeWindow_setBuffersGeometry (ANativeWindow * window ,
614
+ int32_t width , int32_t height , int32_t format );
614
615
int32_t ANativeWindow_lock (ANativeWindow * window , ANativeWindow_Buffer * outBuffer ,
615
616
ARect * inOutDirtyBounds );
616
617
int32_t ANativeWindow_unlockAndPost (ANativeWindow * window );
617
618
618
619
// from android-ndk/platforms/android-9/arch-x86/usr/include/jni.h:
619
620
620
- typedef uint8_t jboolean; /* unsigned 8 bits */
621
- typedef int8_t jbyte; /* signed 8 bits */
622
- typedef uint16_t jchar; /* unsigned 16 bits */
623
- typedef int16_t jshort; /* signed 16 bits */
624
- typedef int32_t jint; /* signed 32 bits */
625
- typedef int64_t jlong; /* signed 64 bits */
626
- typedef float jfloat; /* 32-bit IEEE 754 */
627
- typedef double jdouble; /* 64-bit IEEE 754 */
621
+ typedef uint8_t jboolean; /* unsigned 8 bits */
622
+ typedef int8_t jbyte; /* signed 8 bits */
623
+ typedef uint16_t jchar; /* unsigned 16 bits */
624
+ typedef int16_t jshort; /* signed 16 bits */
625
+ typedef int32_t jint; /* signed 32 bits */
626
+ typedef int64_t jlong; /* signed 64 bits */
627
+ typedef float jfloat; /* 32-bit IEEE 754 */
628
+ typedef double jdouble; /* 64-bit IEEE 754 */
628
629
629
- typedef jint jsize;
630
+ typedef jint jsize;
630
631
631
632
typedef void * jobject;
632
633
typedef jobject jclass;
@@ -728,103 +729,103 @@ struct JNINativeInterface {
728
729
jobject (* AllocObject )(JNIEnv * , jclass );
729
730
jobject (* NewObject )(JNIEnv * , jclass , jmethodID , ... );
730
731
jobject (* NewObjectV )(JNIEnv * , jclass , jmethodID , va_list );
731
- jobject (* NewObjectA )(JNIEnv * , jclass , jmethodID , jvalue * );
732
+ jobject (* NewObjectA )(JNIEnv * , jclass , jmethodID , const jvalue * );
732
733
733
734
jclass (* GetObjectClass )(JNIEnv * , jobject );
734
735
jboolean (* IsInstanceOf )(JNIEnv * , jobject , jclass );
735
736
jmethodID (* GetMethodID )(JNIEnv * , jclass , const char * , const char * );
736
737
737
738
jobject (* CallObjectMethod )(JNIEnv * , jobject , jmethodID , ... );
738
739
jobject (* CallObjectMethodV )(JNIEnv * , jobject , jmethodID , va_list );
739
- jobject (* CallObjectMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
740
+ jobject (* CallObjectMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
740
741
jboolean (* CallBooleanMethod )(JNIEnv * , jobject , jmethodID , ... );
741
742
jboolean (* CallBooleanMethodV )(JNIEnv * , jobject , jmethodID , va_list );
742
- jboolean (* CallBooleanMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
743
+ jboolean (* CallBooleanMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
743
744
jbyte (* CallByteMethod )(JNIEnv * , jobject , jmethodID , ... );
744
745
jbyte (* CallByteMethodV )(JNIEnv * , jobject , jmethodID , va_list );
745
- jbyte (* CallByteMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
746
+ jbyte (* CallByteMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
746
747
jchar (* CallCharMethod )(JNIEnv * , jobject , jmethodID , ... );
747
748
jchar (* CallCharMethodV )(JNIEnv * , jobject , jmethodID , va_list );
748
- jchar (* CallCharMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
749
+ jchar (* CallCharMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
749
750
jshort (* CallShortMethod )(JNIEnv * , jobject , jmethodID , ... );
750
751
jshort (* CallShortMethodV )(JNIEnv * , jobject , jmethodID , va_list );
751
- jshort (* CallShortMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
752
+ jshort (* CallShortMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
752
753
jint (* CallIntMethod )(JNIEnv * , jobject , jmethodID , ... );
753
754
jint (* CallIntMethodV )(JNIEnv * , jobject , jmethodID , va_list );
754
- jint (* CallIntMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
755
+ jint (* CallIntMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
755
756
jlong (* CallLongMethod )(JNIEnv * , jobject , jmethodID , ... );
756
757
jlong (* CallLongMethodV )(JNIEnv * , jobject , jmethodID , va_list );
757
- jlong (* CallLongMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
758
+ jlong (* CallLongMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
758
759
jfloat (* CallFloatMethod )(JNIEnv * , jobject , jmethodID , ... );
759
760
jfloat (* CallFloatMethodV )(JNIEnv * , jobject , jmethodID , va_list );
760
- jfloat (* CallFloatMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
761
+ jfloat (* CallFloatMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
761
762
jdouble (* CallDoubleMethod )(JNIEnv * , jobject , jmethodID , ... );
762
763
jdouble (* CallDoubleMethodV )(JNIEnv * , jobject , jmethodID , va_list );
763
- jdouble (* CallDoubleMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
764
+ jdouble (* CallDoubleMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
764
765
void (* CallVoidMethod )(JNIEnv * , jobject , jmethodID , ... );
765
766
void (* CallVoidMethodV )(JNIEnv * , jobject , jmethodID , va_list );
766
- void (* CallVoidMethodA )(JNIEnv * , jobject , jmethodID , jvalue * );
767
+ void (* CallVoidMethodA )(JNIEnv * , jobject , jmethodID , const jvalue * );
767
768
768
769
jobject (* CallNonvirtualObjectMethod )(JNIEnv * , jobject , jclass ,
769
770
jmethodID , ... );
770
771
jobject (* CallNonvirtualObjectMethodV )(JNIEnv * , jobject , jclass ,
771
772
jmethodID , va_list );
772
773
jobject (* CallNonvirtualObjectMethodA )(JNIEnv * , jobject , jclass ,
773
- jmethodID , jvalue * );
774
+ jmethodID , const jvalue * );
774
775
jboolean (* CallNonvirtualBooleanMethod )(JNIEnv * , jobject , jclass ,
775
776
jmethodID , ... );
776
777
jboolean (* CallNonvirtualBooleanMethodV )(JNIEnv * , jobject , jclass ,
777
778
jmethodID , va_list );
778
779
jboolean (* CallNonvirtualBooleanMethodA )(JNIEnv * , jobject , jclass ,
779
- jmethodID , jvalue * );
780
+ jmethodID , const jvalue * );
780
781
jbyte (* CallNonvirtualByteMethod )(JNIEnv * , jobject , jclass ,
781
782
jmethodID , ... );
782
783
jbyte (* CallNonvirtualByteMethodV )(JNIEnv * , jobject , jclass ,
783
784
jmethodID , va_list );
784
785
jbyte (* CallNonvirtualByteMethodA )(JNIEnv * , jobject , jclass ,
785
- jmethodID , jvalue * );
786
+ jmethodID , const jvalue * );
786
787
jchar (* CallNonvirtualCharMethod )(JNIEnv * , jobject , jclass ,
787
788
jmethodID , ... );
788
789
jchar (* CallNonvirtualCharMethodV )(JNIEnv * , jobject , jclass ,
789
790
jmethodID , va_list );
790
791
jchar (* CallNonvirtualCharMethodA )(JNIEnv * , jobject , jclass ,
791
- jmethodID , jvalue * );
792
+ jmethodID , const jvalue * );
792
793
jshort (* CallNonvirtualShortMethod )(JNIEnv * , jobject , jclass ,
793
794
jmethodID , ... );
794
795
jshort (* CallNonvirtualShortMethodV )(JNIEnv * , jobject , jclass ,
795
796
jmethodID , va_list );
796
797
jshort (* CallNonvirtualShortMethodA )(JNIEnv * , jobject , jclass ,
797
- jmethodID , jvalue * );
798
+ jmethodID , const jvalue * );
798
799
jint (* CallNonvirtualIntMethod )(JNIEnv * , jobject , jclass ,
799
800
jmethodID , ... );
800
801
jint (* CallNonvirtualIntMethodV )(JNIEnv * , jobject , jclass ,
801
802
jmethodID , va_list );
802
803
jint (* CallNonvirtualIntMethodA )(JNIEnv * , jobject , jclass ,
803
- jmethodID , jvalue * );
804
+ jmethodID , const jvalue * );
804
805
jlong (* CallNonvirtualLongMethod )(JNIEnv * , jobject , jclass ,
805
806
jmethodID , ... );
806
807
jlong (* CallNonvirtualLongMethodV )(JNIEnv * , jobject , jclass ,
807
808
jmethodID , va_list );
808
809
jlong (* CallNonvirtualLongMethodA )(JNIEnv * , jobject , jclass ,
809
- jmethodID , jvalue * );
810
+ jmethodID , const jvalue * );
810
811
jfloat (* CallNonvirtualFloatMethod )(JNIEnv * , jobject , jclass ,
811
812
jmethodID , ... );
812
813
jfloat (* CallNonvirtualFloatMethodV )(JNIEnv * , jobject , jclass ,
813
814
jmethodID , va_list );
814
815
jfloat (* CallNonvirtualFloatMethodA )(JNIEnv * , jobject , jclass ,
815
- jmethodID , jvalue * );
816
+ jmethodID , const jvalue * );
816
817
jdouble (* CallNonvirtualDoubleMethod )(JNIEnv * , jobject , jclass ,
817
818
jmethodID , ... );
818
819
jdouble (* CallNonvirtualDoubleMethodV )(JNIEnv * , jobject , jclass ,
819
820
jmethodID , va_list );
820
821
jdouble (* CallNonvirtualDoubleMethodA )(JNIEnv * , jobject , jclass ,
821
- jmethodID , jvalue * );
822
+ jmethodID , const jvalue * );
822
823
void (* CallNonvirtualVoidMethod )(JNIEnv * , jobject , jclass ,
823
824
jmethodID , ... );
824
825
void (* CallNonvirtualVoidMethodV )(JNIEnv * , jobject , jclass ,
825
826
jmethodID , va_list );
826
827
void (* CallNonvirtualVoidMethodA )(JNIEnv * , jobject , jclass ,
827
- jmethodID , jvalue * );
828
+ jmethodID , const jvalue * );
828
829
829
830
jfieldID (* GetFieldID )(JNIEnv * , jclass , const char * , const char * );
830
831
@@ -852,36 +853,35 @@ struct JNINativeInterface {
852
853
853
854
jobject (* CallStaticObjectMethod )(JNIEnv * , jclass , jmethodID , ... );
854
855
jobject (* CallStaticObjectMethodV )(JNIEnv * , jclass , jmethodID , va_list );
855
- jobject (* CallStaticObjectMethodA )(JNIEnv * , jclass , jmethodID , jvalue * );
856
+ jobject (* CallStaticObjectMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
856
857
jboolean (* CallStaticBooleanMethod )(JNIEnv * , jclass , jmethodID , ... );
857
858
jboolean (* CallStaticBooleanMethodV )(JNIEnv * , jclass , jmethodID ,
858
859
va_list );
859
- jboolean (* CallStaticBooleanMethodA )(JNIEnv * , jclass , jmethodID ,
860
- jvalue * );
860
+ jboolean (* CallStaticBooleanMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
861
861
jbyte (* CallStaticByteMethod )(JNIEnv * , jclass , jmethodID , ... );
862
862
jbyte (* CallStaticByteMethodV )(JNIEnv * , jclass , jmethodID , va_list );
863
- jbyte (* CallStaticByteMethodA )(JNIEnv * , jclass , jmethodID , jvalue * );
863
+ jbyte (* CallStaticByteMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
864
864
jchar (* CallStaticCharMethod )(JNIEnv * , jclass , jmethodID , ... );
865
865
jchar (* CallStaticCharMethodV )(JNIEnv * , jclass , jmethodID , va_list );
866
- jchar (* CallStaticCharMethodA )(JNIEnv * , jclass , jmethodID , jvalue * );
866
+ jchar (* CallStaticCharMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
867
867
jshort (* CallStaticShortMethod )(JNIEnv * , jclass , jmethodID , ... );
868
868
jshort (* CallStaticShortMethodV )(JNIEnv * , jclass , jmethodID , va_list );
869
- jshort (* CallStaticShortMethodA )(JNIEnv * , jclass , jmethodID , jvalue * );
869
+ jshort (* CallStaticShortMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
870
870
jint (* CallStaticIntMethod )(JNIEnv * , jclass , jmethodID , ... );
871
871
jint (* CallStaticIntMethodV )(JNIEnv * , jclass , jmethodID , va_list );
872
- jint (* CallStaticIntMethodA )(JNIEnv * , jclass , jmethodID , jvalue * );
872
+ jint (* CallStaticIntMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
873
873
jlong (* CallStaticLongMethod )(JNIEnv * , jclass , jmethodID , ... );
874
874
jlong (* CallStaticLongMethodV )(JNIEnv * , jclass , jmethodID , va_list );
875
- jlong (* CallStaticLongMethodA )(JNIEnv * , jclass , jmethodID , jvalue * );
875
+ jlong (* CallStaticLongMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
876
876
jfloat (* CallStaticFloatMethod )(JNIEnv * , jclass , jmethodID , ... );
877
877
jfloat (* CallStaticFloatMethodV )(JNIEnv * , jclass , jmethodID , va_list );
878
- jfloat (* CallStaticFloatMethodA )(JNIEnv * , jclass , jmethodID , jvalue * );
878
+ jfloat (* CallStaticFloatMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
879
879
jdouble (* CallStaticDoubleMethod )(JNIEnv * , jclass , jmethodID , ... );
880
880
jdouble (* CallStaticDoubleMethodV )(JNIEnv * , jclass , jmethodID , va_list );
881
- jdouble (* CallStaticDoubleMethodA )(JNIEnv * , jclass , jmethodID , jvalue * );
881
+ jdouble (* CallStaticDoubleMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
882
882
void (* CallStaticVoidMethod )(JNIEnv * , jclass , jmethodID , ... );
883
883
void (* CallStaticVoidMethodV )(JNIEnv * , jclass , jmethodID , va_list );
884
- void (* CallStaticVoidMethodA )(JNIEnv * , jclass , jmethodID , jvalue * );
884
+ void (* CallStaticVoidMethodA )(JNIEnv * , jclass , jmethodID , const jvalue * );
885
885
886
886
jfieldID (* GetStaticFieldID )(JNIEnv * , jclass , const char * ,
887
887
const char * );
@@ -1090,6 +1090,7 @@ typedef struct ANativeActivity {
1090
1090
int32_t sdkVersion ;
1091
1091
void * instance ;
1092
1092
AAssetManager * assetManager ;
1093
+ const char * obbPath ;
1093
1094
} ANativeActivity;
1094
1095
1095
1096
void ANativeActivity_finish (ANativeActivity * activity );
@@ -1107,19 +1108,43 @@ enum {
1107
1108
};
1108
1109
void ANativeActivity_hideSoftInput (ANativeActivity * activity , uint32_t flags );
1109
1110
1111
+ ]]
1112
+
1113
+ if ffi .abi (" 64bit" ) then
1110
1114
1115
+ ffi .cdef [[
1111
1116
// from android-ndk/platforms/android-9/arch-arm/usr/include/pthread.h:
1112
1117
1113
1118
typedef struct {
1114
- int volatile value ;
1119
+ int32_t __private [ 10 ] ;
1115
1120
} pthread_mutex_t ;
1116
1121
1117
1122
typedef struct {
1118
- int volatile value ;
1123
+ int32_t __private [ 10 ] ;
1119
1124
} pthread_cond_t ;
1120
1125
1121
1126
typedef long pthread_t ;
1127
+ ]]
1128
+
1129
+ else
1122
1130
1131
+ ffi .cdef [[
1132
+ // from android-ndk/platforms/android-9/arch-arm/usr/include/pthread.h:
1133
+
1134
+ typedef struct {
1135
+ int32_t __private [1 ];
1136
+ } pthread_mutex_t ;
1137
+
1138
+ typedef struct {
1139
+ int32_t __private [1 ];
1140
+ } pthread_cond_t ;
1141
+
1142
+ typedef long pthread_t ;
1143
+ ]]
1144
+
1145
+ end
1146
+
1147
+ ffi .cdef [[
1123
1148
// from android-ndk/sources/android/native_app_glue/android_native_app_glue.h:
1124
1149
1125
1150
struct android_poll_source {
0 commit comments