Revision 17300
trunk/libraries/libjni-addo/include/jni_w32/jni.h | ||
---|---|---|
1 | 1 |
/* |
2 |
* @(#)jni.h 1.55 03/01/23
|
|
2 |
* @(#)jni.h 1.56 03/12/19
|
|
3 | 3 |
* |
4 |
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
|
|
4 |
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
|
|
5 | 5 |
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
6 | 6 |
*/ |
7 | 7 |
|
trunk/libraries/libjni-addo/include/jni_w32/jni_md.h | ||
---|---|---|
1 | 1 |
/* |
2 |
* @(#)jni_md.h 1.13 03/01/23
|
|
2 |
* @(#)jni_md.h 1.14 03/12/19
|
|
3 | 3 |
* |
4 |
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
|
|
4 |
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
|
|
5 | 5 |
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
6 | 6 |
*/ |
7 | 7 |
|
trunk/libraries/libjni-addo/include/jni_w32/jdwpTransport.h | ||
---|---|---|
1 |
/* |
|
2 |
* @(#)jdwpTransport.h 1.7 03/12/19 |
|
3 |
* |
|
4 |
* Copyright 2004 Sun Microsystems, Inc. All rights reserved. |
|
5 |
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
|
6 |
*/ |
|
7 |
|
|
8 |
/* |
|
9 |
* Java Debug Wire Protocol Transport Service Provider Interface. |
|
10 |
*/ |
|
11 |
|
|
12 |
#ifndef JDWPTRANSPORT_H |
|
13 |
#define JDWPTRANSPORT_H |
|
14 |
|
|
15 |
#include "jni.h" |
|
16 |
|
|
17 |
enum { |
|
18 |
JDWPTRANSPORT_VERSION_1_0 = 0x00010000 |
|
19 |
}; |
|
20 |
|
|
21 |
#ifdef __cplusplus |
|
22 |
extern "C" { |
|
23 |
#endif |
|
24 |
|
|
25 |
struct jdwpTransportNativeInterface_; |
|
26 |
|
|
27 |
struct _jdwpTransportEnv; |
|
28 |
|
|
29 |
#ifdef __cplusplus |
|
30 |
typedef _jdwpTransportEnv jdwpTransportEnv; |
|
31 |
#else |
|
32 |
typedef const struct jdwpTransportNativeInterface_ *jdwpTransportEnv; |
|
33 |
#endif /* __cplusplus */ |
|
34 |
|
|
35 |
/* |
|
36 |
* Errors. Universal errors with JVMTI/JVMDI equivalents keep the |
|
37 |
* values the same. |
|
38 |
*/ |
|
39 |
typedef enum { |
|
40 |
JDWPTRANSPORT_ERROR_NONE = 0, |
|
41 |
JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT = 103, |
|
42 |
JDWPTRANSPORT_ERROR_OUT_OF_MEMORY = 110, |
|
43 |
JDWPTRANSPORT_ERROR_INTERNAL = 113, |
|
44 |
JDWPTRANSPORT_ERROR_ILLEGAL_STATE = 201, |
|
45 |
JDWPTRANSPORT_ERROR_IO_ERROR = 202, |
|
46 |
JDWPTRANSPORT_ERROR_TIMEOUT = 203, |
|
47 |
JDWPTRANSPORT_ERROR_MSG_NOT_AVAILABLE = 204 |
|
48 |
} jdwpTransportError; |
|
49 |
|
|
50 |
|
|
51 |
/* |
|
52 |
* Structure to define capabilities |
|
53 |
*/ |
|
54 |
typedef struct { |
|
55 |
unsigned int can_timeout_attach :1; |
|
56 |
unsigned int can_timeout_accept :1; |
|
57 |
unsigned int can_timeout_handshake :1; |
|
58 |
unsigned int reserved3 :1; |
|
59 |
unsigned int reserved4 :1; |
|
60 |
unsigned int reserved5 :1; |
|
61 |
unsigned int reserved6 :1; |
|
62 |
unsigned int reserved7 :1; |
|
63 |
unsigned int reserved8 :1; |
|
64 |
unsigned int reserved9 :1; |
|
65 |
unsigned int reserved10 :1; |
|
66 |
unsigned int reserved11 :1; |
|
67 |
unsigned int reserved12 :1; |
|
68 |
unsigned int reserved13 :1; |
|
69 |
unsigned int reserved14 :1; |
|
70 |
unsigned int reserved15 :1; |
|
71 |
} JDWPTransportCapabilities; |
|
72 |
|
|
73 |
|
|
74 |
/* |
|
75 |
* Structures to define packet layout. |
|
76 |
* |
|
77 |
* See: http://java.sun.com/j2se/1.5/docs/guide/jpda/jdwp-spec.html |
|
78 |
*/ |
|
79 |
|
|
80 |
enum { |
|
81 |
JDWPTRANSPORT_FLAGS_NONE = 0x0, |
|
82 |
JDWPTRANSPORT_FLAGS_REPLY = 0x80 |
|
83 |
}; |
|
84 |
|
|
85 |
typedef struct { |
|
86 |
jint len; |
|
87 |
jint id; |
|
88 |
jbyte flags; |
|
89 |
jbyte cmdSet; |
|
90 |
jbyte cmd; |
|
91 |
jbyte *data; |
|
92 |
} jdwpCmdPacket; |
|
93 |
|
|
94 |
typedef struct { |
|
95 |
jint len; |
|
96 |
jint id; |
|
97 |
jbyte flags; |
|
98 |
jshort errorCode; |
|
99 |
jbyte *data; |
|
100 |
} jdwpReplyPacket; |
|
101 |
|
|
102 |
typedef struct { |
|
103 |
union { |
|
104 |
jdwpCmdPacket cmd; |
|
105 |
jdwpReplyPacket reply; |
|
106 |
} type; |
|
107 |
} jdwpPacket; |
|
108 |
|
|
109 |
/* |
|
110 |
* JDWP functions called by the transport. |
|
111 |
*/ |
|
112 |
typedef struct jdwpTransportCallback { |
|
113 |
void *(*alloc)(jint numBytes); /* Call this for all allocations */ |
|
114 |
void (*free)(void *buffer); /* Call this for all deallocations */ |
|
115 |
} jdwpTransportCallback; |
|
116 |
|
|
117 |
typedef jint (JNICALL *jdwpTransport_OnLoad_t)(JavaVM *jvm, |
|
118 |
jdwpTransportCallback *callback, |
|
119 |
jint version, |
|
120 |
jdwpTransportEnv** env); |
|
121 |
|
|
122 |
|
|
123 |
|
|
124 |
/* Function Interface */ |
|
125 |
|
|
126 |
struct jdwpTransportNativeInterface_ { |
|
127 |
/* 1 : RESERVED */ |
|
128 |
void *reserved1; |
|
129 |
|
|
130 |
/* 2 : Get Capabilities */ |
|
131 |
jdwpTransportError (JNICALL *GetCapabilities)(jdwpTransportEnv* env, |
|
132 |
JDWPTransportCapabilities *capabilities_ptr); |
|
133 |
|
|
134 |
/* 3 : Attach */ |
|
135 |
jdwpTransportError (JNICALL *Attach)(jdwpTransportEnv* env, |
|
136 |
const char* address, |
|
137 |
jlong attach_timeout, |
|
138 |
jlong handshake_timeout); |
|
139 |
|
|
140 |
/* 4: StartListening */ |
|
141 |
jdwpTransportError (JNICALL *StartListening)(jdwpTransportEnv* env, |
|
142 |
const char* address, |
|
143 |
char** actual_address); |
|
144 |
|
|
145 |
/* 5: StopListening */ |
|
146 |
jdwpTransportError (JNICALL *StopListening)(jdwpTransportEnv* env); |
|
147 |
|
|
148 |
/* 6: Accept */ |
|
149 |
jdwpTransportError (JNICALL *Accept)(jdwpTransportEnv* env, |
|
150 |
jlong accept_timeout, |
|
151 |
jlong handshake_timeout); |
|
152 |
|
|
153 |
/* 7: IsOpen */ |
|
154 |
jboolean (JNICALL *IsOpen)(jdwpTransportEnv* env); |
|
155 |
|
|
156 |
/* 8: Close */ |
|
157 |
jdwpTransportError (JNICALL *Close)(jdwpTransportEnv* env); |
|
158 |
|
|
159 |
/* 9: ReadPacket */ |
|
160 |
jdwpTransportError (JNICALL *ReadPacket)(jdwpTransportEnv* env, |
|
161 |
jdwpPacket *pkt); |
|
162 |
|
|
163 |
/* 10: Write Packet */ |
|
164 |
jdwpTransportError (JNICALL *WritePacket)(jdwpTransportEnv* env, |
|
165 |
const jdwpPacket* pkt); |
|
166 |
|
|
167 |
/* 11: GetLastError */ |
|
168 |
jdwpTransportError (JNICALL *GetLastError)(jdwpTransportEnv* env, |
|
169 |
char** error); |
|
170 |
|
|
171 |
}; |
|
172 |
|
|
173 |
|
|
174 |
/* |
|
175 |
* Use inlined functions so that C++ code can use syntax such as |
|
176 |
* env->Attach("mymachine:5000", 10*1000, 0); |
|
177 |
* |
|
178 |
* rather than using C's :- |
|
179 |
* |
|
180 |
* (*env)->Attach(env, "mymachine:5000", 10*1000, 0); |
|
181 |
*/ |
|
182 |
struct _jdwpTransportEnv { |
|
183 |
const struct jdwpTransportNativeInterface_ *functions; |
|
184 |
#ifdef __cplusplus |
|
185 |
|
|
186 |
jdwpTransportError GetCapabilities(JDWPTransportCapabilities *capabilities_ptr) { |
|
187 |
return functions->GetCapabilities(this, capabilities_ptr); |
|
188 |
} |
|
189 |
|
|
190 |
jdwpTransportError Attach(const char* address, jlong attach_timeout, |
|
191 |
jlong handshake_timeout) { |
|
192 |
return functions->Attach(this, address, attach_timeout, handshake_timeout); |
|
193 |
} |
|
194 |
|
|
195 |
jdwpTransportError StartListening(const char* address, |
|
196 |
char** actual_address) { |
|
197 |
return functions->StartListening(this, address, actual_address); |
|
198 |
} |
|
199 |
|
|
200 |
jdwpTransportError StopListening(void) { |
|
201 |
return functions->StopListening(this); |
|
202 |
} |
|
203 |
|
|
204 |
jdwpTransportError Accept(jlong accept_timeout, jlong handshake_timeout) { |
|
205 |
return functions->Accept(this, accept_timeout, handshake_timeout); |
|
206 |
} |
|
207 |
|
|
208 |
jboolean IsOpen(void) { |
|
209 |
return functions->IsOpen(this); |
|
210 |
} |
|
211 |
|
|
212 |
jdwpTransportError Close(void) { |
|
213 |
return functions->Close(this); |
|
214 |
} |
|
215 |
|
|
216 |
jdwpTransportError ReadPacket(jdwpPacket *pkt) { |
|
217 |
return functions->ReadPacket(this, pkt); |
|
218 |
} |
|
219 |
|
|
220 |
jdwpTransportError WritePacket(const jdwpPacket* pkt) { |
|
221 |
return functions->WritePacket(this, pkt); |
|
222 |
} |
|
223 |
|
|
224 |
jdwpTransportError GetLastError(char** error) { |
|
225 |
return functions->GetLastError(this, error); |
|
226 |
} |
|
227 |
|
|
228 |
|
|
229 |
#endif /* __cplusplus */ |
|
230 |
}; |
|
231 |
|
|
232 |
#ifdef __cplusplus |
|
233 |
} /* extern "C" */ |
|
234 |
#endif /* __cplusplus */ |
|
235 |
|
|
236 |
#endif /* JDWPTRANSPORT_H */ |
|
237 |
|
trunk/libraries/libjni-addo/include/jni_w32/jawt.h | ||
---|---|---|
1 |
/* |
|
2 |
* @(#)jawt.h 1.10 03/12/19 |
|
3 |
* |
|
4 |
* Copyright 2004 Sun Microsystems, Inc. All rights reserved. |
|
5 |
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
|
6 |
*/ |
|
7 |
|
|
8 |
#ifndef _JAVASOFT_JAWT_H_ |
|
9 |
#define _JAVASOFT_JAWT_H_ |
|
10 |
|
|
11 |
#include "jni.h" |
|
12 |
|
|
13 |
#ifdef __cplusplus |
|
14 |
extern "C" { |
|
15 |
#endif |
|
16 |
|
|
17 |
/* |
|
18 |
* AWT native interface (new in JDK 1.3) |
|
19 |
* |
|
20 |
* The AWT native interface allows a native C or C++ application a means |
|
21 |
* by which to access native structures in AWT. This is to facilitate moving |
|
22 |
* legacy C and C++ applications to Java and to target the needs of the |
|
23 |
* community who, at present, wish to do their own native rendering to canvases |
|
24 |
* for performance reasons. Standard extensions such as Java3D also require a |
|
25 |
* means to access the underlying native data structures of AWT. |
|
26 |
* |
|
27 |
* There may be future extensions to this API depending on demand. |
|
28 |
* |
|
29 |
* A VM does not have to implement this API in order to pass the JCK. |
|
30 |
* It is recommended, however, that this API is implemented on VMs that support |
|
31 |
* standard extensions, such as Java3D. |
|
32 |
* |
|
33 |
* Since this is a native API, any program which uses it cannot be considered |
|
34 |
* 100% pure java. |
|
35 |
*/ |
|
36 |
|
|
37 |
/* |
|
38 |
* AWT Native Drawing Surface (JAWT_DrawingSurface). |
|
39 |
* |
|
40 |
* For each platform, there is a native drawing surface structure. This |
|
41 |
* platform-specific structure can be found in jawt_md.h. It is recommended |
|
42 |
* that additional platforms follow the same model. It is also recommended |
|
43 |
* that VMs on Win32 and Solaris support the existing structures in jawt_md.h. |
|
44 |
* |
|
45 |
******************* |
|
46 |
* EXAMPLE OF USAGE: |
|
47 |
******************* |
|
48 |
* |
|
49 |
* In Win32, a programmer wishes to access the HWND of a canvas to perform |
|
50 |
* native rendering into it. The programmer has declared the paint() method |
|
51 |
* for their canvas subclass to be native: |
|
52 |
* |
|
53 |
* |
|
54 |
* MyCanvas.java: |
|
55 |
* |
|
56 |
* import java.awt.*; |
|
57 |
* |
|
58 |
* public class MyCanvas extends Canvas { |
|
59 |
* |
|
60 |
* static { |
|
61 |
* System.loadLibrary("mylib"); |
|
62 |
* } |
|
63 |
* |
|
64 |
* public native void paint(Graphics g); |
|
65 |
* } |
|
66 |
* |
|
67 |
* |
|
68 |
* myfile.c: |
|
69 |
* |
|
70 |
* #include "jawt_md.h" |
|
71 |
* #include <assert.h> |
|
72 |
* |
|
73 |
* JNIEXPORT void JNICALL |
|
74 |
* Java_MyCanvas_paint(JNIEnv* env, jobject canvas, jobject graphics) |
|
75 |
* { |
|
76 |
* JAWT awt; |
|
77 |
* JAWT_DrawingSurface* ds; |
|
78 |
* JAWT_DrawingSurfaceInfo* dsi; |
|
79 |
* JAWT_Win32DrawingSurfaceInfo* dsi_win; |
|
80 |
* jboolean result; |
|
81 |
* jint lock; |
|
82 |
* |
|
83 |
* // Get the AWT |
|
84 |
* awt.version = JAWT_VERSION_1_3; |
|
85 |
* result = JAWT_GetAWT(env, &awt); |
|
86 |
* assert(result != JNI_FALSE); |
|
87 |
* |
|
88 |
* // Get the drawing surface |
|
89 |
* ds = awt.GetDrawingSurface(env, canvas); |
|
90 |
* assert(ds != NULL); |
|
91 |
* |
|
92 |
* // Lock the drawing surface |
|
93 |
* lock = ds->Lock(ds); |
|
94 |
* assert((lock & JAWT_LOCK_ERROR) == 0); |
|
95 |
* |
|
96 |
* // Get the drawing surface info |
|
97 |
* dsi = ds->GetDrawingSurfaceInfo(ds); |
|
98 |
* |
|
99 |
* // Get the platform-specific drawing info |
|
100 |
* dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo; |
|
101 |
* |
|
102 |
* ////////////////////////////// |
|
103 |
* // !!! DO PAINTING HERE !!! // |
|
104 |
* ////////////////////////////// |
|
105 |
* |
|
106 |
* // Free the drawing surface info |
|
107 |
* ds->FreeDrawingSurfaceInfo(dsi); |
|
108 |
* |
|
109 |
* // Unlock the drawing surface |
|
110 |
* ds->Unlock(ds); |
|
111 |
* |
|
112 |
* // Free the drawing surface |
|
113 |
* awt.FreeDrawingSurface(ds); |
|
114 |
* } |
|
115 |
* |
|
116 |
*/ |
|
117 |
|
|
118 |
/* |
|
119 |
* JAWT_Rectangle |
|
120 |
* Structure for a native rectangle. |
|
121 |
*/ |
|
122 |
typedef struct jawt_Rectangle { |
|
123 |
jint x; |
|
124 |
jint y; |
|
125 |
jint width; |
|
126 |
jint height; |
|
127 |
} JAWT_Rectangle; |
|
128 |
|
|
129 |
struct jawt_DrawingSurface; |
|
130 |
|
|
131 |
/* |
|
132 |
* JAWT_DrawingSurfaceInfo |
|
133 |
* Structure for containing the underlying drawing information of a component. |
|
134 |
*/ |
|
135 |
typedef struct jawt_DrawingSurfaceInfo { |
|
136 |
/* |
|
137 |
* Pointer to the platform-specific information. This can be safely |
|
138 |
* cast to a JAWT_Win32DrawingSurfaceInfo on Windows or a |
|
139 |
* JAWT_X11DrawingSurfaceInfo on Solaris. See jawt_md.h for details. |
|
140 |
*/ |
|
141 |
void* platformInfo; |
|
142 |
/* Cached pointer to the underlying drawing surface */ |
|
143 |
struct jawt_DrawingSurface* ds; |
|
144 |
/* Bounding rectangle of the drawing surface */ |
|
145 |
JAWT_Rectangle bounds; |
|
146 |
/* Number of rectangles in the clip */ |
|
147 |
jint clipSize; |
|
148 |
/* Clip rectangle array */ |
|
149 |
JAWT_Rectangle* clip; |
|
150 |
} JAWT_DrawingSurfaceInfo; |
|
151 |
|
|
152 |
#define JAWT_LOCK_ERROR 0x00000001 |
|
153 |
#define JAWT_LOCK_CLIP_CHANGED 0x00000002 |
|
154 |
#define JAWT_LOCK_BOUNDS_CHANGED 0x00000004 |
|
155 |
#define JAWT_LOCK_SURFACE_CHANGED 0x00000008 |
|
156 |
|
|
157 |
/* |
|
158 |
* JAWT_DrawingSurface |
|
159 |
* Structure for containing the underlying drawing information of a component. |
|
160 |
* All operations on a JAWT_DrawingSurface MUST be performed from the same |
|
161 |
* thread as the call to GetDrawingSurface. |
|
162 |
*/ |
|
163 |
typedef struct jawt_DrawingSurface { |
|
164 |
/* |
|
165 |
* Cached reference to the Java environment of the calling thread. |
|
166 |
* If Lock(), Unlock(), GetDrawingSurfaceInfo() or |
|
167 |
* FreeDrawingSurfaceInfo() are called from a different thread, |
|
168 |
* this data member should be set before calling those functions. |
|
169 |
*/ |
|
170 |
JNIEnv* env; |
|
171 |
/* Cached reference to the target object */ |
|
172 |
jobject target; |
|
173 |
/* |
|
174 |
* Lock the surface of the target component for native rendering. |
|
175 |
* When finished drawing, the surface must be unlocked with |
|
176 |
* Unlock(). This function returns a bitmask with one or more of the |
|
177 |
* following values: |
|
178 |
* |
|
179 |
* JAWT_LOCK_ERROR - When an error has occurred and the surface could not |
|
180 |
* be locked. |
|
181 |
* |
|
182 |
* JAWT_LOCK_CLIP_CHANGED - When the clip region has changed. |
|
183 |
* |
|
184 |
* JAWT_LOCK_BOUNDS_CHANGED - When the bounds of the surface have changed. |
|
185 |
* |
|
186 |
* JAWT_LOCK_SURFACE_CHANGED - When the surface itself has changed |
|
187 |
*/ |
|
188 |
jint (JNICALL *Lock) |
|
189 |
(struct jawt_DrawingSurface* ds); |
|
190 |
/* |
|
191 |
* Get the drawing surface info. |
|
192 |
* The value returned may be cached, but the values may change if |
|
193 |
* additional calls to Lock() or Unlock() are made. |
|
194 |
* Lock() must be called before this can return a valid value. |
|
195 |
* Returns NULL if an error has occurred. |
|
196 |
* When finished with the returned value, FreeDrawingSurfaceInfo must be |
|
197 |
* called. |
|
198 |
*/ |
|
199 |
JAWT_DrawingSurfaceInfo* (JNICALL *GetDrawingSurfaceInfo) |
|
200 |
(struct jawt_DrawingSurface* ds); |
|
201 |
/* |
|
202 |
* Free the drawing surface info. |
|
203 |
*/ |
|
204 |
void (JNICALL *FreeDrawingSurfaceInfo) |
|
205 |
(JAWT_DrawingSurfaceInfo* dsi); |
|
206 |
/* |
|
207 |
* Unlock the drawing surface of the target component for native rendering. |
|
208 |
*/ |
|
209 |
void (JNICALL *Unlock) |
|
210 |
(struct jawt_DrawingSurface* ds); |
|
211 |
} JAWT_DrawingSurface; |
|
212 |
|
|
213 |
/* |
|
214 |
* JAWT |
|
215 |
* Structure for containing native AWT functions. |
|
216 |
*/ |
|
217 |
typedef struct jawt { |
|
218 |
/* |
|
219 |
* Version of this structure. This must always be set before |
|
220 |
* calling JAWT_GetAWT() |
|
221 |
*/ |
|
222 |
jint version; |
|
223 |
/* |
|
224 |
* Return a drawing surface from a target jobject. This value |
|
225 |
* may be cached. |
|
226 |
* Returns NULL if an error has occurred. |
|
227 |
* Target must be a java.awt.Component (should be a Canvas |
|
228 |
* or Window for native rendering). |
|
229 |
* FreeDrawingSurface() must be called when finished with the |
|
230 |
* returned JAWT_DrawingSurface. |
|
231 |
*/ |
|
232 |
JAWT_DrawingSurface* (JNICALL *GetDrawingSurface) |
|
233 |
(JNIEnv* env, jobject target); |
|
234 |
/* |
|
235 |
* Free the drawing surface allocated in GetDrawingSurface. |
|
236 |
*/ |
|
237 |
void (JNICALL *FreeDrawingSurface) |
|
238 |
(JAWT_DrawingSurface* ds); |
|
239 |
/* |
|
240 |
* Since 1.4 |
|
241 |
* Locks the entire AWT for synchronization purposes |
|
242 |
*/ |
|
243 |
void (JNICALL *Lock)(JNIEnv* env); |
|
244 |
/* |
|
245 |
* Since 1.4 |
|
246 |
* Unlocks the entire AWT for synchronization purposes |
|
247 |
*/ |
|
248 |
void (JNICALL *Unlock)(JNIEnv* env); |
|
249 |
/* |
|
250 |
* Since 1.4 |
|
251 |
* Returns a reference to a java.awt.Component from a native |
|
252 |
* platform handle. On Windows, this corresponds to an HWND; |
|
253 |
* on Solaris and Linux, this is a Drawable. For other platforms, |
|
254 |
* see the appropriate machine-dependent header file for a description. |
|
255 |
* The reference returned by this function is a local |
|
256 |
* reference that is only valid in this environment. |
|
257 |
* This function returns a NULL reference if no component could be |
|
258 |
* found with matching platform information. |
|
259 |
*/ |
|
260 |
jobject (JNICALL *GetComponent)(JNIEnv* env, void* platformInfo); |
|
261 |
|
|
262 |
} JAWT; |
|
263 |
|
|
264 |
/* |
|
265 |
* Get the AWT native structure. This function returns JNI_FALSE if |
|
266 |
* an error occurs. |
|
267 |
*/ |
|
268 |
_JNI_IMPORT_OR_EXPORT_ |
|
269 |
jboolean JNICALL JAWT_GetAWT(JNIEnv* env, JAWT* awt); |
|
270 |
|
|
271 |
#define JAWT_VERSION_1_3 0x00010003 |
|
272 |
#define JAWT_VERSION_1_4 0x00010004 |
|
273 |
|
|
274 |
#ifdef __cplusplus |
|
275 |
} /* extern "C" */ |
|
276 |
#endif |
|
277 |
|
|
278 |
#endif /* !_JAVASOFT_JAWT_H_ */ |
trunk/libraries/libjni-addo/include/jni_w32/jawt_md.h | ||
---|---|---|
1 | 1 |
/* |
2 |
* @(#)jawt_md.h 1.6 03/01/23
|
|
2 |
* @(#)jawt_md.h 1.7 03/12/19
|
|
3 | 3 |
* |
4 |
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
|
|
4 |
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
|
|
5 | 5 |
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
6 | 6 |
*/ |
7 | 7 |
|
trunk/libraries/libjni-addo/include/jni_w32/jvmpi.h | ||
---|---|---|
1 | 1 |
/* |
2 |
* @(#)jvmpi.h 1.27 03/01/23
|
|
2 |
* @(#)jvmpi.h 1.28 03/12/19
|
|
3 | 3 |
* |
4 |
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
|
|
4 |
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
|
|
5 | 5 |
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
6 | 6 |
*/ |
7 | 7 |
|
trunk/libraries/libjni-addo/include/jni_w32/jvmdi.h | ||
---|---|---|
1 | 1 |
/* |
2 |
* @(#)jvmdi.h 1.47 03/01/23
|
|
2 |
* @(#)jvmdi.h 1.48 03/12/19
|
|
3 | 3 |
* |
4 |
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
|
|
4 |
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
|
|
5 | 5 |
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
6 | 6 |
*/ |
7 | 7 |
|
trunk/libraries/libjni-addo/include/jni_w32/jvmti.h | ||
---|---|---|
1 |
#ifdef USE_PRAGMA_IDENT_HDR |
|
2 |
#pragma ident "@(#)jvmtiLib.xsl 1.32 04/06/01 20:19:53 JVM" |
|
3 |
#endif |
|
4 |
/* |
|
5 |
* Copyright 2004 Sun Microsystems, Inc. All rights reserved. |
|
6 |
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
|
7 |
*/ |
|
8 |
|
|
9 |
/* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */ |
|
10 |
|
|
11 |
|
|
12 |
/* Include file for the Java(tm) Virtual Machine Tool Interface */ |
|
13 |
|
|
14 |
#ifndef _JAVA_JVMTI_H_ |
|
15 |
#define _JAVA_JVMTI_H_ |
|
16 |
|
|
17 |
#include "jni.h" |
|
18 |
|
|
19 |
#ifdef __cplusplus |
|
20 |
extern "C" { |
|
21 |
#endif |
|
22 |
|
|
23 |
enum { |
|
24 |
JVMTI_VERSION_1 = 0x30010000, |
|
25 |
JVMTI_VERSION_1_0 = 0x30010000, |
|
26 |
|
|
27 |
JVMTI_VERSION = 0x30000000 + (1 * 0x10000) + (0 * 0x100) + 33 /* version: 1.0.33 */ |
|
28 |
}; |
|
29 |
|
|
30 |
JNIEXPORT jint JNICALL |
|
31 |
Agent_OnLoad(JavaVM *vm, char *options, void *reserved); |
|
32 |
|
|
33 |
JNIEXPORT void JNICALL |
|
34 |
Agent_OnUnload(JavaVM *vm); |
|
35 |
|
|
36 |
/* Forward declaration of the environment */ |
|
37 |
|
|
38 |
struct _jvmtiEnv; |
|
39 |
|
|
40 |
struct jvmtiInterface_1_; |
|
41 |
|
|
42 |
#ifdef __cplusplus |
|
43 |
typedef _jvmtiEnv jvmtiEnv; |
|
44 |
#else |
|
45 |
typedef const struct jvmtiInterface_1_ *jvmtiEnv; |
|
46 |
#endif /* __cplusplus */ |
|
47 |
|
|
48 |
/* Derived Base Types */ |
|
49 |
|
|
50 |
typedef jobject jthread; |
|
51 |
typedef jobject jthreadGroup; |
|
52 |
typedef jlong jlocation; |
|
53 |
struct _jrawMonitorID; |
|
54 |
typedef struct _jrawMonitorID *jrawMonitorID; |
|
55 |
typedef struct JNINativeInterface_ jniNativeInterface; |
|
56 |
|
|
57 |
/* Constants */ |
|
58 |
|
|
59 |
|
|
60 |
/* Thread State Flags */ |
|
61 |
|
|
62 |
enum { |
|
63 |
JVMTI_THREAD_STATE_ALIVE = 0x0001, |
|
64 |
JVMTI_THREAD_STATE_TERMINATED = 0x0002, |
|
65 |
JVMTI_THREAD_STATE_RUNNABLE = 0x0004, |
|
66 |
JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER = 0x0400, |
|
67 |
JVMTI_THREAD_STATE_WAITING = 0x0080, |
|
68 |
JVMTI_THREAD_STATE_WAITING_INDEFINITELY = 0x0010, |
|
69 |
JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT = 0x0020, |
|
70 |
JVMTI_THREAD_STATE_SLEEPING = 0x0040, |
|
71 |
JVMTI_THREAD_STATE_IN_OBJECT_WAIT = 0x0100, |
|
72 |
JVMTI_THREAD_STATE_PARKED = 0x0200, |
|
73 |
JVMTI_THREAD_STATE_SUSPENDED = 0x100000, |
|
74 |
JVMTI_THREAD_STATE_INTERRUPTED = 0x200000, |
|
75 |
JVMTI_THREAD_STATE_IN_NATIVE = 0x400000, |
|
76 |
JVMTI_THREAD_STATE_VENDOR_1 = 0x10000000, |
|
77 |
JVMTI_THREAD_STATE_VENDOR_2 = 0x20000000, |
|
78 |
JVMTI_THREAD_STATE_VENDOR_3 = 0x40000000 |
|
79 |
}; |
|
80 |
|
|
81 |
/* java.lang.Thread.State Conversion Masks */ |
|
82 |
|
|
83 |
enum { |
|
84 |
JVMTI_JAVA_LANG_THREAD_STATE_MASK = JVMTI_THREAD_STATE_TERMINATED | JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT, |
|
85 |
JVMTI_JAVA_LANG_THREAD_STATE_NEW = 0, |
|
86 |
JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED = JVMTI_THREAD_STATE_TERMINATED, |
|
87 |
JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE, |
|
88 |
JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER, |
|
89 |
JVMTI_JAVA_LANG_THREAD_STATE_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY, |
|
90 |
JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT |
|
91 |
}; |
|
92 |
|
|
93 |
/* Thread Priority Constants */ |
|
94 |
|
|
95 |
enum { |
|
96 |
JVMTI_THREAD_MIN_PRIORITY = 1, |
|
97 |
JVMTI_THREAD_NORM_PRIORITY = 5, |
|
98 |
JVMTI_THREAD_MAX_PRIORITY = 10 |
|
99 |
}; |
|
100 |
|
|
101 |
/* Heap Object Filter Enumeration */ |
|
102 |
|
|
103 |
typedef enum { |
|
104 |
JVMTI_HEAP_OBJECT_TAGGED = 1, |
|
105 |
JVMTI_HEAP_OBJECT_UNTAGGED = 2, |
|
106 |
JVMTI_HEAP_OBJECT_EITHER = 3 |
|
107 |
} jvmtiHeapObjectFilter; |
|
108 |
|
|
109 |
/* Heap Root Kind Enumeration */ |
|
110 |
|
|
111 |
typedef enum { |
|
112 |
JVMTI_HEAP_ROOT_JNI_GLOBAL = 1, |
|
113 |
JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2, |
|
114 |
JVMTI_HEAP_ROOT_MONITOR = 3, |
|
115 |
JVMTI_HEAP_ROOT_STACK_LOCAL = 4, |
|
116 |
JVMTI_HEAP_ROOT_JNI_LOCAL = 5, |
|
117 |
JVMTI_HEAP_ROOT_THREAD = 6, |
|
118 |
JVMTI_HEAP_ROOT_OTHER = 7 |
|
119 |
} jvmtiHeapRootKind; |
|
120 |
|
|
121 |
/* Object Reference Enumeration */ |
|
122 |
|
|
123 |
typedef enum { |
|
124 |
JVMTI_REFERENCE_CLASS = 1, |
|
125 |
JVMTI_REFERENCE_FIELD = 2, |
|
126 |
JVMTI_REFERENCE_ARRAY_ELEMENT = 3, |
|
127 |
JVMTI_REFERENCE_CLASS_LOADER = 4, |
|
128 |
JVMTI_REFERENCE_SIGNERS = 5, |
|
129 |
JVMTI_REFERENCE_PROTECTION_DOMAIN = 6, |
|
130 |
JVMTI_REFERENCE_INTERFACE = 7, |
|
131 |
JVMTI_REFERENCE_STATIC_FIELD = 8, |
|
132 |
JVMTI_REFERENCE_CONSTANT_POOL = 9 |
|
133 |
} jvmtiObjectReferenceKind; |
|
134 |
|
|
135 |
/* Iteration Control Enumeration */ |
|
136 |
|
|
137 |
typedef enum { |
|
138 |
JVMTI_ITERATION_CONTINUE = 1, |
|
139 |
JVMTI_ITERATION_IGNORE = 2, |
|
140 |
JVMTI_ITERATION_ABORT = 0 |
|
141 |
} jvmtiIterationControl; |
|
142 |
|
|
143 |
/* Class Status Flags */ |
|
144 |
|
|
145 |
enum { |
|
146 |
JVMTI_CLASS_STATUS_VERIFIED = 1, |
|
147 |
JVMTI_CLASS_STATUS_PREPARED = 2, |
|
148 |
JVMTI_CLASS_STATUS_INITIALIZED = 4, |
|
149 |
JVMTI_CLASS_STATUS_ERROR = 8, |
|
150 |
JVMTI_CLASS_STATUS_ARRAY = 16, |
|
151 |
JVMTI_CLASS_STATUS_PRIMITIVE = 32 |
|
152 |
}; |
|
153 |
|
|
154 |
/* Event Enable/Disable */ |
|
155 |
|
|
156 |
typedef enum { |
|
157 |
JVMTI_ENABLE = 1, |
|
158 |
JVMTI_DISABLE = 0 |
|
159 |
} jvmtiEventMode; |
|
160 |
|
|
161 |
/* Extension Function/Event Parameter Types */ |
|
162 |
|
|
163 |
typedef enum { |
|
164 |
JVMTI_TYPE_JBYTE = 101, |
|
165 |
JVMTI_TYPE_JCHAR = 102, |
|
166 |
JVMTI_TYPE_JSHORT = 103, |
|
167 |
JVMTI_TYPE_JINT = 104, |
|
168 |
JVMTI_TYPE_JLONG = 105, |
|
169 |
JVMTI_TYPE_JFLOAT = 106, |
|
170 |
JVMTI_TYPE_JDOUBLE = 107, |
|
171 |
JVMTI_TYPE_JBOOLEAN = 108, |
|
172 |
JVMTI_TYPE_JOBJECT = 109, |
|
173 |
JVMTI_TYPE_JTHREAD = 110, |
|
174 |
JVMTI_TYPE_JCLASS = 111, |
|
175 |
JVMTI_TYPE_JVALUE = 112, |
|
176 |
JVMTI_TYPE_JFIELDID = 113, |
|
177 |
JVMTI_TYPE_JMETHODID = 114, |
|
178 |
JVMTI_TYPE_CCHAR = 115, |
|
179 |
JVMTI_TYPE_CVOID = 116, |
|
180 |
JVMTI_TYPE_JNIENV = 117 |
|
181 |
} jvmtiParamTypes; |
|
182 |
|
|
183 |
/* Extension Function/Event Parameter Kinds */ |
|
184 |
|
|
185 |
typedef enum { |
|
186 |
JVMTI_KIND_IN = 91, |
|
187 |
JVMTI_KIND_IN_PTR = 92, |
|
188 |
JVMTI_KIND_IN_BUF = 93, |
|
189 |
JVMTI_KIND_ALLOC_BUF = 94, |
|
190 |
JVMTI_KIND_ALLOC_ALLOC_BUF = 95, |
|
191 |
JVMTI_KIND_OUT = 96, |
|
192 |
JVMTI_KIND_OUT_BUF = 97 |
|
193 |
} jvmtiParamKind; |
|
194 |
|
|
195 |
/* Timer Kinds */ |
|
196 |
|
|
197 |
typedef enum { |
|
198 |
JVMTI_TIMER_USER_CPU = 30, |
|
199 |
JVMTI_TIMER_TOTAL_CPU = 31, |
|
200 |
JVMTI_TIMER_ELAPSED = 32 |
|
201 |
} jvmtiTimerKind; |
|
202 |
|
|
203 |
/* Phases of execution */ |
|
204 |
|
|
205 |
typedef enum { |
|
206 |
JVMTI_PHASE_ONLOAD = 1, |
|
207 |
JVMTI_PHASE_PRIMORDIAL = 2, |
|
208 |
JVMTI_PHASE_START = 6, |
|
209 |
JVMTI_PHASE_LIVE = 4, |
|
210 |
JVMTI_PHASE_DEAD = 8 |
|
211 |
} jvmtiPhase; |
|
212 |
|
|
213 |
/* Version Interface Types */ |
|
214 |
|
|
215 |
enum { |
|
216 |
JVMTI_VERSION_INTERFACE_JNI = 0x00000000, |
|
217 |
JVMTI_VERSION_INTERFACE_JVMTI = 0x30000000 |
|
218 |
}; |
|
219 |
|
|
220 |
/* Version Masks */ |
|
221 |
|
|
222 |
enum { |
|
223 |
JVMTI_VERSION_MASK_INTERFACE_TYPE = 0x70000000, |
|
224 |
JVMTI_VERSION_MASK_MAJOR = 0x0FFF0000, |
|
225 |
JVMTI_VERSION_MASK_MINOR = 0x0000FF00, |
|
226 |
JVMTI_VERSION_MASK_MICRO = 0x000000FF |
|
227 |
}; |
|
228 |
|
|
229 |
/* Version Shifts */ |
|
230 |
|
|
231 |
enum { |
|
232 |
JVMTI_VERSION_SHIFT_MAJOR = 16, |
|
233 |
JVMTI_VERSION_SHIFT_MINOR = 8, |
|
234 |
JVMTI_VERSION_SHIFT_MICRO = 0 |
|
235 |
}; |
|
236 |
|
|
237 |
/* Verbose Flag Enumeration */ |
|
238 |
|
|
239 |
typedef enum { |
|
240 |
JVMTI_VERBOSE_OTHER = 0, |
|
241 |
JVMTI_VERBOSE_GC = 1, |
|
242 |
JVMTI_VERBOSE_CLASS = 2, |
|
243 |
JVMTI_VERBOSE_JNI = 4 |
|
244 |
} jvmtiVerboseFlag; |
|
245 |
|
|
246 |
/* JLocation Format Enumeration */ |
|
247 |
|
|
248 |
typedef enum { |
|
249 |
JVMTI_JLOCATION_JVMBCI = 1, |
|
250 |
JVMTI_JLOCATION_MACHINEPC = 2, |
|
251 |
JVMTI_JLOCATION_OTHER = 0 |
|
252 |
} jvmtiJlocationFormat; |
|
253 |
|
|
254 |
/* Errors */ |
|
255 |
|
|
256 |
typedef enum { |
|
257 |
JVMTI_ERROR_NONE = 0, |
|
258 |
JVMTI_ERROR_INVALID_THREAD = 10, |
|
259 |
JVMTI_ERROR_INVALID_THREAD_GROUP = 11, |
|
260 |
JVMTI_ERROR_INVALID_PRIORITY = 12, |
|
261 |
JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13, |
|
262 |
JVMTI_ERROR_THREAD_SUSPENDED = 14, |
|
263 |
JVMTI_ERROR_THREAD_NOT_ALIVE = 15, |
|
264 |
JVMTI_ERROR_INVALID_OBJECT = 20, |
|
265 |
JVMTI_ERROR_INVALID_CLASS = 21, |
|
266 |
JVMTI_ERROR_CLASS_NOT_PREPARED = 22, |
|
267 |
JVMTI_ERROR_INVALID_METHODID = 23, |
|
268 |
JVMTI_ERROR_INVALID_LOCATION = 24, |
|
269 |
JVMTI_ERROR_INVALID_FIELDID = 25, |
|
270 |
JVMTI_ERROR_NO_MORE_FRAMES = 31, |
|
271 |
JVMTI_ERROR_OPAQUE_FRAME = 32, |
|
272 |
JVMTI_ERROR_TYPE_MISMATCH = 34, |
|
273 |
JVMTI_ERROR_INVALID_SLOT = 35, |
|
274 |
JVMTI_ERROR_DUPLICATE = 40, |
|
275 |
JVMTI_ERROR_NOT_FOUND = 41, |
|
276 |
JVMTI_ERROR_INVALID_MONITOR = 50, |
|
277 |
JVMTI_ERROR_NOT_MONITOR_OWNER = 51, |
|
278 |
JVMTI_ERROR_INTERRUPT = 52, |
|
279 |
JVMTI_ERROR_INVALID_CLASS_FORMAT = 60, |
|
280 |
JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61, |
|
281 |
JVMTI_ERROR_FAILS_VERIFICATION = 62, |
|
282 |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63, |
|
283 |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64, |
|
284 |
JVMTI_ERROR_INVALID_TYPESTATE = 65, |
|
285 |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66, |
|
286 |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67, |
|
287 |
JVMTI_ERROR_UNSUPPORTED_VERSION = 68, |
|
288 |
JVMTI_ERROR_NAMES_DONT_MATCH = 69, |
|
289 |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70, |
|
290 |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71, |
|
291 |
JVMTI_ERROR_UNMODIFIABLE_CLASS = 79, |
|
292 |
JVMTI_ERROR_NOT_AVAILABLE = 98, |
|
293 |
JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99, |
|
294 |
JVMTI_ERROR_NULL_POINTER = 100, |
|
295 |
JVMTI_ERROR_ABSENT_INFORMATION = 101, |
|
296 |
JVMTI_ERROR_INVALID_EVENT_TYPE = 102, |
|
297 |
JVMTI_ERROR_ILLEGAL_ARGUMENT = 103, |
|
298 |
JVMTI_ERROR_NATIVE_METHOD = 104, |
|
299 |
JVMTI_ERROR_OUT_OF_MEMORY = 110, |
|
300 |
JVMTI_ERROR_ACCESS_DENIED = 111, |
|
301 |
JVMTI_ERROR_WRONG_PHASE = 112, |
|
302 |
JVMTI_ERROR_INTERNAL = 113, |
|
303 |
JVMTI_ERROR_UNATTACHED_THREAD = 115, |
|
304 |
JVMTI_ERROR_INVALID_ENVIRONMENT = 116, |
|
305 |
JVMTI_ERROR_MAX = 116 |
|
306 |
} jvmtiError; |
|
307 |
|
|
308 |
/* Event IDs */ |
|
309 |
|
|
310 |
typedef enum { |
|
311 |
JVMTI_MIN_EVENT_TYPE_VAL = 50, |
|
312 |
JVMTI_EVENT_VM_INIT = 50, |
|
313 |
JVMTI_EVENT_VM_DEATH = 51, |
|
314 |
JVMTI_EVENT_THREAD_START = 52, |
|
315 |
JVMTI_EVENT_THREAD_END = 53, |
|
316 |
JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54, |
|
317 |
JVMTI_EVENT_CLASS_LOAD = 55, |
|
318 |
JVMTI_EVENT_CLASS_PREPARE = 56, |
|
319 |
JVMTI_EVENT_VM_START = 57, |
|
320 |
JVMTI_EVENT_EXCEPTION = 58, |
|
321 |
JVMTI_EVENT_EXCEPTION_CATCH = 59, |
|
322 |
JVMTI_EVENT_SINGLE_STEP = 60, |
|
323 |
JVMTI_EVENT_FRAME_POP = 61, |
|
324 |
JVMTI_EVENT_BREAKPOINT = 62, |
|
325 |
JVMTI_EVENT_FIELD_ACCESS = 63, |
|
326 |
JVMTI_EVENT_FIELD_MODIFICATION = 64, |
|
327 |
JVMTI_EVENT_METHOD_ENTRY = 65, |
|
328 |
JVMTI_EVENT_METHOD_EXIT = 66, |
|
329 |
JVMTI_EVENT_NATIVE_METHOD_BIND = 67, |
|
330 |
JVMTI_EVENT_COMPILED_METHOD_LOAD = 68, |
|
331 |
JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69, |
|
332 |
JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70, |
|
333 |
JVMTI_EVENT_DATA_DUMP_REQUEST = 71, |
|
334 |
JVMTI_EVENT_MONITOR_WAIT = 73, |
|
335 |
JVMTI_EVENT_MONITOR_WAITED = 74, |
|
336 |
JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75, |
|
337 |
JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76, |
|
338 |
JVMTI_EVENT_GARBAGE_COLLECTION_START = 81, |
|
339 |
JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82, |
|
340 |
JVMTI_EVENT_OBJECT_FREE = 83, |
|
341 |
JVMTI_EVENT_VM_OBJECT_ALLOC = 84, |
|
342 |
JVMTI_MAX_EVENT_TYPE_VAL = 84 |
|
343 |
} jvmtiEvent; |
|
344 |
|
|
345 |
|
|
346 |
/* Function Types */ |
|
347 |
|
|
348 |
typedef void (JNICALL *jvmtiStartFunction) |
|
349 |
(jvmtiEnv* jvmti_env, JNIEnv* jni_env, void* arg); |
|
350 |
|
|
351 |
typedef jvmtiIterationControl (JNICALL *jvmtiHeapObjectCallback) |
|
352 |
(jlong class_tag, jlong size, jlong* tag_ptr, void* user_data); |
|
353 |
|
|
354 |
typedef jvmtiIterationControl (JNICALL *jvmtiHeapRootCallback) |
|
355 |
(jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, void* user_data); |
|
356 |
|
|
357 |
typedef jvmtiIterationControl (JNICALL *jvmtiStackReferenceCallback) |
|
358 |
(jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong thread_tag, jint depth, jmethodID method, jint slot, void* user_data); |
|
359 |
|
|
360 |
typedef jvmtiIterationControl (JNICALL *jvmtiObjectReferenceCallback) |
|
361 |
(jvmtiObjectReferenceKind reference_kind, jlong class_tag, jlong size, jlong* tag_ptr, jlong referrer_tag, jint referrer_index, void* user_data); |
|
362 |
|
|
363 |
typedef jvmtiError (JNICALL *jvmtiExtensionFunction) |
|
364 |
(jvmtiEnv* jvmti_env, ...); |
|
365 |
|
|
366 |
typedef void (JNICALL *jvmtiExtensionEvent) |
|
367 |
(jvmtiEnv* jvmti_env, ...); |
|
368 |
|
|
369 |
|
|
370 |
/* Structure Types */ |
|
371 |
|
|
372 |
typedef struct { |
|
373 |
char* name; |
|
374 |
jint priority; |
|
375 |
jboolean is_daemon; |
|
376 |
jthreadGroup thread_group; |
|
377 |
jobject context_class_loader; |
|
378 |
} jvmtiThreadInfo; |
|
379 |
|
|
380 |
typedef struct { |
|
381 |
jthreadGroup parent; |
|
382 |
char* name; |
|
383 |
jint max_priority; |
|
384 |
jboolean is_daemon; |
|
385 |
} jvmtiThreadGroupInfo; |
|
386 |
|
|
387 |
typedef struct { |
|
388 |
jmethodID method; |
|
389 |
jlocation location; |
|
390 |
} jvmtiFrameInfo; |
|
391 |
|
|
392 |
typedef struct { |
|
393 |
jthread thread; |
|
394 |
jint state; |
|
395 |
jvmtiFrameInfo* frame_buffer; |
|
396 |
jint frame_count; |
|
397 |
} jvmtiStackInfo; |
|
398 |
|
|
399 |
typedef struct { |
|
400 |
jclass klass; |
|
401 |
jint class_byte_count; |
|
402 |
const unsigned char* class_bytes; |
|
403 |
} jvmtiClassDefinition; |
|
404 |
|
|
405 |
typedef struct { |
|
406 |
jthread owner; |
|
407 |
jint entry_count; |
|
408 |
jint waiter_count; |
|
409 |
jthread* waiters; |
|
410 |
jint notify_waiter_count; |
|
411 |
jthread* notify_waiters; |
|
412 |
} jvmtiMonitorUsage; |
|
413 |
|
|
414 |
typedef struct { |
|
415 |
jlocation start_location; |
|
416 |
jint line_number; |
|
417 |
} jvmtiLineNumberEntry; |
|
418 |
|
|
419 |
typedef struct { |
|
420 |
jlocation start_location; |
|
421 |
jint length; |
|
422 |
char* name; |
|
423 |
char* signature; |
|
424 |
char* generic_signature; |
|
425 |
jint slot; |
|
426 |
} jvmtiLocalVariableEntry; |
|
427 |
|
|
428 |
typedef struct { |
|
429 |
char* name; |
|
430 |
jvmtiParamKind kind; |
|
431 |
jvmtiParamTypes base_type; |
|
432 |
jboolean null_ok; |
|
433 |
} jvmtiParamInfo; |
|
434 |
|
|
435 |
typedef struct { |
|
436 |
jvmtiExtensionFunction func; |
|
437 |
char* id; |
|
438 |
char* short_description; |
|
439 |
jint param_count; |
|
440 |
jvmtiParamInfo* params; |
|
441 |
jint error_count; |
|
442 |
jvmtiError* errors; |
|
443 |
} jvmtiExtensionFunctionInfo; |
|
444 |
|
|
445 |
typedef struct { |
|
446 |
jint extension_event_index; |
|
447 |
char* id; |
|
448 |
char* short_description; |
|
449 |
jint param_count; |
|
450 |
jvmtiParamInfo* params; |
|
451 |
} jvmtiExtensionEventInfo; |
|
452 |
|
|
453 |
typedef struct { |
|
454 |
jlong max_value; |
|
455 |
jboolean may_skip_forward; |
|
456 |
jboolean may_skip_backward; |
|
457 |
jvmtiTimerKind kind; |
|
458 |
jlong reserved1; |
|
459 |
jlong reserved2; |
|
460 |
} jvmtiTimerInfo; |
|
461 |
|
|
462 |
typedef struct { |
|
463 |
const void* start_address; |
|
464 |
jlocation location; |
|
465 |
} jvmtiAddrLocationMap; |
|
466 |
|
|
467 |
typedef struct { |
|
468 |
unsigned int can_tag_objects : 1; |
|
469 |
unsigned int can_generate_field_modification_events : 1; |
|
470 |
unsigned int can_generate_field_access_events : 1; |
|
471 |
unsigned int can_get_bytecodes : 1; |
|
472 |
unsigned int can_get_synthetic_attribute : 1; |
|
473 |
unsigned int can_get_owned_monitor_info : 1; |
|
474 |
unsigned int can_get_current_contended_monitor : 1; |
|
475 |
unsigned int can_get_monitor_info : 1; |
|
476 |
unsigned int can_pop_frame : 1; |
|
477 |
unsigned int can_redefine_classes : 1; |
|
478 |
unsigned int can_signal_thread : 1; |
|
479 |
unsigned int can_get_source_file_name : 1; |
|
480 |
unsigned int can_get_line_numbers : 1; |
|
481 |
unsigned int can_get_source_debug_extension : 1; |
|
482 |
unsigned int can_access_local_variables : 1; |
|
483 |
unsigned int can_maintain_original_method_order : 1; |
|
484 |
unsigned int can_generate_single_step_events : 1; |
|
485 |
unsigned int can_generate_exception_events : 1; |
|
486 |
unsigned int can_generate_frame_pop_events : 1; |
|
487 |
unsigned int can_generate_breakpoint_events : 1; |
|
488 |
unsigned int can_suspend : 1; |
|
489 |
unsigned int can_redefine_any_class : 1; |
|
490 |
unsigned int can_get_current_thread_cpu_time : 1; |
|
491 |
unsigned int can_get_thread_cpu_time : 1; |
|
492 |
unsigned int can_generate_method_entry_events : 1; |
|
493 |
unsigned int can_generate_method_exit_events : 1; |
|
494 |
unsigned int can_generate_all_class_hook_events : 1; |
|
495 |
unsigned int can_generate_compiled_method_load_events : 1; |
|
496 |
unsigned int can_generate_monitor_events : 1; |
|
497 |
unsigned int can_generate_vm_object_alloc_events : 1; |
|
498 |
unsigned int can_generate_native_method_bind_events : 1; |
|
499 |
unsigned int can_generate_garbage_collection_events : 1; |
|
500 |
unsigned int can_generate_object_free_events : 1; |
|
501 |
unsigned int : 15; |
|
502 |
unsigned int : 16; |
|
503 |
unsigned int : 16; |
|
504 |
unsigned int : 16; |
|
505 |
unsigned int : 16; |
|
506 |
unsigned int : 16; |
|
507 |
} jvmtiCapabilities; |
|
508 |
|
|
509 |
|
|
510 |
/* Event Definitions */ |
|
511 |
|
|
512 |
typedef void (JNICALL *jvmtiEventReserved)(void); |
|
513 |
|
|
514 |
|
|
515 |
typedef void (JNICALL *jvmtiEventBreakpoint) |
|
516 |
(jvmtiEnv *jvmti_env, |
|
517 |
JNIEnv* jni_env, |
|
518 |
jthread thread, |
|
519 |
jmethodID method, |
|
520 |
jlocation location); |
|
521 |
|
|
522 |
typedef void (JNICALL *jvmtiEventClassFileLoadHook) |
|
523 |
(jvmtiEnv *jvmti_env, |
|
524 |
JNIEnv* jni_env, |
|
525 |
jclass class_being_redefined, |
|
526 |
jobject loader, |
|
527 |
const char* name, |
|
528 |
jobject protection_domain, |
|
529 |
jint class_data_len, |
|
530 |
const unsigned char* class_data, |
|
531 |
jint* new_class_data_len, |
|
532 |
unsigned char** new_class_data); |
|
533 |
|
|
534 |
typedef void (JNICALL *jvmtiEventClassLoad) |
|
535 |
(jvmtiEnv *jvmti_env, |
|
536 |
JNIEnv* jni_env, |
|
537 |
jthread thread, |
|
538 |
jclass klass); |
|
539 |
|
|
540 |
typedef void (JNICALL *jvmtiEventClassPrepare) |
|
541 |
(jvmtiEnv *jvmti_env, |
|
542 |
JNIEnv* jni_env, |
|
543 |
jthread thread, |
|
544 |
jclass klass); |
|
545 |
|
|
546 |
typedef void (JNICALL *jvmtiEventCompiledMethodLoad) |
|
547 |
(jvmtiEnv *jvmti_env, |
|
548 |
jmethodID method, |
|
549 |
jint code_size, |
|
550 |
const void* code_addr, |
|
551 |
jint map_length, |
|
552 |
const jvmtiAddrLocationMap* map, |
|
553 |
const void* compile_info); |
|
554 |
|
|
555 |
typedef void (JNICALL *jvmtiEventCompiledMethodUnload) |
|
556 |
(jvmtiEnv *jvmti_env, |
|
557 |
jmethodID method, |
|
558 |
const void* code_addr); |
|
559 |
|
|
560 |
typedef void (JNICALL *jvmtiEventDataDumpRequest) |
|
561 |
(jvmtiEnv *jvmti_env); |
|
562 |
|
|
563 |
typedef void (JNICALL *jvmtiEventDynamicCodeGenerated) |
|
564 |
(jvmtiEnv *jvmti_env, |
|
565 |
const char* name, |
|
566 |
const void* address, |
|
567 |
jint length); |
|
568 |
|
|
569 |
typedef void (JNICALL *jvmtiEventException) |
|
570 |
(jvmtiEnv *jvmti_env, |
|
571 |
JNIEnv* jni_env, |
|
572 |
jthread thread, |
|
573 |
jmethodID method, |
|
574 |
jlocation location, |
|
575 |
jobject exception, |
|
576 |
jmethodID catch_method, |
|
577 |
jlocation catch_location); |
|
578 |
|
|
579 |
typedef void (JNICALL *jvmtiEventExceptionCatch) |
|
580 |
(jvmtiEnv *jvmti_env, |
|
581 |
JNIEnv* jni_env, |
|
582 |
jthread thread, |
|
583 |
jmethodID method, |
|
584 |
jlocation location, |
|
585 |
jobject exception); |
|
586 |
|
|
587 |
typedef void (JNICALL *jvmtiEventFieldAccess) |
|
588 |
(jvmtiEnv *jvmti_env, |
|
589 |
JNIEnv* jni_env, |
|
590 |
jthread thread, |
|
591 |
jmethodID method, |
|
592 |
jlocation location, |
|
593 |
jclass field_klass, |
|
594 |
jobject object, |
|
595 |
jfieldID field); |
|
596 |
|
|
597 |
typedef void (JNICALL *jvmtiEventFieldModification) |
|
598 |
(jvmtiEnv *jvmti_env, |
|
599 |
JNIEnv* jni_env, |
|
600 |
jthread thread, |
|
601 |
jmethodID method, |
|
602 |
jlocation location, |
|
603 |
jclass field_klass, |
|
604 |
jobject object, |
|
605 |
jfieldID field, |
|
606 |
char signature_type, |
|
607 |
jvalue new_value); |
|
608 |
|
|
609 |
typedef void (JNICALL *jvmtiEventFramePop) |
|
610 |
(jvmtiEnv *jvmti_env, |
|
611 |
JNIEnv* jni_env, |
|
612 |
jthread thread, |
|
613 |
jmethodID method, |
|
614 |
jboolean was_popped_by_exception); |
|
615 |
|
|
616 |
typedef void (JNICALL *jvmtiEventGarbageCollectionFinish) |
|
617 |
(jvmtiEnv *jvmti_env); |
|
618 |
|
|
619 |
typedef void (JNICALL *jvmtiEventGarbageCollectionStart) |
|
620 |
(jvmtiEnv *jvmti_env); |
|
621 |
|
|
622 |
typedef void (JNICALL *jvmtiEventMethodEntry) |
|
623 |
(jvmtiEnv *jvmti_env, |
|
624 |
JNIEnv* jni_env, |
|
625 |
jthread thread, |
|
626 |
jmethodID method); |
|
627 |
|
|
628 |
typedef void (JNICALL *jvmtiEventMethodExit) |
|
629 |
(jvmtiEnv *jvmti_env, |
|
630 |
JNIEnv* jni_env, |
|
631 |
jthread thread, |
|
632 |
jmethodID method, |
|
633 |
jboolean was_popped_by_exception, |
|
634 |
jvalue return_value); |
|
635 |
|
|
636 |
typedef void (JNICALL *jvmtiEventMonitorContendedEnter) |
|
637 |
(jvmtiEnv *jvmti_env, |
|
638 |
JNIEnv* jni_env, |
|
639 |
jthread thread, |
|
640 |
jobject object); |
|
641 |
|
|
642 |
typedef void (JNICALL *jvmtiEventMonitorContendedEntered) |
|
643 |
(jvmtiEnv *jvmti_env, |
|
644 |
JNIEnv* jni_env, |
|
645 |
jthread thread, |
|
646 |
jobject object); |
|
647 |
|
|
648 |
typedef void (JNICALL *jvmtiEventMonitorWait) |
|
649 |
(jvmtiEnv *jvmti_env, |
|
650 |
JNIEnv* jni_env, |
|
651 |
jthread thread, |
|
652 |
jobject object, |
|
653 |
jlong timeout); |
|
654 |
|
|
655 |
typedef void (JNICALL *jvmtiEventMonitorWaited) |
|
656 |
(jvmtiEnv *jvmti_env, |
|
657 |
JNIEnv* jni_env, |
|
658 |
jthread thread, |
|
659 |
jobject object, |
|
660 |
jboolean timed_out); |
|
661 |
|
|
662 |
typedef void (JNICALL *jvmtiEventNativeMethodBind) |
|
663 |
(jvmtiEnv *jvmti_env, |
|
664 |
JNIEnv* jni_env, |
|
665 |
jthread thread, |
|
666 |
jmethodID method, |
|
667 |
void* address, |
|
668 |
void** new_address_ptr); |
|
669 |
|
|
670 |
typedef void (JNICALL *jvmtiEventObjectFree) |
|
671 |
(jvmtiEnv *jvmti_env, |
|
672 |
jlong tag); |
|
673 |
|
|
674 |
typedef void (JNICALL *jvmtiEventSingleStep) |
|
675 |
(jvmtiEnv *jvmti_env, |
|
676 |
JNIEnv* jni_env, |
|
677 |
jthread thread, |
|
678 |
jmethodID method, |
|
679 |
jlocation location); |
|
680 |
|
|
681 |
typedef void (JNICALL *jvmtiEventThreadEnd) |
|
682 |
(jvmtiEnv *jvmti_env, |
|
683 |
JNIEnv* jni_env, |
|
684 |
jthread thread); |
|
685 |
|
|
686 |
typedef void (JNICALL *jvmtiEventThreadStart) |
|
687 |
(jvmtiEnv *jvmti_env, |
|
688 |
JNIEnv* jni_env, |
|
689 |
jthread thread); |
|
690 |
|
|
691 |
typedef void (JNICALL *jvmtiEventVMDeath) |
|
692 |
(jvmtiEnv *jvmti_env, |
|
693 |
JNIEnv* jni_env); |
|
694 |
|
|
695 |
typedef void (JNICALL *jvmtiEventVMInit) |
|
696 |
(jvmtiEnv *jvmti_env, |
|
697 |
JNIEnv* jni_env, |
|
698 |
jthread thread); |
|
699 |
|
|
700 |
typedef void (JNICALL *jvmtiEventVMObjectAlloc) |
|
701 |
(jvmtiEnv *jvmti_env, |
|
702 |
JNIEnv* jni_env, |
|
703 |
jthread thread, |
|
704 |
jobject object, |
|
705 |
jclass object_klass, |
|
706 |
jlong size); |
|
707 |
|
|
708 |
typedef void (JNICALL *jvmtiEventVMStart) |
|
709 |
(jvmtiEnv *jvmti_env, |
|
710 |
JNIEnv* jni_env); |
|
711 |
|
|
712 |
/* Event Callback Structure */ |
|
713 |
|
|
714 |
typedef struct { |
|
715 |
/* 50 : VM Initialization Event */ |
|
716 |
jvmtiEventVMInit VMInit; |
|
717 |
/* 51 : VM Death Event */ |
|
718 |
jvmtiEventVMDeath VMDeath; |
|
719 |
/* 52 : Thread Start */ |
|
720 |
jvmtiEventThreadStart ThreadStart; |
|
721 |
/* 53 : Thread End */ |
|
722 |
jvmtiEventThreadEnd ThreadEnd; |
|
723 |
/* 54 : Class File Load Hook */ |
|
724 |
jvmtiEventClassFileLoadHook ClassFileLoadHook; |
|
725 |
/* 55 : Class Load */ |
|
726 |
jvmtiEventClassLoad ClassLoad; |
|
727 |
/* 56 : Class Prepare */ |
|
728 |
jvmtiEventClassPrepare ClassPrepare; |
|
729 |
/* 57 : VM Start Event */ |
|
730 |
jvmtiEventVMStart VMStart; |
|
731 |
/* 58 : Exception */ |
|
732 |
jvmtiEventException Exception; |
|
733 |
/* 59 : Exception Catch */ |
|
734 |
jvmtiEventExceptionCatch ExceptionCatch; |
|
735 |
/* 60 : Single Step */ |
|
736 |
jvmtiEventSingleStep SingleStep; |
|
737 |
/* 61 : Frame Pop */ |
|
738 |
jvmtiEventFramePop FramePop; |
|
739 |
/* 62 : Breakpoint */ |
|
740 |
jvmtiEventBreakpoint Breakpoint; |
|
741 |
/* 63 : Field Access */ |
|
742 |
jvmtiEventFieldAccess FieldAccess; |
|
743 |
/* 64 : Field Modification */ |
|
744 |
jvmtiEventFieldModification FieldModification; |
|
745 |
/* 65 : Method Entry */ |
|
746 |
jvmtiEventMethodEntry MethodEntry; |
|
747 |
/* 66 : Method Exit */ |
|
748 |
jvmtiEventMethodExit MethodExit; |
|
749 |
/* 67 : Native Method Bind */ |
|
750 |
jvmtiEventNativeMethodBind NativeMethodBind; |
|
751 |
/* 68 : Compiled Method Load */ |
|
752 |
jvmtiEventCompiledMethodLoad CompiledMethodLoad; |
|
753 |
/* 69 : Compiled Method Unload */ |
|
754 |
jvmtiEventCompiledMethodUnload CompiledMethodUnload; |
|
755 |
/* 70 : Dynamic Code Generated */ |
|
756 |
jvmtiEventDynamicCodeGenerated DynamicCodeGenerated; |
|
757 |
/* 71 : Data Dump Request */ |
|
758 |
jvmtiEventDataDumpRequest DataDumpRequest; |
|
759 |
/* 72 */ |
|
760 |
jvmtiEventReserved reserved72; |
|
761 |
/* 73 : Monitor Wait */ |
|
762 |
jvmtiEventMonitorWait MonitorWait; |
|
763 |
/* 74 : Monitor Waited */ |
|
764 |
jvmtiEventMonitorWaited MonitorWaited; |
|
765 |
/* 75 : Monitor Contended Enter */ |
|
766 |
jvmtiEventMonitorContendedEnter MonitorContendedEnter; |
|
767 |
/* 76 : Monitor Contended Entered */ |
|
768 |
jvmtiEventMonitorContendedEntered MonitorContendedEntered; |
|
769 |
/* 77 */ |
|
770 |
jvmtiEventReserved reserved77; |
|
771 |
/* 78 */ |
|
772 |
jvmtiEventReserved reserved78; |
|
773 |
/* 79 */ |
|
774 |
jvmtiEventReserved reserved79; |
|
775 |
/* 80 */ |
|
776 |
jvmtiEventReserved reserved80; |
|
777 |
/* 81 : Garbage Collection Start */ |
|
778 |
jvmtiEventGarbageCollectionStart GarbageCollectionStart; |
|
779 |
/* 82 : Garbage Collection Finish */ |
|
780 |
jvmtiEventGarbageCollectionFinish GarbageCollectionFinish; |
|
781 |
/* 83 : Object Free */ |
|
782 |
jvmtiEventObjectFree ObjectFree; |
|
783 |
/* 84 : VM Object Allocation */ |
|
784 |
jvmtiEventVMObjectAlloc VMObjectAlloc; |
|
785 |
} jvmtiEventCallbacks; |
|
786 |
|
|
787 |
|
|
788 |
/* Function Interface */ |
|
789 |
|
|
790 |
typedef struct jvmtiInterface_1_ { |
|
791 |
|
|
792 |
/* 1 : RESERVED */ |
|
793 |
void *reserved1; |
|
794 |
|
|
795 |
/* 2 : Set Event Notification Mode */ |
|
796 |
jvmtiError (JNICALL *SetEventNotificationMode) (jvmtiEnv* env, |
|
797 |
jvmtiEventMode mode, |
|
798 |
jvmtiEvent event_type, |
|
799 |
jthread event_thread, |
|
800 |
...); |
|
801 |
|
|
802 |
/* 3 : RESERVED */ |
|
803 |
void *reserved3; |
|
804 |
|
|
805 |
/* 4 : Get All Threads */ |
|
806 |
jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv* env, |
|
807 |
jint* threads_count_ptr, |
|
808 |
jthread** threads_ptr); |
|
809 |
|
|
810 |
/* 5 : Suspend Thread */ |
|
811 |
jvmtiError (JNICALL *SuspendThread) (jvmtiEnv* env, |
|
812 |
jthread thread); |
|
813 |
|
|
814 |
/* 6 : Resume Thread */ |
|
815 |
jvmtiError (JNICALL *ResumeThread) (jvmtiEnv* env, |
|
816 |
jthread thread); |
|
817 |
|
|
818 |
/* 7 : Stop Thread */ |
|
819 |
jvmtiError (JNICALL *StopThread) (jvmtiEnv* env, |
|
820 |
jthread thread, |
|
821 |
jobject exception); |
|
822 |
|
|
823 |
/* 8 : Interrupt Thread */ |
|
824 |
jvmtiError (JNICALL *InterruptThread) (jvmtiEnv* env, |
|
825 |
jthread thread); |
|
826 |
|
|
827 |
/* 9 : Get Thread Info */ |
|
828 |
jvmtiError (JNICALL *GetThreadInfo) (jvmtiEnv* env, |
|
829 |
jthread thread, |
|
830 |
jvmtiThreadInfo* info_ptr); |
|
831 |
|
|
832 |
/* 10 : Get Owned Monitor Info */ |
|
833 |
jvmtiError (JNICALL *GetOwnedMonitorInfo) (jvmtiEnv* env, |
|
834 |
jthread thread, |
|
835 |
jint* owned_monitor_count_ptr, |
|
836 |
jobject** owned_monitors_ptr); |
|
837 |
|
|
838 |
/* 11 : Get Current Contended Monitor */ |
|
839 |
jvmtiError (JNICALL *GetCurrentContendedMonitor) (jvmtiEnv* env, |
|
840 |
jthread thread, |
|
841 |
jobject* monitor_ptr); |
|
842 |
|
|
843 |
/* 12 : Run Agent Thread */ |
|
844 |
jvmtiError (JNICALL *RunAgentThread) (jvmtiEnv* env, |
|
845 |
jthread thread, |
|
846 |
jvmtiStartFunction proc, |
|
847 |
const void* arg, |
|
848 |
jint priority); |
|
849 |
|
|
850 |
/* 13 : Get Top Thread Groups */ |
|
851 |
jvmtiError (JNICALL *GetTopThreadGroups) (jvmtiEnv* env, |
|
852 |
jint* group_count_ptr, |
|
853 |
jthreadGroup** groups_ptr); |
|
854 |
|
|
855 |
/* 14 : Get Thread Group Info */ |
|
856 |
jvmtiError (JNICALL *GetThreadGroupInfo) (jvmtiEnv* env, |
|
857 |
jthreadGroup group, |
|
858 |
jvmtiThreadGroupInfo* info_ptr); |
|
859 |
|
|
860 |
/* 15 : Get Thread Group Children */ |
|
861 |
jvmtiError (JNICALL *GetThreadGroupChildren) (jvmtiEnv* env, |
|
862 |
jthreadGroup group, |
|
863 |
jint* thread_count_ptr, |
|
864 |
jthread** threads_ptr, |
|
865 |
jint* group_count_ptr, |
|
866 |
jthreadGroup** groups_ptr); |
|
867 |
|
|
868 |
/* 16 : Get Frame Count */ |
|
869 |
jvmtiError (JNICALL *GetFrameCount) (jvmtiEnv* env, |
|
870 |
jthread thread, |
|
871 |
jint* count_ptr); |
|
872 |
|
|
873 |
/* 17 : Get Thread State */ |
|
874 |
jvmtiError (JNICALL *GetThreadState) (jvmtiEnv* env, |
|
875 |
jthread thread, |
|
876 |
jint* thread_state_ptr); |
|
877 |
|
|
878 |
/* 18 : RESERVED */ |
|
879 |
void *reserved18; |
|
880 |
|
|
881 |
/* 19 : Get Frame Location */ |
|
882 |
jvmtiError (JNICALL *GetFrameLocation) (jvmtiEnv* env, |
|
883 |
jthread thread, |
|
884 |
jint depth, |
|
885 |
jmethodID* method_ptr, |
|
886 |
jlocation* location_ptr); |
|
887 |
|
|
888 |
/* 20 : Notify Frame Pop */ |
|
889 |
jvmtiError (JNICALL *NotifyFramePop) (jvmtiEnv* env, |
|
890 |
jthread thread, |
|
891 |
jint depth); |
|
892 |
|
|
893 |
/* 21 : Get Local Variable - Object */ |
|
894 |
jvmtiError (JNICALL *GetLocalObject) (jvmtiEnv* env, |
|
895 |
jthread thread, |
|
896 |
jint depth, |
|
897 |
jint slot, |
|
898 |
jobject* value_ptr); |
|
899 |
|
|
900 |
/* 22 : Get Local Variable - Int */ |
|
901 |
jvmtiError (JNICALL *GetLocalInt) (jvmtiEnv* env, |
Also available in: Unified diff