home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JRUNTIME.Z / JVTune.h < prev    next >
C/C++ Source or Header  |  1998-05-08  |  4KB  |  97 lines

  1. // $Header: z:/admin/jb20_jdk116x.English/javasrc/src/win32/java/include/rcs/JVTune.h 1.1 1998/04/17 23:02:58 bstone Exp $ 
  2. #ifndef __JVTune_h__
  3. #define __JVTune_h__
  4.  
  5. #include <windows.h>
  6.  
  7. typedef enum _JVTune_Event
  8. {
  9.     // exception
  10.     JIT_EVENT_EXCEPTION_OCCURRED,    // An exception occurred.
  11.                     // The exception handler will be executed by compiled method mb
  12.                     // EventSpecificData is the methodblock structure pointer mb
  13.                     // EventSpecificData2 is the exception frame stack pointer
  14.  
  15.     // shutdown
  16.     JVM_EVENT_SHUTDOWN,                 // Program exiting, mode flags must be non-zero, otherwise not sent
  17.                     // EventSpecificData is NA
  18.  
  19.     // JIT profiling
  20.     JIT_EVENT_METHOD_COMPILED,        // issued after method code jitted
  21.                     // into memory but before code is executed
  22.                     // EventSpecificData is the methodblock structure pointer mb
  23.  
  24.     JIT_EVENT_METHOD_UNLOAD_START,    // issued before unload. Jitted method code is no
  25.                     // longer being executed, but code and info
  26.                     // are still in memory. The JVTune profiler
  27.                     // may capture method code and info at this point.
  28.                     // EventSpecificData is the methodblock structure pointer mb
  29.  
  30.     // Method Profiling
  31.     JVM_EVENT_ENTER_METHOD,        // issued when an interpreted method is about to be executed
  32.                     // EventSpecificData is the methodblock structure pointer mb
  33.  
  34.     JVM_EVENT_LEAVE_METHOD,        // issued when an interpreted method is about to be left
  35.                     // EventSpecificData is the methodblock structure pointer mb
  36.  
  37.     JIT_EVENT_ENTER_METHOD,        // issued when a jitted method is about to be executed
  38.                     // EventSpecificData is the methodblock structure pointer mb
  39.  
  40.     JIT_EVENT_ENTER_METHOD_XFRAME,    // issued when a jitted method containing an exception frame is about to be executed
  41.                     // EventSpecificData is the methodblock structure pointer mb
  42.                     // EventSpecificData2 is the exception frame stack pointer
  43.  
  44.     JIT_EVENT_LEAVE_METHOD,        // issued when a jitted method is about to be left
  45.                     // EventSpecificData is the methodblock structure pointer mb
  46.  
  47.     JIT_EVENT_LEAVE_METHOD_XFRAME,    // issued when a jitted method containing an exception frame is about to be left
  48.                     // EventSpecificData is the methodblock structure pointer mb
  49.                     // EventSpecificData2 is the exception frame stack pointer
  50.  
  51. } JVTune_Event;
  52.  
  53.  
  54. typedef enum _JVTune_ModeFlags
  55. {
  56.     JVTUNE_NO_NOTIFICATIONS        = 0x0000,    // dummy
  57.  
  58.     JVTUNE_BE_NOTIFIED_ON_COMPILE    = 0x0001,    // when turned on the jit must call JVTune_NotifyEvent( JIT_EVENT_METHOD_COMPILED, ...) after a method is jitted
  59.                              // no notification for already jitted methods
  60.     JVTUNE_BE_NOTIFIED_ON_UNLOAD        = 0x0002,    // when turned on the jit must call JVTune_NotifyEvent( JIT_EVENT_METHOD_UNLOAD_START, ...) before a method is unloaded
  61.  
  62.     JVTUNE_BE_NOTIFIED_ON_METHOD_ENTRY  = 0x0004,    // when turned on the jit/vm must call JVTune_NotifyEvent( Jxx_EVENT_ENTER_METHOD, ...) before a method is executed
  63.                              // also controls Jxx_EVENT_EXCEPTION_OCCURRED
  64.     JVTUNE_BE_NOTIFIED_ON_METHOD_EXIT   = 0x0008,    // when turned on the jit/vm must call JVTune_NotifyEvent( Jxx_EVENT_LEAVE_METHOD, ...) before a method terminates
  65.                              // also controls Jxx_EVENT_EXCEPTION_OCCURRED
  66.  
  67. } JVTune_ModeFlags;
  68.  
  69.  
  70. typedef void (*JVTune_ModeChanged)(void *UserData, JVTune_ModeFlags Flags);  // called when the settings are changed with new settings
  71.  
  72.  
  73. // methods
  74.  
  75.     // call back function registration ... needed for profiling.
  76.     // The Method pointed by NewModeCallBackFunc will be called upon a change of state
  77. extern void (*p_JVTune_RegisterCallback)(
  78.         void *UserData,                    // Info from the user
  79.         JVTune_ModeChanged NewModeCallBackFunc);    // The new mode call back routine
  80.  
  81.     // An event is occuring in the JIT Compiler or Java VM
  82. extern int (*p_JVTune_NotifyEvent)(
  83.         JVTune_Event event_type,    // the event that occured
  84.         void *EventSpecificData);    // Data for that event, or NULL if no data
  85.     
  86. extern int (*p_JVTune_NotifyEvent2)(
  87.         JVTune_Event event_type,    // the event that occured
  88.         void *EventSpecificData,    // Data for that event, or NULL if no data
  89.         void *EventSpecificData2);    // Data for that event, or NULL if no data
  90.     
  91. extern JVTune_ModeFlags *p_JVTune_Mode, JVTune_Mode;
  92.  
  93. #endif // __JVTune_h__
  94.  
  95.  
  96.  
  97.