58 #ifndef __JITPROFILING_H__ 59 #define __JITPROFILING_H__ 66 typedef enum iJIT_jvm_event
74 iJVM_EVENT_TYPE_SHUTDOWN = 2,
82 iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED=13,
88 iJVM_EVENT_TYPE_METHOD_UNLOAD_START,
96 iJVM_EVENT_TYPE_ENTER_NIDS = 19,
102 iJVM_EVENT_TYPE_LEAVE_NIDS
105 typedef enum _iJIT_ModeFlags
108 iJIT_NO_NOTIFICATIONS = 0x0000,
117 iJIT_BE_NOTIFY_ON_LOAD = 0x0001,
125 iJIT_BE_NOTIFY_ON_UNLOAD = 0x0002,
131 iJIT_BE_NOTIFY_ON_METHOD_ENTRY = 0x0004,
137 iJIT_BE_NOTIFY_ON_METHOD_EXIT = 0x0008
143 typedef enum _iJIT_IsProfilingActiveFlags
146 iJIT_NOTHING_RUNNING = 0x0000,
151 iJIT_SAMPLING_ON = 0x0001,
154 iJIT_CALLGRAPH_ON = 0x0002
156 } iJIT_IsProfilingActiveFlags;
159 typedef enum _iJDEnvironmentType
162 } iJDEnvironmentType;
177 unsigned int method_id;
191 unsigned int method_id;
194 unsigned int stack_id;
210 unsigned int LineNumber;
217 unsigned int method_id;
227 void* method_load_address;
230 unsigned int method_size;
233 unsigned int line_number_size;
239 unsigned int class_id;
242 char* class_file_name;
245 char* source_file_name;
251 unsigned int user_data_size;
254 iJDEnvironmentType env;
264 # if defined WIN32 || defined _WIN32 265 # define CDECL __cdecl 267 # if defined _M_X64 || defined _M_AMD64 || defined __x86_64__ 270 # define CDECL __attribute__ ((cdecl)) 278 typedef void (*iJIT_ModeChangedEx)(
void *UserData, iJIT_ModeFlags Flags);
280 int JITAPI iJIT_NotifyEvent(iJIT_JVM_EVENT event_type,
void *EventSpecificData);
283 void JITAPI iJIT_RegisterCallbackEx(
void *userdata,
284 iJIT_ModeChangedEx NewModeCallBackFuncEx);
286 iJIT_IsProfilingActiveFlags JITAPI iJIT_IsProfilingActive(
void);
288 void JITAPI FinalizeThread(
void);
290 void JITAPI FinalizeProcess(
void);
292 unsigned int JITAPI iJIT_GetNewMethodID(
void);