1e2ae69daSIngo Weinhold /* 2e2ae69daSIngo Weinhold * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3e2ae69daSIngo Weinhold * Distributed under the terms of the MIT License. 4e2ae69daSIngo Weinhold */ 5e2ae69daSIngo Weinhold #ifndef _KERNEL_SYSTEM_PROFILER_H 6e2ae69daSIngo Weinhold #define _KERNEL_SYSTEM_PROFILER_H 7e2ae69daSIngo Weinhold 8e2ae69daSIngo Weinhold #include <sys/cdefs.h> 9e2ae69daSIngo Weinhold 10e2ae69daSIngo Weinhold #include <OS.h> 11e2ae69daSIngo Weinhold 12*035e3e77SAxel Dörfler #include "kernel_debug_config.h" 13*035e3e77SAxel Dörfler 14e2ae69daSIngo Weinhold 155b2f0f33SIngo Weinhold struct system_profiler_parameters; 165b2f0f33SIngo Weinhold 175b2f0f33SIngo Weinhold 18e2ae69daSIngo Weinhold __BEGIN_DECLS 19e2ae69daSIngo Weinhold 20*035e3e77SAxel Dörfler #if SYSTEM_PROFILER 2113aa1795SAxel Dörfler status_t start_system_profiler(size_t areaSize, uint32 stackDepth, 2213aa1795SAxel Dörfler bigtime_t interval); 235fbad060SAxel Dörfler void stop_system_profiler(); 24*035e3e77SAxel Dörfler #endif 255fbad060SAxel Dörfler 265b2f0f33SIngo Weinhold status_t _user_system_profiler_start( 275b2f0f33SIngo Weinhold struct system_profiler_parameters* parameters); 28227fe7d3SIngo Weinhold status_t _user_system_profiler_next_buffer(size_t bytesRead, 29227fe7d3SIngo Weinhold uint64* _droppedEvents); 30e2ae69daSIngo Weinhold status_t _user_system_profiler_stop(); 315fbad060SAxel Dörfler status_t _user_system_profiler_recorded( 325fbad060SAxel Dörfler struct system_profiler_parameters* parameters); 33e2ae69daSIngo Weinhold 34e2ae69daSIngo Weinhold __END_DECLS 35e2ae69daSIngo Weinhold 36e2ae69daSIngo Weinhold 37e2ae69daSIngo Weinhold #endif /* _KERNEL_SYSTEM_PROFILER_H */ 38