xref: /haiku/headers/private/kernel/system_profiler.h (revision 035e3e77ed4550c9e9e5d932d02125be0d80d04c)
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