Line data Source code
1 0 : /* 2 : * Copyright (c) 2019 Nordic Semiconductor ASA 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : #ifndef LOG_FRONTEND_H_ 7 : #define LOG_FRONTEND_H_ 8 : 9 : #include <zephyr/logging/log_core.h> 10 : 11 : /** @brief Initialize frontend. 12 : */ 13 1 : void log_frontend_init(void); 14 : 15 : /** @brief Log generic message. 16 : * 17 : * Message details does not contain timestamp. Since function is called in the 18 : * context of log message call, implementation can use its own timestamping scheme. 19 : * 20 : * @param source Pointer to a structure associated with given source. It points to 21 : * static structure or dynamic structure if runtime filtering is enabled. 22 : * @ref log_const_source_id or @ref log_dynamic_source_id can be used to determine 23 : * source id. 24 : * 25 : * @param desc Message descriptor. 26 : * 27 : * @param package Cbprintf package containing logging formatted string. Length s in @p desc. 28 : * 29 : * @param data Hexdump data. Length is in @p desc. 30 : */ 31 1 : void log_frontend_msg(const void *source, 32 : const struct log_msg_desc desc, 33 : uint8_t *package, const void *data); 34 : 35 : /** @brief Log message with 0 arguments. 36 : * 37 : * Optimized version for log message which does not have arguments (only string). 38 : * This API is optional and is used only if optimizing common log messages is enabled. 39 : * 40 : * @param source Pointer to a structure associated with given source. It points to 41 : * static structure or dynamic structure if runtime filtering is enabled. 42 : * @ref log_const_source_id or @ref log_dynamic_source_id can be used to determine 43 : * source id. 44 : * @param level Severity level. 45 : * @param fmt String. 46 : */ 47 1 : void log_frontend_simple_0(const void *source, uint32_t level, const char *fmt); 48 : 49 : /** @brief Log message with 1 argument. 50 : * 51 : * Optimized version for log message which has one argument that fits in a 32 bit word. 52 : * This API is optional and is used only if optimizing common log messages is enabled. 53 : * 54 : * @param source Pointer to a structure associated with given source. It points to 55 : * static structure or dynamic structure if runtime filtering is enabled. 56 : * @ref log_const_source_id or @ref log_dynamic_source_id can be used to determine 57 : * source id. 58 : * @param level Severity level. 59 : * @param fmt String. 60 : * @param arg Argument passed to the string. 61 : */ 62 1 : void log_frontend_simple_1(const void *source, uint32_t level, const char *fmt, uint32_t arg); 63 : 64 : /** @brief Log message with 2 arguments. 65 : * 66 : * Optimized version for log message which has two arguments that fit in a 32 bit word. 67 : * This API is optional and is used only if optimizing common log messages is enabled. 68 : * 69 : * @param source Pointer to a structure associated with given source. It points to 70 : * static structure or dynamic structure if runtime filtering is enabled. 71 : * @ref log_const_source_id or @ref log_dynamic_source_id can be used to determine 72 : * source id. 73 : * @param level Severity level. 74 : * @param fmt String. 75 : * @param arg0 First argument passed to the string. 76 : * @param arg1 Second argument passed to the string. 77 : */ 78 1 : void log_frontend_simple_2(const void *source, uint32_t level, 79 : const char *fmt, uint32_t arg0, uint32_t arg1); 80 : 81 : /** @brief Panic state notification. */ 82 1 : void log_frontend_panic(void); 83 : 84 : #endif /* LOG_FRONTEND_H_ */