#include "config.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#include "vm/types.h"
#include "vm/global.h"
/* function prototypes ********************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
bool localref_table_init(void);
bool localref_table_destroy(void);
void localref_table_add(localref_table *lrt);
#include <stdint.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#include "native/jni.hpp"
#include "vm/class.h"
/* function prototypes ********************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
bool native_init(void);
void native_method_register(utf *classname, const JNINativeMethod *methods, int32_t count);
/* function prototypes ********************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* create hashtable */
void hashtable_create(hashtable *hash, u4 size);
/* frees a hashtable */
void hashtable_free(hashtable *hash);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _HASHTABLE_H */
/* function prototypes ********************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
bool annotation_load_class_attribute_runtimevisibleannotations(
classbuffer *cb);
bool annotation_load_method_attribute_runtimeinvisibleparameterannotations(
classbuffer *cb, methodinfo *m);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _ANNOTATION_H */
#ifndef _CLASS_H
#define _CLASS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* forward typedefs ***********************************************************/
typedef struct classinfo classinfo;
/* inline functions ***********************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/**
* Returns the classname of the class, where slashes ('/') are
* replaced by dots ('.').
/* function prototypes ********************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
descriptor_pool * descriptor_pool_new(classinfo *referer);
bool descriptor_pool_add_class(descriptor_pool *pool,utf *name);
void descriptor_pool_debug_dump(descriptor_pool *pool, FILE *file);
#endif /* !defined(NDEBUG) */
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _DESCRIPTOR_H */
/* function prototypes ********************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
bool field_load(classbuffer *cb, fieldinfo *f, descriptor_pool *descpool);
classinfo *field_get_type(fieldinfo *f);
void field_free(fieldinfo *f);
void field_fieldref_println(constant_FMIref *fr);
#endif
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _FIELD_HPP */
/* function prototypes ********************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
void linker_preinit(void);
void linker_init(void);
classinfo *link_class(classinfo *c);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _LINKER_H */
#ifndef _METHOD_H
#define _METHOD_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* forward typedefs ***********************************************************/
typedef struct methodinfo methodinfo;
extern methodinfo *method_java_lang_reflect_Method_invoke;
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* inline functions ***********************************************************/
inline static bool method_is_builtin(methodinfo* m)
/* function prototypes ********************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* initialize the utf8 subsystem */
void utf8_init(void);
/* show utf-table */
void utf_show(void);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _UTF_H */