jni library for factor
parent
a9af0d1324
commit
4755cd21a5
|
@ -0,0 +1,66 @@
|
||||||
|
! Copyright (C) 2006 Chris Double.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
IN: jni
|
||||||
|
USING: kernel alien ;
|
||||||
|
|
||||||
|
LIBRARY: jvm
|
||||||
|
|
||||||
|
TYPEDEF: int jint
|
||||||
|
TYPEDEF: uchar jboolean
|
||||||
|
TYPEDEF: void* JNIEnv
|
||||||
|
|
||||||
|
BEGIN-STRUCT: jdk-init-args
|
||||||
|
FIELD: jint version
|
||||||
|
FIELD: void* properties
|
||||||
|
FIELD: jint check-source
|
||||||
|
FIELD: jint native-stack-size
|
||||||
|
FIELD: jint java-stack-size
|
||||||
|
FIELD: jint min-heap-size
|
||||||
|
FIELD: jint max-heap-size
|
||||||
|
FIELD: jint verify-mode
|
||||||
|
FIELD: char* classpath
|
||||||
|
FIELD: void* vprintf
|
||||||
|
FIELD: void* exit
|
||||||
|
FIELD: void* abort
|
||||||
|
FIELD: jint enable-class-gc
|
||||||
|
FIELD: jint enable-verbose-gc
|
||||||
|
FIELD: jint disable-async-gc
|
||||||
|
FIELD: jint verbose
|
||||||
|
FIELD: jboolean debugging
|
||||||
|
FIELD: jint debug-port
|
||||||
|
END-STRUCT
|
||||||
|
|
||||||
|
BEGIN-STRUCT: JNIInvokeInterface
|
||||||
|
FIELD: void* reserved0
|
||||||
|
FIELD: void* reserved1
|
||||||
|
FIELD: void* reserved2
|
||||||
|
FIELD: void* DestroyJavaVM
|
||||||
|
FIELD: void* AttachCurrentThread
|
||||||
|
FIELD: void* DetachCurrentThread
|
||||||
|
FIELD: void* GetEnv
|
||||||
|
FIELD: void* AttachCurrentThreadAsDaemon
|
||||||
|
END-STRUCT
|
||||||
|
|
||||||
|
BEGIN-STRUCT: JavaVM
|
||||||
|
FIELD: JNIInvokeInterface* functions
|
||||||
|
END-STRUCT
|
||||||
|
|
||||||
|
FUNCTION: jint JNI_GetDefaultJavaVMInitArgs ( jdk-init-args* args ) ;
|
||||||
|
FUNCTION: jint JNI_CreateJavaVM ( void** pvm, void** penv, void* args ) ;
|
||||||
|
|
||||||
|
: <jdk-init-args> ( -- jdk-init-args )
|
||||||
|
"jdk-init-args" <c-object> HEX: 00010004 over set-jdk-init-args-version ;
|
||||||
|
|
||||||
|
: jni1 ( -- init-args int )
|
||||||
|
<jdk-init-args> dup JNI_GetDefaultJavaVMInitArgs ;
|
||||||
|
|
||||||
|
: jni2 ( -- vm env int )
|
||||||
|
f <void*> f <void*> [
|
||||||
|
jni1 drop JNI_CreateJavaVM
|
||||||
|
] 2keep rot ;
|
||||||
|
|
||||||
|
: (destroy-java-vm)
|
||||||
|
"int" { "void*" } "cdecl" alien-indirect ;
|
||||||
|
|
||||||
|
: destroy-java-vm ( javavm -- int )
|
||||||
|
0 swap void*-nth dup JavaVM-functions JNIInvokeInterface-DestroyJavaVM (destroy-java-vm) ;
|
|
@ -0,0 +1,5 @@
|
||||||
|
! Copyright (C) 2006 Chris Double.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
PROVIDE: contrib/jni {
|
||||||
|
"jni.factor"
|
||||||
|
} { } ;
|
Loading…
Reference in New Issue