Zephyr Project API  3.3.0
A Scalable Open Source RTOS
log_multidomain_helper.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_LOGGING_LOG_MULTIDOMAIN_HELPER_H_
8#define ZEPHYR_INCLUDE_LOGGING_LOG_MULTIDOMAIN_HELPER_H_
9
10/* This module aims to provide baseline for links and backends and simplify
11 * the implementation. It is not core part of logging in similar way as
12 * log_output module is just a helper for log message formatting. Links and
13 * backends can be implemented without this helper.
14 */
15
21#define Z_LOG_MULTIDOMAIN_ID_MSG 0
22
24#define Z_LOG_MULTIDOMAIN_ID_GET_DOMAIN_CNT 1
25
27#define Z_LOG_MULTIDOMAIN_ID_GET_SOURCE_CNT 2
28
30#define Z_LOG_MULTIDOMAIN_ID_GET_DOMAIN_NAME 3
31
33#define Z_LOG_MULTIDOMAIN_ID_GET_SOURCE_NAME 4
34
36#define Z_LOG_MULTIDOMAIN_ID_GET_LEVELS 5
37
39#define Z_LOG_MULTIDOMAIN_ID_SET_RUNTIME_LEVEL 6
40
42#define Z_LOG_MULTIDOMAIN_ID_DROPPED 7
43
45#define Z_LOG_MULTIDOMAIN_ID_READY 8
46
54#define Z_LOG_MULTIDOMAIN_STATUS_OK 0
56#define Z_LOG_MULTIDOMAIN_STATUS_ERR 1
57
63} __packed;
64
68} __packed;
69
74} __packed;
75
79 char name[0];
80} __packed;
81
86 char name[0];
87} __packed;
88
95} __packed;
96
102} __packed;
103
107} __packed;
108
119};
120
126} __packed;
127
130
134 int (*send)(struct log_multidomain_link *link, void *data, size_t len);
135};
136
140
141 struct {
142 char *dst;
143 size_t *len;
145
146 struct {
150
151 struct {
154};
155
158
162 struct k_sem rdy_sem;
163 const struct log_link *link;
166 bool ready;
167};
168
171
174 int (*init)(struct log_multidomain_backend *backend);
175 int (*send)(struct log_multidomain_backend *backend, void *data, size_t len);
176};
177
180
185 struct k_sem rdy_sem;
186 bool panic;
188 bool ready;
189};
190
198 const void *data, size_t len);
199
206
213
221 const void *data, size_t len);
222
229
236
237#endif /* ZEPHYR_INCLUDE_LOGGING_LOG_MULTIDOMAIN_HELPER_H_ */
void log_multidomain_backend_on_error(struct log_multidomain_backend *backend, int err)
Function called on error reported by transport layer.
void log_multidomain_backend_on_recv_cb(struct log_multidomain_backend *backend, const void *data, size_t len)
Function to be called when data is received from remote.
struct log_link_api log_multidomain_link_api
Remote link API.
void log_multidomain_link_on_recv_cb(struct log_multidomain_link *link, const void *data, size_t len)
Function to be called when data is received from remote.
const struct log_backend_api log_multidomain_backend_api
Remote backend API.
void log_multidomain_link_on_started(struct log_multidomain_link *link, int err)
Function called when connection with remote is established.
void log_multidomain_backend_on_started(struct log_multidomain_backend *backend, int err)
Function called when connection with remote is established.
void log_multidomain_link_on_error(struct log_multidomain_link *link, int err)
Function called on error reported by transport layer.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Logger backend API.
Definition: log_backend.h:62
Logger backend structure.
Definition: log_backend.h:93
Definition: log_msg.h:88
Backend transport API.
Definition: log_multidomain_helper.h:173
int(* send)(struct log_multidomain_backend *backend, void *data, size_t len)
Definition: log_multidomain_helper.h:175
int(* init)(struct log_multidomain_backend *backend)
Definition: log_multidomain_helper.h:174
Remote backend structure.
Definition: log_multidomain_helper.h:182
const struct log_multidomain_backend_transport_api * transport_api
Definition: log_multidomain_helper.h:183
bool panic
Definition: log_multidomain_helper.h:186
int status
Definition: log_multidomain_helper.h:187
struct k_sem rdy_sem
Definition: log_multidomain_helper.h:185
const struct log_backend * log_backend
Definition: log_multidomain_helper.h:184
bool ready
Definition: log_multidomain_helper.h:188
Content of the domain count message.
Definition: log_multidomain_helper.h:66
uint16_t count
Definition: log_multidomain_helper.h:67
Content of the domain name message.
Definition: log_multidomain_helper.h:77
char name[0]
Definition: log_multidomain_helper.h:79
uint8_t domain_id
Definition: log_multidomain_helper.h:78
Content of the message for getting amount of dropped messages.
Definition: log_multidomain_helper.h:105
uint32_t dropped
Definition: log_multidomain_helper.h:106
Content of the message for getting logging levels.
Definition: log_multidomain_helper.h:90
uint16_t source_id
Definition: log_multidomain_helper.h:92
uint8_t runtime_level
Definition: log_multidomain_helper.h:94
uint8_t domain_id
Definition: log_multidomain_helper.h:91
uint8_t level
Definition: log_multidomain_helper.h:93
Content of the logging message.
Definition: log_multidomain_helper.h:61
uint8_t data[0]
Definition: log_multidomain_helper.h:62
Message.
Definition: log_multidomain_helper.h:122
uint8_t status
Definition: log_multidomain_helper.h:124
union log_multidomain_msg_data data
Definition: log_multidomain_helper.h:125
uint8_t id
Definition: log_multidomain_helper.h:123
Content of the message for setting logging level.
Definition: log_multidomain_helper.h:98
uint16_t source_id
Definition: log_multidomain_helper.h:100
uint8_t runtime_level
Definition: log_multidomain_helper.h:101
uint8_t domain_id
Definition: log_multidomain_helper.h:99
Content of the source count message.
Definition: log_multidomain_helper.h:71
uint8_t domain_id
Definition: log_multidomain_helper.h:72
uint16_t count
Definition: log_multidomain_helper.h:73
Content of the source name message.
Definition: log_multidomain_helper.h:83
uint8_t domain_id
Definition: log_multidomain_helper.h:84
uint16_t source_id
Definition: log_multidomain_helper.h:85
char name[0]
Definition: log_multidomain_helper.h:86
static fdata_t data[2]
Definition: test_fifo_contexts.c:15
Union with all message types.
Definition: log_multidomain_helper.h:110
struct log_multidomain_source_cnt source_cnt
Definition: log_multidomain_helper.h:113
struct log_multidomain_domain_cnt domain_cnt
Definition: log_multidomain_helper.h:112
struct log_multidomain_source_name source_name
Definition: log_multidomain_helper.h:115
struct log_multidomain_domain_name domain_name
Definition: log_multidomain_helper.h:114
struct log_multidomain_dropped dropped
Definition: log_multidomain_helper.h:118
struct log_multidomain_levels levels
Definition: log_multidomain_helper.h:116
struct log_multidomain_set_runtime_level set_rt_level
Definition: log_multidomain_helper.h:117