diff options
Diffstat (limited to 'libjava/classpath/native/vmi')
-rw-r--r-- | libjava/classpath/native/vmi/Makefile.am | 6 | ||||
-rw-r--r-- | libjava/classpath/native/vmi/TODO | 28 | ||||
-rwxr-xr-x | libjava/classpath/native/vmi/vmi.c | 143 | ||||
-rwxr-xr-x | libjava/classpath/native/vmi/vmi.h | 92 |
4 files changed, 0 insertions, 269 deletions
diff --git a/libjava/classpath/native/vmi/Makefile.am b/libjava/classpath/native/vmi/Makefile.am deleted file mode 100644 index 11b462a3d19..00000000000 --- a/libjava/classpath/native/vmi/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -## Input file for automake to generate the Makefile.in used by configure - -EXTRA_DIST = \ -TODO \ -vmi.c \ -vmi.h diff --git a/libjava/classpath/native/vmi/TODO b/libjava/classpath/native/vmi/TODO deleted file mode 100644 index 8107ad4440b..00000000000 --- a/libjava/classpath/native/vmi/TODO +++ /dev/null @@ -1,28 +0,0 @@ -TODO for JCL VMI library: - -API: -- More functions will almost certainly be required. I am - adding them in only as needs arise to keep the job as - easy as possible in the short term. The full JVMDI - will presumably need to be mimicked. - -Japhar 1.1: -- Using the JVMDI for many functions, since Japhar - implements JVMDI. Several JVMDI functions are not - implemented yet, though, so it becomes a question of - waiting til they are or implementing them ourselves. -- Specifically, the JVMDI functions not yet implemented in - Japhar that the VMI calls are: - - JVMDI_GetClassModifiers() - - JVMDI_GetClassName() - - JVMDI_GetClassMethods() - - JVMDI_GetClassFields() - - JVMDI_GetImplementedInterfaces() - - JVMDI_IsInterface() - - JVMDI_IsArray() - - JVMDI_ClassLoader() - - JVMDI_GetMethodModifiers() - - JVMDI_GetThrownExceptions() - - JVMDI_GetFieldName() - - JVMDI_GetFieldDeclaringClass() - - JVMDI_GetFieldModifiers() diff --git a/libjava/classpath/native/vmi/vmi.c b/libjava/classpath/native/vmi/vmi.c deleted file mode 100755 index 6022bedfde3..00000000000 --- a/libjava/classpath/native/vmi/vmi.c +++ /dev/null @@ -1,143 +0,0 @@ -/* Japhar implementation of VMI. - Copyright (C) 1998 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -#include <jcl.h> -#include <vmi.h> -#include <jvmdi.h> -#include <interp.h> -#include <native-threads.h> - -JNIEXPORT vmiError JNICALL -VMI_GetFrameClass(JNIEnv *env, - jframeID frame, - jclass *clazz) { - - return VMI_ERROR_NONE; -} - -JNIEXPORT vmiError JNICALL -VMI_GetFrameObject(JNIEnv *env, - jframeID frame, - jobject *obj) { - StackFrame *sframe = (StackFrame*)frame; - if(env == NULL || obj == NULL) - return VMI_ERROR_NULL_POINTER; - if(frame == NULL) - return VMI_ERROR_INVALID_FRAMEID; - - *obj = THISPTR(sframe); - return VMI_ERROR_NONE; -} - -JNIEXPORT vmiError JNICALL -VMI_GetThisFrame(JNIEnv *env, jframeID *frame) { - JThreadInfo *thread_info; - - if(env == NULL || frame == NULL) - return VMI_ERROR_NULL_POINTER; - - thread_info = THREAD_getJavaInfo(); - *frame = (jframeID)TOPFRAME(thread_info); - return VMI_ERROR_NONE; -} - -JNIEXPORT vmiError JNICALL -VMI_GetThisThreadObject(JNIEnv* env, jthread *thread) { - JThreadInfo *thread_info; - if(env == NULL || thread == NULL) - return VMI_ERROR_NULL_POINTER; - thread_info = THREAD_getJavaInfo(); - *thread = (jthread)thread_info->java_thread; - return VMI_ERROR_NONE; -} - -JNIEXPORT void JNICALL -VMI_ThrowAppropriateException(JNIEnv *env, vmiError err) { - switch(err) { - case VMI_ERROR_NONE: - JCL_ThrowException(env, "java/lang/InternalError", "ERROR_NONE passed to VMI exception thrower."); - break; - case VMI_ERROR_NULL_POINTER: - JCL_ThrowException(env, "java/lang/NullPointerException", "null pointer in VMI detected."); - break; - case VMI_ERROR_OUT_OF_MEMORY: - JCL_ThrowException(env, "java/lang/OutOfMemoryError", "Out of memory! (in VMI)."); - break; - case VMI_ERROR_INVALID_METHODID: - JCL_ThrowException(env, "java/lang/InternalError", "VMI error: INVALID_METHODID"); - break; - case VMI_ERROR_INVALID_CLASS: - JCL_ThrowException(env, "java/lang/InternalError", "VMI error: INVALID_CLASS"); - break; - case VMI_ERROR_INVALID_BCI: - JCL_ThrowException(env, "java/lang/InternalError", "VMI error: INVALID_BCI"); - break; - case VMI_ERROR_NO_SUCH_BREAKPOINT: - JCL_ThrowException(env, "java/lang/InternalError", "VMI error: NO_SUCH_BREAKPOINT"); - break; - case VMI_ERROR_VM_DEAD: - JCL_ThrowException(env, "java/lang/InternalError", "VMI error: VM Dead! Kinda makes ya wonder how this exception got thrown, huh?"); - break; - case VMI_ERROR_INVALID_FRAMEID: - JCL_ThrowException(env, "java/lang/IllegalThreadStateException", "NULL Frame ID detected in VMI."); - break; - case VMI_ERROR_INVALID_SLOT: - JCL_ThrowException(env, "java/lang/InternalError", "VMI error: INVALID_SLOT"); - break; - case VMI_ERROR_TYPE_MISMATCH: - JCL_ThrowException(env, "java/lang/InternalError", "VMI error: INVALID_SLOT"); - break; - case VMI_ERROR_NATIVE_FRAME: - JCL_ThrowException(env, "java/lang/InternalError", "VMI error: NATIVE_FRAME"); - break; - case VMI_ERROR_NO_MORE_FRAMES: - JCL_ThrowException(env, "java/lang/InternalError", "VMI error: NO_MORE_FRAMES"); - break; - case VMI_ERROR_INVALID_THREAD: - JCL_ThrowException(env, "java/lang/IllegalThreadStateException", "Invalid thread in VMI."); - break; - case VMI_ERROR_THREAD_NOT_SUSPENDED: - JCL_ThrowException(env, "java/lang/IllegalThreadStateException", "Attempt to introspect unsuspended thread in VMI."); - break; - default: - JCL_ThrowException(env, "java/lang/UnknownError", "VMI returned erroneous error value ..."); - break; - } -} - - diff --git a/libjava/classpath/native/vmi/vmi.h b/libjava/classpath/native/vmi/vmi.h deleted file mode 100755 index 1a8e26a8174..00000000000 --- a/libjava/classpath/native/vmi/vmi.h +++ /dev/null @@ -1,92 +0,0 @@ -/* Japhar implementation of VMI. - Copyright (C) 1998 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -#ifndef __VMI_H__ -#define __VMI_H__ - -#include <jni.h> - -typedef void * jframeID; -typedef void * jthread; - -typedef enum { - VMI_ERROR_NONE, - VMI_ERROR_NULL_POINTER, - VMI_ERROR_OUT_OF_MEMORY, - VMI_ERROR_INVALID_METHODID, - VMI_ERROR_INVALID_CLASS, - VMI_ERROR_INVALID_BCI, - VMI_ERROR_NO_SUCH_BREAKPOINT, - VMI_ERROR_VM_DEAD, - VMI_ERROR_INVALID_FRAMEID, - VMI_ERROR_INVALID_SLOT, - VMI_ERROR_TYPE_MISMATCH, - VMI_ERROR_NATIVE_FRAME, - VMI_ERROR_NO_MORE_FRAMES, - VMI_ERROR_INVALID_THREAD, - VMI_ERROR_THREAD_NOT_SUSPENDED -} vmiError; - - -#define VMI_MOD_PUBLIC 0x0001 -#define VMI_MOD_PRIVATE 0x0002 -#define VMI_MOD_PROTECTED 0x0004 -#define VMI_MOD_STATIC 0x0008 -#define VMI_MOD_FINAL 0x0010 -#define VMI_MOD_SYNCHRONIZED 0x0020 -#define VMI_MOD_VOLATILE 0x0040 -#define VMI_MOD_TRANSIENT 0x0080 -#define VMI_MOD_NATIVE 0x0100 -#define VMI_MOD_INTERFACE 0x0200 -#define VMI_MOD_ABSTRACT 0x0400 - -JNIEXPORT vmiError JNICALL -VMI_GetFrameClass(JNIEnv *env, jframeID frame, jobject *obj); - -JNIEXPORT vmiError JNICALL -VMI_GetFrameObject(JNIEnv *env, jframeID frame, jobject *obj); - -JNIEXPORT vmiError JNICALL -VMI_GetThisFrame(JNIEnv *env, jframeID *frame); - -JNIEXPORT vmiError JNICALL -VMI_GetThisThreadObject(JNIEnv *env, jthread *thread); - -JNIEXPORT void JNICALL -VMI_ThrowAppropriateException(JNIEnv *env, vmiError err); - -#endif |