Zephyr Project API  3.3.0
A Scalable Open Source RTOS
log_core.h File Reference
#include <zephyr/logging/log_msg.h>
#include <zephyr/logging/log_instance.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdarg.h>
#include <zephyr/sys/util.h>

Go to the source code of this file.

Macros

#define LOG_LEVEL_NONE   0U
 
#define LOG_LEVEL_ERR   1U
 
#define LOG_LEVEL_WRN   2U
 
#define LOG_LEVEL_INF   3U
 
#define LOG_LEVEL_DBG   4U
 
#define CONFIG_LOG_DEFAULT_LEVEL   0U
 
#define CONFIG_LOG_MAX_LEVEL   0U
 
#define LOG_FUNCTION_PREFIX_MASK
 
#define LOG_CURRENT_MODULE_ID()
 Macro for getting ID of current module. More...
 
#define LOG_LEVEL_BITS   3U
 Number of bits used to encode log level. More...
 
#define LOG_FILTER_SLOT_SIZE   LOG_LEVEL_BITS
 Filter slot size. More...
 
#define LOG_FILTERS_NUM_OF_SLOTS   (32 / LOG_FILTER_SLOT_SIZE)
 Number of slots in one word. More...
 
#define LOG_FILTER_SLOT_MASK   (BIT(LOG_FILTER_SLOT_SIZE) - 1U)
 Slot mask. More...
 
#define LOG_FILTER_SLOT_SHIFT(_id)   (LOG_FILTER_SLOT_SIZE * (_id))
 Bit offset of a slot. More...
 
#define LOG_FILTER_SLOT_GET(_filters, _id)    ((*(_filters) >> LOG_FILTER_SLOT_SHIFT(_id)) & LOG_FILTER_SLOT_MASK)
 
#define LOG_FILTER_SLOT_SET(_filters, _id, _filter)
 
#define LOG_FILTER_AGGR_SLOT_IDX   0
 
#define LOG_FILTER_AGGR_SLOT_GET(_filters)    LOG_FILTER_SLOT_GET(_filters, LOG_FILTER_AGGR_SLOT_IDX)
 
#define LOG_FILTER_FIRST_BACKEND_SLOT_IDX   1
 
#define LOG_LEVEL_INTERNAL_RAW_STRING   LOG_LEVEL_NONE
 Log level value used to indicate log entry that should not be formatted (raw string). More...
 
#define LOG_ITEM_DYNAMIC_DATA(_name)   UTIL_CAT(log_dynamic_, _name)
 Creates name of variable and section for runtime log data. More...
 
#define LOG_INSTANCE_DYNAMIC_DATA(_module_name, _inst)    LOG_ITEM_DYNAMIC_DATA(Z_LOG_INSTANCE_FULL_NAME(_module_name, _inst))
 

Functions

static uint32_t log_const_source_id (const struct log_source_const_data *data)
 Get index of the log source based on the address of the constant data associated with the source. More...
 
static uint32_t log_dynamic_source_id (struct log_source_dynamic_data *data)
 Get index of the log source based on the address of the dynamic data associated with the source. More...
 
static void log2_generic (uint8_t level, const char *fmt, va_list ap)
 Writes a generic log message to the logging v2. More...
 

Macro Definition Documentation

◆ CONFIG_LOG_DEFAULT_LEVEL

#define CONFIG_LOG_DEFAULT_LEVEL   0U

◆ CONFIG_LOG_MAX_LEVEL

#define CONFIG_LOG_MAX_LEVEL   0U

◆ LOG_CURRENT_MODULE_ID

#define LOG_CURRENT_MODULE_ID ( )
Value:
(__log_level != 0 ? \
log_const_source_id(__log_current_const_data) : 0U)

Macro for getting ID of current module.

◆ LOG_FILTER_AGGR_SLOT_GET

#define LOG_FILTER_AGGR_SLOT_GET (   _filters)     LOG_FILTER_SLOT_GET(_filters, LOG_FILTER_AGGR_SLOT_IDX)

◆ LOG_FILTER_AGGR_SLOT_IDX

#define LOG_FILTER_AGGR_SLOT_IDX   0

◆ LOG_FILTER_FIRST_BACKEND_SLOT_IDX

#define LOG_FILTER_FIRST_BACKEND_SLOT_IDX   1

◆ LOG_FILTER_SLOT_GET

#define LOG_FILTER_SLOT_GET (   _filters,
  _id 
)     ((*(_filters) >> LOG_FILTER_SLOT_SHIFT(_id)) & LOG_FILTER_SLOT_MASK)

