1 /*
2  * Copyright (c) 2021,2023, Intel Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_INCLUDE_KERNEL_STATS_H_
8 #define ZEPHYR_INCLUDE_KERNEL_STATS_H_
9 
10 #include <stdint.h>
11 #include <stdbool.h>
12 
13 /**
14  * Structure used to track internal statistics about both thread
15  * and CPU usage.
16  */
17 
18 struct k_cycle_stats {
19 	uint64_t  total;        /**< total usage in cycles */
20 #if defined(CONFIG_SCHED_THREAD_USAGE_ANALYSIS) || defined(__DOXYGEN__)
21 	/**
22 	 * @name Fields available when CONFIG_SCHED_THREAD_USAGE_ANALYSIS is selected.
23 	 * @{
24 	 */
25 	uint64_t  current;      /**< \# of cycles in current usage window */
26 	uint64_t  longest;      /**< \# of cycles in longest usage window */
27 	uint32_t  num_windows;  /**< \# of usage windows */
28 	/** @} */
29 #endif /* CONFIG_SCHED_THREAD_USAGE_ANALYSIS */
30 	bool      track_usage;  /**< true if gathering usage stats */
31 };
32 
33 #endif /* ZEPHYR_INCLUDE_KERNEL_STATS_H_ */
34