blob: b4b1da181e7606cd0b24aeeff8c56da5c2799e92 [file] [log] [blame]
/*
* Copyright (c) 2021 Nordic Semiconductor
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "mock_log_link.h"
#include <string.h>
static int initiate(const struct log_link *link, struct log_link_config *configa)
{
struct mock_log_link *mock = (struct mock_log_link *)link->ctx;
link->ctrl_blk->domain_cnt = mock->domain_cnt;
for (int i = 0; i < mock->domain_cnt; i++) {
link->ctrl_blk->source_cnt[i] = mock->domains[i]->source_cnt;
}
return 0;
}
static int activate(const struct log_link *link)
{
return 0;
}
static int get_domain_name(const struct log_link *link, uint32_t domain_id,
char *buf, size_t *length)
{
struct mock_log_link *mock = (struct mock_log_link *)link->ctx;
*length = strlen(mock->domains[domain_id]->name);
if (buf) {
strncpy(buf, mock->domains[domain_id]->name, *length);
}
return 0;
}
static int get_source_name(const struct log_link *link, uint32_t domain_id,
uint16_t source_id, char *buf, size_t *length)
{
struct mock_log_link *mock = (struct mock_log_link *)link->ctx;
strncpy(buf, mock->domains[domain_id]->sources[source_id].source,
*length);
*length = strlen(mock->domains[domain_id]->sources[source_id].source);
return 0;
}
static int get_levels(const struct log_link *link, uint32_t domain_id,
uint16_t source_id, uint8_t *level, uint8_t *runtime_level)
{
struct mock_log_link *mock = (struct mock_log_link *)link->ctx;
*level = mock->domains[domain_id]->sources[source_id].clevel;
if (runtime_level) {
*runtime_level = mock->domains[domain_id]->sources[source_id].rlevel;
}
return 0;
}
static int set_runtime_level(const struct log_link *link, uint32_t domain_id,
uint16_t source_id, uint8_t level)
{
struct mock_log_link *mock = (struct mock_log_link *)link->ctx;
mock->domains[domain_id]->sources[source_id].rlevel = level;
return 0;
}
struct log_link_api mock_log_link_api = {
.initiate = initiate,
.activate = activate,
.get_domain_name = get_domain_name,
.get_source_name = get_source_name,
.get_levels = get_levels,
.set_runtime_level = set_runtime_level,
};