123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- /*
- * Copyright (c) 2019 Intel corporation
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #ifndef _TRACE_BUFFER_H
- #define _TRACE_BUFFER_H
- #include <stdbool.h>
- #include <zephyr/types.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * @brief Initialize tracing buffer.
- */
- void tracing_buffer_init(void);
- /**
- * @brief Tracing buffer is empty or not.
- *
- * @return true if the ring buffer is empty, or false if not.
- */
- bool tracing_buffer_is_empty(void);
- /**
- * @brief Get free space in the tracing buffer.
- *
- * @return Tracing buffer free space (in bytes).
- */
- uint32_t tracing_buffer_space_get(void);
- /**
- * @brief Get tracing buffer capacity (max size).
- *
- * @return Tracing buffer capacity (in bytes).
- */
- uint32_t tracing_buffer_capacity_get(void);
- /**
- * @brief Try to allocate buffer in the tracing buffer.
- *
- * @param data Pointer to the address. It's set to a location
- * within the tracing buffer.
- * @param size Requested buffer size (in bytes).
- *
- * @return Size of allocated buffer which can be smaller than
- * requested if there isn't enough free space or buffer wraps.
- */
- uint32_t tracing_buffer_put_claim(uint8_t **data, uint32_t size);
- /**
- * @brief Indicate number of bytes written to the allocated buffer.
- *
- * @param size Number of bytes written to the allocated buffer.
- *
- * @retval 0 Successful operation.
- * @retval -EINVAL Given @a size exceeds free space of tracing buffer.
- */
- int tracing_buffer_put_finish(uint32_t size);
- /**
- * @brief Write data to tracing buffer.
- *
- * @param data Address of data.
- * @param size Data size (in bytes).
- *
- * @retval Number of bytes written to tracing buffer.
- */
- uint32_t tracing_buffer_put(uint8_t *data, uint32_t size);
- /**
- * @brief Get address of the first valid data in tracing buffer.
- *
- * @param data Pointer to the address. It's set to a location pointing to
- * the first valid data within the tracing buffer.
- * @param size Requested buffer size (in bytes).
- *
- * @return Size of valid buffer which can be smaller than requested
- * if there isn't enough valid data or buffer wraps.
- */
- uint32_t tracing_buffer_get_claim(uint8_t **data, uint32_t size);
- /**
- * @brief Indicate number of bytes read from claimed buffer.
- *
- * @param size Number of bytes read from claimed buffer.
- *
- * @retval 0 Successful operation.
- * @retval -EINVAL Given @a size exceeds available data of tracing buffer.
- */
- int tracing_buffer_get_finish(uint32_t size);
- /**
- * @brief Read data from tracing buffer to output buffer.
- *
- * @param data Address of the output buffer.
- * @param size Data size (in bytes).
- *
- * @retval Number of bytes written to the output buffer.
- */
- uint32_t tracing_buffer_get(uint8_t *data, uint32_t size);
- /**
- * @brief Get buffer from tracing command buffer.
- *
- * @param data Pointer to tracing command buffer start address.
- *
- * @return Tracing command buffer size (in bytes).
- */
- uint32_t tracing_cmd_buffer_alloc(uint8_t **data);
- #ifdef __cplusplus
- }
- #endif
- #endif
|