Philipp Tomsich
Christian Thalinger
- $Id: headers.c 1244 2004-06-30 20:14:20Z twisti $
+ $Id: headers.c 1368 2004-08-01 21:50:08Z stefan $
*/
#include "toolbox/memory.h"
#include "toolbox/logging.h"
#include "nat/java_lang_String.h"
+#include "nat/java_lang_Throwable.h"
/******* replace some external functions *********/
functionptr native_findfunction(utf *cname, utf *mname, utf *desc, bool isstatic)
{ return NULL; }
-java_objectheader *javastring_new(utf *text)
-{ return NULL; }
+java_objectheader *javastring_new(utf *text) { return NULL; }
+java_objectheader *javastring_new_char(char *text) { return NULL; }
char *javastring_tochar(java_objectheader *so) { return NULL; }
utf *javastring_toutf(java_lang_String *string, bool isclassname)
{ return NULL; }
-/* some exception stuff */
-
-classinfo *class_java_lang_Exception;
-
-
-char *string_java_lang_IllegalMonitorStateException =
- "java/lang/IllegalMonitorStateException";
-
-char *string_java_lang_NegativeArraySizeException =
- "java/lang/NegativeArraySizeException";
-
-
-char *string_java_lang_AbstractMethodError =
- "java/lang/AbstractMethodError";
-
-char *string_java_lang_ClassCircularityError =
- "java/lang/ClassCircularityError";
-
-char *string_java_lang_ClassFormatError =
- "java/lang/ClassFormatError";
-
-char *string_java_lang_ExceptionInInitializerError =
- "java/lang/ExceptionInInitializerError";
-
-char *string_java_lang_IncompatibleClassChangeError =
- "java/lang/IncompatibleClassChangeError";
-
-char *string_java_lang_InternalError =
- "java/lang/InternalError";
-
-char *string_java_lang_LinkageError =
- "java/lang/LinkageError";
-
-char *string_java_lang_NoClassDefFoundError =
- "java/lang/NoClassDefFoundError";
-
-char *string_java_lang_NoSuchFieldError =
- "java/lang/NoSuchFieldError";
-
-char *string_java_lang_NoSuchMethodError =
- "java/lang/NoSuchMethodError";
-
-char *string_java_lang_OutOfMemoryError =
- "java/lang/OutOfMemoryError";
-
-
-void throw_exception() {}
-void throw_exception_exit() {}
-
-void throw_cacao_exception_exit(char *exception, char *message)
-{
- fprintf(stderr,
- "Exception in thread \"main\" %s: %s\n", exception, message);
- fflush(stderr);
-
- /* good bye! */
- exit(1);
-}
-
-
-void new_exception(char *classname)
-{
- printf("Exception in thread \"main\" %s\n", classname);
- exit(1);
-}
-
-void new_exception_message(char *classname, char *message)
-{
- printf("Exception in thread \"main\" %s: %s\n", classname, message);
- exit(1);
-}
-
-void new_exception_throwable(char *classname, java_objectheader *t) {}
-void new_exception_utfmessage(char *classname, utf *message)
-{
- printf("Exception in thread \"main\" %s: ", classname);
- utf_display(message);
- printf("\n");
- exit(1);
-}
+java_objectheader *native_new_and_init(classinfo *c) { return NULL; }
+java_objectheader *native_new_and_init_string(classinfo *c, java_lang_String *s) { return NULL; }
+java_objectheader *native_new_and_init_int(classinfo *c, s4 i) { return NULL; }
+java_objectheader *native_new_and_init_throwable(classinfo *c, java_lang_Throwable *t) { return NULL; }
java_objectheader *literalstring_new(utf *u) { return NULL; }
s4 asm_builtin_d2i(double a) { return 0; }
s8 asm_builtin_d2l(double a) { return 0; }
+void use_class_as_object() {}
void asm_builtin_monitorenter(java_objectheader *o) {}
-void asm_builtin_monitorexit(java_objectheader *o) {}
+void *asm_builtin_monitorexit(java_objectheader *o) {}
-s4 asm_builtin_checkarraycast(java_objectheader *obj, vftbl *target) {return 0;}
+s4 asm_builtin_checkarraycast(java_objectheader *obj, vftbl_t *target) {return 0;}
#if defined(__MIPS__)
-void atomic_swap() {}
-void compare_and_swap() {}
+long compare_and_swap(long *p, long oldval, long newval)
+{
+ if (*p == oldval) {
+ *p = newval;
+ return oldval;
+ } else
+ return *p;
+}
#endif
#if defined(__I386__)
s4 asm_builtin_arrayinstanceof(java_objectheader *obj, classinfo *class) { return 0; }
-void asm_builtin_newarray(s4 size, vftbl *arrayvftbl) {}
+void asm_builtin_newarray(s4 size, vftbl_t *arrayvftbl) {}
#endif
void asm_builtin_aastore(java_objectarray *a, s4 index, java_objectheader *o) {}
threadcritnode asm_criticalsections;
#endif
-java_objectheader *native_new_and_init(void *p) { return NULL; }
-
/************************ global variables **********************/