Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches

Log message API. More...

Data Structures

struct  log_msg_desc
 
union  log_msg_source
 
struct  log_msg_hdr
 
struct  log_msg
 
struct  log_msg_generic_hdr
 
union  log_msg_generic
 

Macros

#define LOG_MSG_GENERIC_HDR
 
#define LOG_MSG_SIMPLE_ARG_CNT_CHECK(...)    COND_CODE_1(UTIL_CAT(_LOG_MSG_SIMPLE_XXXX, NUM_VA_ARGS_LESS_1(__VA_ARGS__)), (1), (0))
 
#define LOG_MSG_SIMPLE_ARG_TYPE_CHECK_0(fmt)   1
 
#define LOG_MSG_SIMPLE_ARG_TYPE_CHECK_1(fmt, arg)   Z_CBPRINTF_IS_WORD_NUM(arg)
 
#define LOG_MSG_SIMPLE_ARG_TYPE_CHECK_2(fmt, arg0, arg1)    Z_CBPRINTF_IS_WORD_NUM(arg0) && Z_CBPRINTF_IS_WORD_NUM(arg1)
 
#define LOG_MSG_SIMPLE_ARG_TYPE_CHECK(...)    UTIL_CAT(LOG_MSG_SIMPLE_ARG_TYPE_CHECK_, NUM_VA_ARGS_LESS_1(__VA_ARGS__))(__VA_ARGS__)
 brief Determine if string arguments types allow to use simplified message creation mode.
 
#define LOG_MSG_SIMPLE_CHECK(...)
 Check if message can be handled using simplified method.
 
#define LOG_MSG_SIMPLE_FUNC(_source, _level, ...)    Z_LOG_MSG_SIMPLE_FUNC2(NUM_VA_ARGS_LESS_1(__VA_ARGS__), _source, _level, __VA_ARGS__)
 Call specific function to create a log message.
 

Functions

static uint32_t log_msg_get_total_wlen (const struct log_msg_desc desc)
 Get total length (in 32 bit words) of a log message.
 
static uint32_t log_msg_generic_get_wlen (const union mpsc_pbuf_generic *item)
 Get length of the log item.
 
static uint8_t log_msg_get_domain (struct log_msg *msg)
 Get log message domain ID.
 
static uint8_t log_msg_get_level (struct log_msg *msg)
 Get log message level.
 
static const void * log_msg_get_source (struct log_msg *msg)
 Get message source data.
 
int16_t log_msg_get_source_id (struct log_msg *msg)
 Get log message source ID.
 
static log_timestamp_t log_msg_get_timestamp (struct log_msg *msg)
 Get timestamp.
 
static void * log_msg_get_tid (struct log_msg *msg)
 Get Thread ID.
 
static uint8_tlog_msg_get_data (struct log_msg *msg, size_t *len)
 Get data buffer.
 
static uint8_tlog_msg_get_package (struct log_msg *msg, size_t *len)
 Get string package.
 

Detailed Description

Log message API.

Macro Definition Documentation

◆ LOG_MSG_GENERIC_HDR

#define LOG_MSG_GENERIC_HDR

#include <include/zephyr/logging/log_msg.h>

Value:
uint32_t type:1
#define MPSC_PBUF_HDR
Header that must be added to the first word in each packet.
Definition mpsc_packet.h:32
__UINT32_TYPE__ uint32_t
Definition stdint.h:90

◆ LOG_MSG_SIMPLE_ARG_CNT_CHECK

#define LOG_MSG_SIMPLE_ARG_CNT_CHECK (   ...)     COND_CODE_1(UTIL_CAT(_LOG_MSG_SIMPLE_XXXX, NUM_VA_ARGS_LESS_1(__VA_ARGS__)), (1), (0))

◆ LOG_MSG_SIMPLE_ARG_TYPE_CHECK

#define LOG_MSG_SIMPLE_ARG_TYPE_CHECK (   ...)     UTIL_CAT(LOG_MSG_SIMPLE_ARG_TYPE_CHECK_, NUM_VA_ARGS_LESS_1(__VA_ARGS__))(__VA_ARGS__)

#include <include/zephyr/logging/log_msg.h>

brief Determine if string arguments types allow to use simplified message creation mode.

Parameters
...String with arguments.

◆ LOG_MSG_SIMPLE_ARG_TYPE_CHECK_0

#define LOG_MSG_SIMPLE_ARG_TYPE_CHECK_0 (   fmt)    1

◆ LOG_MSG_SIMPLE_ARG_TYPE_CHECK_1

#define LOG_MSG_SIMPLE_ARG_TYPE_CHECK_1 (   fmt,
  arg 
)    Z_CBPRINTF_IS_WORD_NUM(arg)

