OSDN Git Service

* include/sparc-signal.h: Renamed to ...
[pf3gnuchains/gcc-fork.git] / libjava / include / jvmti_md.h
1 /* jvmti_md.h
2    Copyright (C) 2006, 2007 Free Software Foundation, Inc.
3
4 This file is part of GNU Classpath.
5
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10  
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING.  If not, write to the
18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301 USA.
20
21 As a special exception, if you link this library with other files to
22 produce an executable, this library does not by itself cause the
23 resulting executable to be covered by the GNU General Public License.
24 This exception does not however invalidate any other reasons why the
25 executable file might be covered by the GNU General Public License. */
26
27 #ifndef __GCJ_JVMTI_MD_H__
28 #define __GCJ_JVMTI_MD_H__
29
30 #ifdef __GCJ_JNI_IMPL__
31
32 /* If __GCJ_JNI_IMPL__ is defined, then we assume that we're building
33    libgcj itself, and we include functions which should not be exposed
34    to JVMTI users. */
35
36 /* The number of event slots needed to keep track of event reporting
37    constraints for an environment. This will only work if the order of
38    events listed in jvmtiEvent and jvmtiEventCallbacks is kept the same
39    (which should not be a problem). */
40 #define EVENT_SLOTS \
41   (int)(JVMTI_EVENT_VM_OBJECT_ALLOC - JVMTI_EVENT_VM_INIT + 1)
42
43 /* Contents of the jvmtiEnv; but only inside the implementation. */
44 #define _CLASSPATH_JVMTIENV_CONTENTS                                    \
45   /* Event handlers registered via SetEventCallbacks */                 \
46   jvmtiEventCallbacks callbacks;                                        \
47                                                                         \
48   /* Array of event thread for which to report event. */                \
49   /* NULL means all threads. One for each callback.   */                \
50   jthread thread[EVENT_SLOTS];                                          \
51                                                                         \
52   /* Array of notification modes for callbacks. */                      \
53   /* One for each callback.                     */                      \
54   bool enabled[EVENT_SLOTS];
55
56 /* Redefine the standard JVMTI types to something a little more
57    precise than "jobject". */
58 #define _CLASSPATH_VM_JVMTI_TYPES_DEFINED
59 typedef java::lang::Thread *jthread;
60 typedef java::lang::ThreadGroup *jthreadGroup;
61 typedef jlong jlocation;
62 typedef struct _Jv_rawMonitorID *jrawMonitorID;
63
64 #endif /* __GCJ_JNI_IMPL__ */
65
66 #endif /* __GCJ_JVMTI_MD_H__ */