/* * Copyright (c) 2021 IoT.bzh * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #include #include uint8_t ram_tracing[CONFIG_RAM_TRACING_BUFFER_SIZE]; static uint32_t pos; static bool buffer_full; static void tracing_backend_ram_output( const struct tracing_backend *backend, uint8_t *data, uint32_t length) { if (buffer_full) { return; } if ((pos + length) > CONFIG_RAM_TRACING_BUFFER_SIZE) { buffer_full = true; return; } memcpy(ram_tracing + pos, data, length); pos += length; } static void tracing_backend_ram_init(void) { memset(ram_tracing, 0, CONFIG_RAM_TRACING_BUFFER_SIZE); pos = 0; buffer_full = false; } const struct tracing_backend_api tracing_backend_ram_api = { .init = tracing_backend_ram_init, .output = tracing_backend_ram_output }; TRACING_BACKEND_DEFINE(tracing_backend_ram, tracing_backend_ram_api);