123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*
- * Copyright (c) 2021 IoT.bzh
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #include <ctype.h>
- #include <kernel.h>
- #include <string.h>
- #include <tracing_core.h>
- #include <tracing_buffer.h>
- #include <tracing_backend.h>
- 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);
- }
- 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);
|