◆ LOG_FILTER_SLOT_MASK

#define LOG_FILTER_SLOT_MASK   (BIT(LOG_FILTER_SLOT_SIZE) - 1U)

Slot mask.

◆ LOG_FILTER_SLOT_SET

#define LOG_FILTER_SLOT_SET (   _filters,
  _id,
  _filter 
)
Value:
do { \
*(_filters) &= ~(LOG_FILTER_SLOT_MASK << \
*(_filters) |= ((_filter) & LOG_FILTER_SLOT_MASK) << \
} while (false)
#define LOG_FILTER_SLOT_SHIFT(_id)
Bit offset of a slot.
Definition: log_core.h:360
#define LOG_FILTER_SLOT_MASK
Slot mask.
Definition: log_core.h:354

◆ LOG_FILTER_SLOT_SHIFT

#define LOG_FILTER_SLOT_SHIFT (   _id)    (LOG_FILTER_SLOT_SIZE * (_id))

Bit offset of a slot.

Parameters
_idSlot ID.

◆ LOG_FILTER_SLOT_SIZE

#define LOG_FILTER_SLOT_SIZE   LOG_LEVEL_BITS

Filter slot size.

◆ LOG_FILTERS_NUM_OF_SLOTS

#define LOG_FILTERS_NUM_OF_SLOTS   (32 / LOG_FILTER_SLOT_SIZE)

Number of slots in one word.

◆ LOG_FUNCTION_PREFIX_MASK

#define LOG_FUNCTION_PREFIX_MASK
Value:
(((uint32_t)IS_ENABLED(CONFIG_LOG_FUNC_NAME_PREFIX_ERR) << \
LOG_LEVEL_ERR) | \
((uint32_t)IS_ENABLED(CONFIG_LOG_FUNC_NAME_PREFIX_WRN) << \
LOG_LEVEL_WRN) | \
((uint32_t)IS_ENABLED(CONFIG_LOG_FUNC_NAME_PREFIX_INF) << \
LOG_LEVEL_INF) | \
((uint32_t)IS_ENABLED(CONFIG_LOG_FUNC_NAME_PREFIX_DBG) << LOG_LEVEL_DBG))
#define IS_ENABLED(config_macro)
Check for macro definition in compiler-visible expressions.
Definition: util_macro.h:121
#define LOG_LEVEL_DBG
Definition: log_core.h:23
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90

◆ LOG_INSTANCE_DYNAMIC_DATA

#define LOG_INSTANCE_DYNAMIC_DATA (   _module_name,
  _inst 
)     LOG_ITEM_DYNAMIC_DATA(Z_LOG_INSTANCE_FULL_NAME(_module_name, _inst))

◆ LOG_ITEM_DYNAMIC_DATA

#define LOG_ITEM_DYNAMIC_DATA (   _name)    UTIL_CAT(log_dynamic_, _name)

Creates name of variable and section for runtime log data.

Parameters
_nameName.

◆ LOG_LEVEL_BITS

#define LOG_LEVEL_BITS   3U

Number of bits used to encode log level.

◆ LOG_LEVEL_DBG

#define LOG_LEVEL_DBG   4U

◆ LOG_LEVEL_ERR

#define LOG_LEVEL_ERR   1U

◆ LOG_LEVEL_INF

#define LOG_LEVEL_INF   3U

◆ LOG_LEVEL_INTERNAL_RAW_STRING

#define LOG_LEVEL_INTERNAL_RAW_STRING   LOG_LEVEL_NONE

Log level value used to indicate log entry that should not be formatted (raw string).

◆ LOG_LEVEL_NONE

#define LOG_LEVEL_NONE   0U

◆ LOG_LEVEL_WRN

#define LOG_LEVEL_WRN   2U

Function Documentation

◆ log2_generic()

static void log2_generic ( uint8_t  level,
const char *  fmt,
va_list  ap 
)
inlinestatic

Writes a generic log message to the logging v2.

Note
This function is intended to be used when porting other log systems.
Parameters
levelLog level..
fmtString to format.
apPointer to arguments list.

◆ log_const_source_id()

static uint32_t log_const_source_id ( const struct log_source_const_data data)
inlinestatic

Get index of the log source based on the address of the constant data associated with the source.

Parameters
dataAddress of the constant data.
Returns
Source ID.

◆ log_dynamic_source_id()

static uint32_t log_dynamic_source_id ( struct log_source_dynamic_data data)
inlinestatic

Get index of the log source based on the address of the dynamic data associated with the source.

Parameters
dataAddress of the dynamic data.
Returns
Source ID.