6#ifndef ZEPHYR_INCLUDE_LOGGING_LOG_BACKEND_H_ 
    7#define ZEPHYR_INCLUDE_LOGGING_LOG_BACKEND_H_ 
  109#define LOG_BACKEND_DEFINE(_name, _api, _autostart, ...)                       \ 
  110        static struct log_backend_control_block UTIL_CAT(backend_cb_, _name) = \ 
  112                COND_CODE_0(NUM_VA_ARGS_LESS_1(_, ##__VA_ARGS__),              \ 
  113                                (), (.ctx = __VA_ARGS__,))                     \ 
  117        static const STRUCT_SECTION_ITERABLE(log_backend, _name) =             \ 
  120                .cb = &UTIL_CAT(backend_cb_, _name),                           \ 
  121                .name = STRINGIFY(_name),                                      \ 
  122                .autostart = _autostart                                        \ 
  138        __ASSERT_NO_MSG(backend != NULL);
 
  157        __ASSERT_NO_MSG(backend != NULL);
 
  177        __ASSERT_NO_MSG(backend != NULL);
 
  178        __ASSERT_NO_MSG(
msg != NULL);
 
  193        __ASSERT_NO_MSG(backend != NULL);
 
  207        __ASSERT_NO_MSG(backend != NULL);
 
  222        __ASSERT_NO_MSG(backend != NULL);
 
  236        __ASSERT_NO_MSG(backend != NULL);
 
  237        return backend->
cb->
id;
 
  279        __ASSERT_NO_MSG(backend != NULL);
 
  280        backend->
cb->
ctx = ctx;
 
  292        __ASSERT_NO_MSG(backend != NULL);
 
  306        __ASSERT_NO_MSG(backend != NULL);
 
  321        extern size_t log_format_table_size(
void);
 
  323        if ((
size_t)log_type >= log_format_table_size()) {
 
  331        if (backend == NULL) {
 
  353        __ASSERT_NO_MSG(backend != NULL);
 
  356                backend->
api->
notify(backend, event, arg);
 
#define STRUCT_SECTION_GET(struct_type, i, dst)
Get element from section.
Definition: common.h:261
 
#define STRUCT_SECTION_COUNT(struct_type, dst)
Count elements in a section.
Definition: common.h:272
 
static void log_backend_init(const struct log_backend *const backend)
Initialize or initiate the logging backend.
Definition: log_backend.h:136
 
log_backend_evt
Backend events.
Definition: log_backend.h:33
 
static void log_backend_deactivate(const struct log_backend *const backend)
Deactivate backend.
Definition: log_backend.h:289
 
static void log_backend_msg_process(const struct log_backend *const backend, union log_msg_generic *msg)
Process message.
Definition: log_backend.h:174
 
static void log_backend_activate(const struct log_backend *const backend, void *ctx)
Activate backend.
Definition: log_backend.h:276
 
static bool log_backend_is_active(const struct log_backend *const backend)
Check state of the backend.
Definition: log_backend.h:303
 
static void log_backend_id_set(const struct log_backend *const backend, uint8_t id)
Set backend id.
Definition: log_backend.h:219
 
static void log_backend_dropped(const struct log_backend *const backend, uint32_t cnt)
Notify backend about dropped log messages.
Definition: log_backend.h:190
 
static int log_backend_format_set(const struct log_backend *backend, uint32_t log_type)
Set logging format.
Definition: log_backend.h:319
 
static int log_backend_count_get(void)
Get number of backends.
Definition: log_backend.h:261
 
static void log_backend_panic(const struct log_backend *const backend)
Reconfigure backend to panic mode.
Definition: log_backend.h:205
 
static uint8_t log_backend_id_get(const struct log_backend *const backend)
Get backend id.
Definition: log_backend.h:234
 
static void log_backend_notify(const struct log_backend *const backend, enum log_backend_evt event, union log_backend_evt_arg *arg)
Notify a backend of an event.
Definition: log_backend.h:349
 
static const struct log_backend * log_backend_get(uint32_t idx)
Get backend.
Definition: log_backend.h:247
 
static int log_backend_is_ready(const struct log_backend *const backend)
Poll for backend readiness.
Definition: log_backend.h:155
 
@ LOG_BACKEND_EVT_PROCESS_THREAD_DONE
Event when process thread finishes processing.
Definition: log_backend.h:45
 
@ LOG_BACKEND_EVT_MAX
Maximum number of backend events.
Definition: log_backend.h:48
 
log_format_func_t log_format_func_t_get(uint32_t log_type)
Declaration of the get routine for function pointer table format_table.
 
#define EINVAL
Definition: errno.h:61
 
#define ENOTSUP
Definition: errno.h:115
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
Logger backend API.
Definition: log_backend.h:62
 
void(* panic)(const struct log_backend *const backend)
Definition: log_backend.h:67
 
void(* process)(const struct log_backend *const backend, union log_msg_generic *msg)
Definition: log_backend.h:63
 
void(* notify)(const struct log_backend *const backend, enum log_backend_evt event, union log_backend_evt_arg *arg)
Definition: log_backend.h:73
 
void(* dropped)(const struct log_backend *const backend, uint32_t cnt)
Definition: log_backend.h:66
 
int(* is_ready)(const struct log_backend *const backend)
Definition: log_backend.h:69
 
void(* init)(const struct log_backend *const backend)
Definition: log_backend.h:68
 
int(* format_set)(const struct log_backend *const backend, uint32_t log_type)
Definition: log_backend.h:70
 
Logger backend control block.
Definition: log_backend.h:81
 
uint8_t id
Definition: log_backend.h:83
 
bool active
Definition: log_backend.h:84
 
uint8_t level
Definition: log_backend.h:87
 
void * ctx
Definition: log_backend.h:82
 
Logger backend structure.
Definition: log_backend.h:93
 
const char * name
Definition: log_backend.h:96
 
const struct log_backend_api * api
Definition: log_backend.h:94
 
struct log_backend_control_block * cb
Definition: log_backend.h:95
 
bool autostart
Definition: log_backend.h:97
 
static void msg(uint64_t c64)
Definition: main.c:17
 
Argument(s) for backend events.
Definition: log_backend.h:54
 
void * raw
Unspecified argument(s).
Definition: log_backend.h:56
 
Definition: log_msg.h:111