btrfs: [] on the end of a struct field is a variable length array.
[haiku.git] / headers / private / system / scheduler_defs.h
blobc17bf43414f41e24c6cb45afcd43188f0d4605ff
1 /*
2 * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5 #ifndef _SYSTEM_SCHEDULER_DEFS_H
6 #define _SYSTEM_SCHEDULER_DEFS_H
8 #include <OS.h>
11 struct scheduling_analysis_thread_wait_object;
13 struct scheduling_analysis_thread {
14 thread_id id;
15 char name[B_OS_NAME_LENGTH];
17 int64 runs;
18 bigtime_t total_run_time;
19 bigtime_t min_run_time;
20 bigtime_t max_run_time;
22 int64 latencies;
23 bigtime_t total_latency;
24 bigtime_t min_latency;
25 bigtime_t max_latency;
27 int64 reruns;
28 bigtime_t total_rerun_time;
29 bigtime_t min_rerun_time;
30 bigtime_t max_rerun_time;
32 bigtime_t unspecified_wait_time;
34 int64 preemptions;
36 scheduling_analysis_thread_wait_object* wait_objects;
40 struct scheduling_analysis_wait_object {
41 uint32 type;
42 void* object;
43 char name[B_OS_NAME_LENGTH];
44 void* referenced_object;
48 struct scheduling_analysis_thread_wait_object {
49 thread_id thread;
50 scheduling_analysis_wait_object* wait_object;
51 bigtime_t wait_time;
52 int64 waits;
53 scheduling_analysis_thread_wait_object* next_in_list;
57 struct scheduling_analysis {
58 uint32 thread_count;
59 scheduling_analysis_thread** threads;
60 uint64 wait_object_count;
61 uint64 thread_wait_object_count;
65 #endif /* _SYSTEM_SCHEDULER_DEFS_H */