46 lines
941 B
C
46 lines
941 B
C
|
/*
|
||
|
* 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);
|