/* * Copyright (c) 2021,2023, Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_INCLUDE_KERNEL_STATS_H_ #define ZEPHYR_INCLUDE_KERNEL_STATS_H_ #include #include /** * Structure used to track internal statistics about both thread * and CPU usage. */ struct k_cycle_stats { uint64_t total; /**< total usage in cycles */ #if defined(CONFIG_SCHED_THREAD_USAGE_ANALYSIS) || defined(__DOXYGEN__) /** * @name Fields available when CONFIG_SCHED_THREAD_USAGE_ANALYSIS is selected. * @{ */ uint64_t current; /**< \# of cycles in current usage window */ uint64_t longest; /**< \# of cycles in longest usage window */ uint32_t num_windows; /**< \# of usage windows */ /** @} */ #endif /* CONFIG_SCHED_THREAD_USAGE_ANALYSIS */ bool track_usage; /**< true if gathering usage stats */ }; #endif /* ZEPHYR_INCLUDE_KERNEL_STATS_H_ */