/* * Copyright (c) 2021 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_INCLUDE_LOGGING_LOG_INTERNAL_H_ #define ZEPHYR_INCLUDE_LOGGING_LOG_INTERNAL_H_ #include #include #include #ifdef __cplusplus extern "C" { #endif /* Header contains declarations of functions used internally in the logging, * shared between various portions of logging subsystem. Functions are internal * not intended to be used outside, including logging backends. */ /** @brief Indicate to the log core that one log message has been dropped. */ void z_log_dropped(void); /** @brief Read and clear current drop indications counter. * * @return Dropped count. */ uint32_t z_log_dropped_read_and_clear(void); /** @brief Check if there are any pending drop notifications. * * @retval true Pending unreported drop indications. * @retval false No pending unreported drop indications. */ bool z_log_dropped_pending(void); /** @brief Free allocated buffer. * * @param buf Buffer. */ void z_log_free(void *buf); /* Initialize runtime filters */ void z_log_runtime_filters_init(void); /* Notify log_core that a backend was enabled. */ void z_log_notify_backend_enabled(void); /** @brief Get pointer to the filter set of the log source. * * @param source_id Source ID. * * @return Pointer to the filter set. */ static inline uint32_t *z_log_dynamic_filters_get(uint32_t source_id) { return &__log_dynamic_start[source_id].filters; } /** @brief Get number of registered sources. */ static inline uint32_t z_log_sources_count(void) { return log_const_source_id(__log_const_end); } /** @brief Initialize module for handling logging message. */ void z_log_msg2_init(void); /** @brief Commit log message. * * @param msg Message. */ void z_log_msg2_commit(struct log_msg2 *msg); /** @brief Get pending log message. * * @param[out] len Message length in bytes is written is @p len is not null. * * @param Message or null if no pending messages. */ union log_msg2_generic *z_log_msg2_claim(void); /** @brief Free message. * * @param msg Message. */ void z_log_msg2_free(union log_msg2_generic *msg); /** @brief Check if there are any message pending. * * @retval true if at least one message is pending. * @retval false if no message is pending. */ bool z_log_msg2_pending(void); #ifdef __cplusplus } #endif #endif /* ZEPHYR_INCLUDE_LOGGING_LOG_INTERNAL_H_ */