summaryrefslogtreecommitdiff
path: root/libjava/include/jvmti-int.h
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /libjava/include/jvmti-int.h
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository.
Diffstat (limited to 'libjava/include/jvmti-int.h')
-rw-r--r--libjava/include/jvmti-int.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/libjava/include/jvmti-int.h b/libjava/include/jvmti-int.h
new file mode 100644
index 000000000..6b09c8376
--- /dev/null
+++ b/libjava/include/jvmti-int.h
@@ -0,0 +1,94 @@
+/* jvmti-int.h -- Internal JVMTI definitions
+ Copyright (C) 2006, 2007 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.
+
+As a special exception, if you link this library with other files to
+produce an executable, this library does not by itself cause the
+resulting executable to be covered by the GNU General Public License.
+This exception does not however invalidate any other reasons why the
+executable file might be covered by the GNU General Public License. */
+
+#ifndef __GCJ_JVTMI_INT_H__
+#define __GCJ_JVMTI_INT_H__
+
+/* A macro to map jvmtiEvent to an index in thread[] and enabled[]
+ in the jvmtiEnv. This will only work if the order of events listed
+ in jvmtiEvent and jvmtiEventCallbacks is kept the same (which should
+ not be a problem). */
+#define EVENT_INDEX(jvmtievent) (int)(jvmtievent - JVMTI_EVENT_VM_INIT)
+
+/* A few globals to help limit the impact of JVMTI on normal operations.
+ False means no JVMTI environment requested that event type. */
+namespace JVMTI
+{
+ // Is JVMTI enabled? (i.e., any jvmtiEnv created?)
+ extern bool enabled;
+
+ // Event notifications
+ extern bool VMInit;
+ extern bool VMDeath;
+ extern bool ThreadStart;
+ extern bool ThreadEnd;
+ extern bool ClassFileLoadHook;
+ extern bool ClassLoad;
+ extern bool ClassPrepare;
+ extern bool VMStart;
+ extern bool Exception;
+ extern bool ExceptionCatch;
+ extern bool SingleStep;
+ extern bool FramePop;
+ extern bool Breakpoint;
+ extern bool FieldAccess;
+ extern bool FieldModification;
+ extern bool MethodEntry;
+ extern bool MethodExit;
+ extern bool NativeMethodBind;
+ extern bool CompiledMethodLoad;
+ extern bool CompiledMethodUnload;
+ extern bool DynamicCodeGenerated;
+ extern bool DataDumpRequest;
+ extern bool reserved72;
+ extern bool MonitorWait;
+ extern bool MonitorWaited;
+ extern bool MonitorContendedEnter;
+ extern bool MonitorContendedEntered;
+ extern bool reserved77;
+ extern bool reserved78;
+ extern bool reserved79;
+ extern bool reserved80;
+ extern bool GarbageCollectionStart;
+ extern bool GarbageCollectionFinish;
+ extern bool ObjectFree;
+ extern bool VMObjectAlloc;
+};
+
+/* A macro to test whether an event should be posted to JVMTI.*/
+#define JVMTI_REQUESTED_EVENT(Event) __builtin_expect (JVMTI::Event, false)
+
+/* Post the event to requesting JVMTI environments.
+
+ For speed, this function should only be called after
+ JVMTI_REQUESTED_EVENT is checked. */
+extern void _Jv_JVMTI_PostEvent (jvmtiEvent type, jthread event_thread, ...);
+// Returns the jvmtiEnv used by the JDWP backend
+extern jvmtiEnv *_Jv_GetJDWP_JVMTIEnv (void);
+
+// Reports JVMTI excpetions
+extern void _Jv_ReportJVMTIExceptionThrow (jthrowable);
+#endif /* __GCJ_JVMTI_INT_H__ */