mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			95 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C++
		
	
	
	
| /* 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__ */
 |