/* * Copyright (c) 2019 Intel corporation * * SPDX-License-Identifier: Apache-2.0 */ #ifndef _TRACE_CORE_H #define _TRACE_CORE_H #include #include #ifdef __cplusplus extern "C" { #endif #define TRACING_LOCK() { int key; key = irq_lock() #define TRACING_UNLOCK() { irq_unlock(key); } } /** * @brief Check tracing enabled or not. * * @return True if tracing enabled; False if tracing disabled. */ bool is_tracing_enabled(void); /** * @brief Give tracing buffer to backend. * * @param data Tracing buffer address. * @param length Tracing buffer length. */ void tracing_buffer_handle(uint8_t *data, uint32_t length); /** * @brief Handle tracing packet drop. */ void tracing_packet_drop_handle(void); /** * @brief Handle tracing command. * * @param buf Tracing command buffer address. * @param length Tracing command buffer length. */ void tracing_cmd_handle(uint8_t *buf, uint32_t length); /** * @brief Trigger tracing thread to run after every first put. * * @param before_put_is_empty If tracing buffer is empty before this put. */ void tracing_trigger_output(bool before_put_is_empty); /** * @brief Check if we are in tracing thread context. * * @return True if in tracing thread context; False if not. */ bool is_tracing_thread(void); #ifdef __cplusplus } #endif #endif