229 public: |
229 public: |
230 static void reset() KERNEL_RETURN ; |
230 static void reset() KERNEL_RETURN ; |
231 static void engage(JavaThread* mainThread, bool fullProfile) KERNEL_RETURN ; |
231 static void engage(JavaThread* mainThread, bool fullProfile) KERNEL_RETURN ; |
232 static void disengage() KERNEL_RETURN ; |
232 static void disengage() KERNEL_RETURN ; |
233 static void print(int unused) KERNEL_RETURN ; |
233 static void print(int unused) KERNEL_RETURN ; |
234 static bool is_active() KERNEL_RETURN_(return false;) ; |
234 static bool is_active() KERNEL_RETURN_(false) ; |
235 |
235 |
236 // This is NULL if each thread has its own thread profiler, |
236 // This is NULL if each thread has its own thread profiler, |
237 // else this is the single thread profiler used by all threads. |
237 // else this is the single thread profiler used by all threads. |
238 // In particular it makes a difference during garbage collection, |
238 // In particular it makes a difference during garbage collection, |
239 // where you only want to traverse each thread profiler once. |
239 // where you only want to traverse each thread profiler once. |
240 static ThreadProfiler* get_thread_profiler() KERNEL_RETURN_(return NULL;); |
240 static ThreadProfiler* get_thread_profiler() KERNEL_RETURN_(NULL); |
241 |
241 |
242 // Garbage Collection Support |
242 // Garbage Collection Support |
243 static void oops_do(OopClosure* f) KERNEL_RETURN ; |
243 static void oops_do(OopClosure* f) KERNEL_RETURN ; |
244 |
244 |
245 // Support for disassembler to inspect the PCRecorder |
245 // Support for disassembler to inspect the PCRecorder |
246 |
246 |
247 // Returns the start address for a given pc |
247 // Returns the start address for a given pc |
248 // NULL is returned if the PCRecorder is inactive |
248 // NULL is returned if the PCRecorder is inactive |
249 static address bucket_start_for(address pc) KERNEL_RETURN_(return NULL;); |
249 static address bucket_start_for(address pc) KERNEL_RETURN_(NULL); |
250 |
250 |
251 enum { MillisecsPerTick = 10 }; // ms per profiling ticks |
251 enum { MillisecsPerTick = 10 }; // ms per profiling ticks |
252 |
252 |
253 // Returns the number of ticks recorded for the bucket |
253 // Returns the number of ticks recorded for the bucket |
254 // pc belongs to. |
254 // pc belongs to. |
255 static int bucket_count_for(address pc) KERNEL_RETURN_(return 0;); |
255 static int bucket_count_for(address pc) KERNEL_RETURN_(0); |
256 |
256 |
257 #ifndef FPROF_KERNEL |
257 #ifndef FPROF_KERNEL |
258 |
258 |
259 private: |
259 private: |
260 static bool full_profile() { |
260 static bool full_profile() { |