◆ LOG_MSG_SIMPLE_ARG_TYPE_CHECK_2

#define LOG_MSG_SIMPLE_ARG_TYPE_CHECK_2 (   fmt,
  arg0,
  arg1 
)     Z_CBPRINTF_IS_WORD_NUM(arg0) && Z_CBPRINTF_IS_WORD_NUM(arg1)

◆ LOG_MSG_SIMPLE_CHECK

#define LOG_MSG_SIMPLE_CHECK (   ...)

#include <include/zephyr/logging/log_msg.h>

Value:
COND_CODE_1(CONFIG_64BIT, (0), (\
LOG_MSG_SIMPLE_ARG_TYPE_CHECK(__VA_ARGS__)), (0))))
#define LOG_MSG_SIMPLE_ARG_CNT_CHECK(...)
Definition log_msg.h:237
#define LOG_MSG_SIMPLE_ARG_TYPE_CHECK(...)
brief Determine if string arguments types allow to use simplified message creation mode.
Definition log_msg.h:250
#define COND_CODE_1(_flag, _if_1_code, _else_code)
Insert code depending on whether _flag expands to 1 or not.
Definition util_macro.h:179

Check if message can be handled using simplified method.

Following conditions must be met:

  • 32 bit platform
  • Number of arguments from 0 to 2
  • Type of an argument must be a numeric value that fits in 32 bit word.
Parameters
...String with arguments.
Return values
1if message qualifies.
0if message does not qualify.

◆ LOG_MSG_SIMPLE_FUNC

#define LOG_MSG_SIMPLE_FUNC (   _source,
  _level,
  ... 
)     Z_LOG_MSG_SIMPLE_FUNC2(NUM_VA_ARGS_LESS_1(__VA_ARGS__), _source, _level, __VA_ARGS__)

#include <include/zephyr/logging/log_msg.h>

Call specific function to create a log message.

Macro picks matching function (based on number of arguments) and calls it. String arguments are casted to uint32_t.

Parameters
_sourceSource.
_levelSeverity level.
...String with arguments.

Function Documentation

◆ log_msg_generic_get_wlen()

static uint32_t log_msg_generic_get_wlen ( const union mpsc_pbuf_generic item)
inlinestatic

#include <include/zephyr/logging/log_msg.h>

Get length of the log item.

Parameters
itemItem.
Returns
Length in 32 bit words.

◆ log_msg_get_data()

static uint8_t * log_msg_get_data ( struct log_msg msg,
size_t len 
)
inlinestatic

#include <include/zephyr/logging/log_msg.h>

Get data buffer.

Parameters
msglog message.
lenlocation where data length is written.
Returns
pointer to the data buffer.

◆ log_msg_get_domain()

static uint8_t log_msg_get_domain ( struct log_msg msg)
inlinestatic

#include <include/zephyr/logging/log_msg.h>

Get log message domain ID.

Parameters
msgLog message.
Returns
Domain ID

◆ log_msg_get_level()

static uint8_t log_msg_get_level ( struct log_msg msg)
inlinestatic

#include <include/zephyr/logging/log_msg.h>

Get log message level.

Parameters
msgLog message.
Returns
Log level.

◆ log_msg_get_package()

static uint8_t * log_msg_get_package ( struct log_msg msg,
size_t len 
)
inlinestatic

#include <include/zephyr/logging/log_msg.h>

Get string package.

Parameters
msglog message.
lenlocation where string package length is written.
Returns
pointer to the package.

◆ log_msg_get_source()

static const void * log_msg_get_source ( struct log_msg msg)
inlinestatic

#include <include/zephyr/logging/log_msg.h>

Get message source data.

Parameters
msgLog message.
Returns
Pointer to the source data.

◆ log_msg_get_source_id()

int16_t log_msg_get_source_id ( struct log_msg msg)

#include <include/zephyr/logging/log_msg.h>

Get log message source ID.

Parameters
msgLog message.
Returns
Source ID, or -1 if not available.

◆ log_msg_get_tid()

static void * log_msg_get_tid ( struct log_msg msg)
inlinestatic

#include <include/zephyr/logging/log_msg.h>

Get Thread ID.

Parameters
msgLog message.
Returns
Thread ID.

◆ log_msg_get_timestamp()

static log_timestamp_t log_msg_get_timestamp ( struct log_msg msg)
inlinestatic

#include <include/zephyr/logging/log_msg.h>

Get timestamp.

Parameters
msgLog message.
Returns
Timestamp.

◆ log_msg_get_total_wlen()

static uint32_t log_msg_get_total_wlen ( const struct log_msg_desc  desc)
inlinestatic

#include <include/zephyr/logging/log_msg.h>

Get total length (in 32 bit words) of a log message.

Parameters
descLog message descriptor.
Returns
Length.