/* * Copyright (c) 2018 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_INCLUDE_TRACING_TRACING_H_ #define ZEPHYR_INCLUDE_TRACING_TRACING_H_ #include /* Below IDs are used with systemview, not final to the zephyr tracing API */ #define SYS_TRACE_ID_OFFSET (32u) #define SYS_TRACE_ID_MUTEX_INIT (1u + SYS_TRACE_ID_OFFSET) #define SYS_TRACE_ID_MUTEX_UNLOCK (2u + SYS_TRACE_ID_OFFSET) #define SYS_TRACE_ID_MUTEX_LOCK (3u + SYS_TRACE_ID_OFFSET) #define SYS_TRACE_ID_SEMA_INIT (4u + SYS_TRACE_ID_OFFSET) #define SYS_TRACE_ID_SEMA_GIVE (5u + SYS_TRACE_ID_OFFSET) #define SYS_TRACE_ID_SEMA_TAKE (6u + SYS_TRACE_ID_OFFSET) #define SYS_TRACE_ID_SLEEP (7u + SYS_TRACE_ID_OFFSET) #ifdef CONFIG_SEGGER_SYSTEMVIEW #include "tracing_sysview.h" #elif defined CONFIG_TRACING_CTF #include "tracing_ctf.h" #elif defined CONFIG_TRACING_TEST #include "tracing_test.h" #else /** * @brief Tracing APIs * @defgroup tracing_apis Tracing APIs * @{ */ /** * @brief Called before a thread has been selected to run */ #define sys_trace_thread_switched_out() /** * @brief Called after a thread has been selected to run */ #define sys_trace_thread_switched_in() /** * @brief Called when setting priority of a thread * @param thread Thread structure */ #define sys_trace_thread_priority_set(thread) /** * @brief Called when a thread is being created * @param thread Thread structure */ #define sys_trace_thread_create(thread) /** * @brief Called when a thread is being aborted * @param thread Thread structure * */ #define sys_trace_thread_abort(thread) /** * @brief Called when a thread is being suspended * @param thread Thread structure */ #define sys_trace_thread_suspend(thread) /** * @brief Called when a thread is being resumed from suspension * @param thread Thread structure */ #define sys_trace_thread_resume(thread) /** * @brief Called when a thread is ready to run * @param thread Thread structure */ #define sys_trace_thread_ready(thread) /** * @brief Called when a thread is pending * @param thread Thread structure */ #define sys_trace_thread_pend(thread) /** * @brief Provide information about specific thread * @param thread Thread structure */ #define sys_trace_thread_info(thread) /** * @brief Called when a thread name is set * @param thread Thread structure */ #define sys_trace_thread_name_set(thread) /** * @brief Called when entering an ISR */ #define sys_trace_isr_enter() /** * @brief Called when exiting an ISR */ #define sys_trace_isr_exit() /** * @brief Called when exiting an ISR and switching to scheduler */ #define sys_trace_isr_exit_to_scheduler() /** * @brief Can be called with any id signifying a new call * @param id ID of the operation that was started */ #define sys_trace_void(id) /** * @brief Can be called with any id signifying ending a call * @param id ID of the operation that was completed */ #define sys_trace_end_call(id) /** * @brief Called when the cpu enters the idle state */ #define sys_trace_idle() /** * @brief Trace initialisation of a Semaphore * @param sem Semaphore object */ #define sys_trace_semaphore_init(sem) /** * @brief Trace taking a Semaphore * @param sem Semaphore object */ #define sys_trace_semaphore_take(sem) /** * @brief Trace giving a Semaphore * @param sem Semaphore object */ #define sys_trace_semaphore_give(sem) /** * @brief Trace initialisation of a Mutex * @param mutex Mutex object */ #define sys_trace_mutex_init(mutex) /** * @brief Trace locking a Mutex * @param mutex Mutex object */ #define sys_trace_mutex_lock(mutex) /** * @brief Trace unlocking a Mutex * @param mutex Mutex object */ #define sys_trace_mutex_unlock(mutex) /** * @} */ #endif #endif