X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Fvm.h;h=7f1a46771fd5111eed44c8e28df456fda78ce760;hb=9f859ad50d3d5d98c185d40b86b2179bc4dc9aeb;hp=175d4d1dd979355854f5b769451c4b042927e03f;hpb=07d960169a9d82fa6e621f75b3f6351621eb761c;p=cacao.git diff --git a/src/vm/vm.h b/src/vm/vm.h index 175d4d1dd..7f1a46771 100644 --- a/src/vm/vm.h +++ b/src/vm/vm.h @@ -22,8 +22,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - $Id: finalizer.c 4357 2006-01-22 23:33:38Z twisti $ - */ @@ -52,14 +50,6 @@ extern _Jv_JNIEnv *_Jv_env; extern bool vm_initializing; extern bool vm_exiting; -extern char *cacao_prefix; -extern char *cacao_libjvm; -extern char *classpath_libdir; - -extern char *_Jv_bootclasspath; -extern char *_Jv_classpath; -extern char *_Jv_java_library_path; - extern char *mainstring; extern classinfo *mainclass; @@ -68,29 +58,10 @@ extern u1 *intrp_main_stack; #endif -/* vm_arg ********************************************************************** - - Datastructure for arguments to call Java methods via vm_call_method - functions. - -*******************************************************************************/ - -typedef struct vm_arg vm_arg; - -struct vm_arg { - u8 type; - - union { - u8 l; - float f; - double d; - } data; -}; - - /* function prototypes ********************************************************/ void usage(void); +void vm_printconfig(void); bool vm_createjvm(JavaVM **p_vm, void **p_env, void *vm_args); bool vm_create(JavaVMInitArgs *vm_args); @@ -104,56 +75,37 @@ void vm_exit_handler(void); void vm_abort(const char *text, ...); /* Java method calling functions */ -#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__M68K__) && !defined(__ARM__) && !defined(__ALPHA__) -bool vm_vmargs_from_objectarray(methodinfo *m, java_objectheader *o, - vm_arg *vmargs, java_objectarray *params); -#else -uint64_t *vm_array_from_objectarray(methodinfo *m, java_objectheader *o, - java_objectarray *params); -#endif -java_objectheader *vm_call_method(methodinfo *m, java_objectheader *o, ...); -java_objectheader *vm_call_method_valist(methodinfo *m, java_objectheader *o, +uint64_t *vm_array_from_objectarray(methodinfo *m, java_handle_t *o, + java_handle_objectarray_t *params); + +java_handle_t *vm_call_method(methodinfo *m, java_handle_t *o, ...); +java_handle_t *vm_call_method_valist(methodinfo *m, java_handle_t *o, va_list ap); -java_objectheader *vm_call_method_jvalue(methodinfo *m, java_objectheader *o, +java_handle_t *vm_call_method_jvalue(methodinfo *m, java_handle_t *o, const jvalue *args); -#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__M68K__) && !defined(__ARM__) && !defined(__ALPHA__) -java_objectheader *vm_call_method_vmarg(methodinfo *m, s4 vmargscount, - vm_arg *vmargs); -s4 vm_call_method_int_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs); -s8 vm_call_method_long_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs); -float vm_call_method_float_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs); -double vm_call_method_double_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs); -#else -java_objectheader *vm_call_array(methodinfo *m, uint64_t *array); +java_handle_t *vm_call_array(methodinfo *m, uint64_t *array); int32_t vm_call_int_array(methodinfo *m, uint64_t *array); int64_t vm_call_long_array(methodinfo *m, uint64_t *array); float vm_call_float_array(methodinfo *m, uint64_t *array); double vm_call_double_array(methodinfo *m, uint64_t *array); -#endif -s4 vm_call_method_int(methodinfo *m, java_objectheader *o, ...); -s4 vm_call_method_int_valist(methodinfo *m, java_objectheader *o, va_list ap); -s4 vm_call_method_int_jvalue(methodinfo *m, java_objectheader *o, - const jvalue *args); - -s8 vm_call_method_long(methodinfo *m, java_objectheader *o, ...); -s8 vm_call_method_long_valist(methodinfo *m, java_objectheader *o, va_list ap); -s8 vm_call_method_long_jvalue(methodinfo *m, java_objectheader *o, - const jvalue *args); - -float vm_call_method_float(methodinfo *m, java_objectheader *o, ...); -float vm_call_method_float_valist(methodinfo *m, java_objectheader *o, - va_list ap); -float vm_call_method_float_jvalue(methodinfo *m, java_objectheader *o, - const jvalue *args); - -double vm_call_method_double(methodinfo *m, java_objectheader *o, ...); -double vm_call_method_double_valist(methodinfo *m, java_objectheader *o, - va_list ap); -double vm_call_method_double_jvalue(methodinfo *m, java_objectheader *o, - const jvalue *args); +int32_t vm_call_method_int(methodinfo *m, java_handle_t *o, ...); +int32_t vm_call_method_int_valist(methodinfo *m, java_handle_t *o, va_list ap); +int32_t vm_call_method_int_jvalue(methodinfo *m, java_handle_t *o, const jvalue *args); + +int64_t vm_call_method_long(methodinfo *m, java_handle_t *o, ...); +int64_t vm_call_method_long_valist(methodinfo *m, java_handle_t *o, va_list ap); +int64_t vm_call_method_long_jvalue(methodinfo *m, java_handle_t *o, const jvalue *args); + +float vm_call_method_float(methodinfo *m, java_handle_t *o, ...); +float vm_call_method_float_valist(methodinfo *m, java_handle_t *o, va_list ap); +float vm_call_method_float_jvalue(methodinfo *m, java_handle_t *o, const jvalue *args); + +double vm_call_method_double(methodinfo *m, java_handle_t *o, ...); +double vm_call_method_double_valist(methodinfo *m, java_handle_t *o, va_list ap); +double vm_call_method_double_jvalue(methodinfo *m, java_handle_t *o, const jvalue *args); #endif /* _VM_H */