LCOV - code coverage report
Current view: top level - zephyr/tracing - tracing_format.h Coverage Total Hit
Test: new.info Lines: 72.7 % 11 8
Test Date: 2025-09-05 20:47:19

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2019 Intel corporation
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : #ifndef ZEPHYR_INCLUDE_TRACING_TRACING_FORMAT_H
       8              : #define ZEPHYR_INCLUDE_TRACING_TRACING_FORMAT_H
       9              : 
      10              : #include <zephyr/toolchain/common.h>
      11              : 
      12              : #ifdef __cplusplus
      13              : extern "C" {
      14              : #endif
      15              : 
      16              : /**
      17              :  * @brief Tracing format APIs
      18              :  * @defgroup subsys_tracing_format_apis Tracing format APIs
      19              :  * @ingroup subsys_tracing
      20              :  * @{
      21              :  */
      22              : 
      23              : /** @brief A structure to represent tracing data format. */
      24            1 : typedef struct tracing_data {
      25            0 :         uint8_t *data;
      26            0 :         uint32_t length;
      27            1 : } __packed tracing_data_t;
      28              : 
      29              : /**
      30              :  * @brief Macro to trace a message in string format.
      31              :  *
      32              :  * @param fmt The format string.
      33              :  * @param ... The format arguments.
      34              :  */
      35            1 : #define TRACING_STRING(fmt, ...)                                               \
      36              :         do {                                                                   \
      37              :                 tracing_format_string(fmt, ##__VA_ARGS__);                     \
      38              :         } while (false)
      39              : 
      40              : /**
      41              :  * @brief Macro to format data to tracing data format.
      42              :  *
      43              :  * @param x Data field.
      44              :  */
      45            1 : #define TRACING_FORMAT_DATA(x)                                                 \
      46              :         ((struct tracing_data){.data = (uint8_t *)&(x), .length = sizeof((x))})
      47              : 
      48              : /**
      49              :  * @brief Macro to trace a message in tracing data format.
      50              :  *
      51              :  * All the parameters should be struct tracing_data.
      52              :  */
      53            1 : #define TRACING_DATA(...)                                                      \
      54              :         do {                                                                   \
      55              :                 struct tracing_data arg[] = {__VA_ARGS__};                     \
      56              :                                                                                \
      57              :                 tracing_format_data(arg, sizeof(arg) /                         \
      58              :                                     sizeof(struct tracing_data));              \
      59              :         } while (false)
      60              : 
      61              : /**
      62              :  * @brief Tracing a message in string format.
      63              :  *
      64              :  * @param str String to format.
      65              :  * @param ... Variable length arguments.
      66              :  */
      67            1 : void tracing_format_string(const char *str, ...);
      68              : 
      69              : /**
      70              :  * @brief Tracing a message in raw data format.
      71              :  *
      72              :  * @param data   Raw data to be traced.
      73              :  * @param length Raw data length.
      74              :  */
      75            1 : void tracing_format_raw_data(uint8_t *data, uint32_t length);
      76              : 
      77              : /**
      78              :  * @brief Tracing a message in tracing data format.
      79              :  *
      80              :  * @param tracing_data_array Tracing_data format data array to be traced.
      81              :  * @param count Tracing_data array data count.
      82              :  */
      83            1 : void tracing_format_data(tracing_data_t *tracing_data_array, uint32_t count);
      84              : 
      85              : /** @} */ /* end of subsys_tracing_format_apis */
      86              : 
      87              : #ifdef __cplusplus
      88              : }
      89              : #endif
      90              : 
      91              : #endif /* ZEPHYR_INCLUDE_TRACING_TRACING_FORMAT_H */
        

Generated by: LCOV version 2.0-1