Zephyr API Documentation 4.0.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
Logging frontend STMESP Demultiplexer API

Data Structures

struct  log_frontend_stmesp_demux_log_header
 Logging message header. More...
 
union  log_frontend_stmesp_demux_header
 Union for writing raw data to the logging message header. More...
 
struct  log_frontend_stmesp_demux_packet_generic
 Generic STP demux packet. More...
 
struct  log_frontend_stmesp_demux_log
 Packet with logging message. More...
 
struct  log_frontend_stmesp_demux_trace_point
 Packet with trace point. More...
 
struct  log_frontend_stmesp_demux_hw_event
 Packet with HW event. More...
 
union  log_frontend_stmesp_demux_packet
 Union of all packet types. More...
 
struct  log_frontend_stmesp_demux_config
 Demultiplexer configuration. More...
 

Macros

#define LOG_FRONTEND_STMESP_DEMUX_MAJOR_BITS   3
 Bits used to store major index.
 
#define LOG_FRONTEND_STMESP_DEMUX_LEVEL_BITS   3
 Bits used to store severity level.
 
#define LOG_FRONTEND_STMESP_DEMUX_TLENGTH_BITS   16
 Bits used to store total length.
 
#define LOG_FRONTEND_STMESP_DEMUX_PLENGTH_BITS   10
 Bits used to store package length.
 
#define LOG_FRONTEND_STMESP_DEMUX_MAJOR_MAX   BIT(LOG_FRONTEND_STMESP_DEMUX_MAJOR_BITS)
 Maximum number of supported majors.
 
#define LOG_FRONTEND_STMESP_DEMUX_TYPE_LOG   0
 Log message type.
 
#define LOG_FRONTEND_STMESP_DEMUX_TYPE_TRACE_POINT   1
 Trace point message type.
 
#define LOG_FRONTEND_STMESP_DEMUX_TYPE_HW_EVENT   2
 HW event message type.
 

Functions

int log_frontend_stmesp_demux_init (const struct log_frontend_stmesp_demux_config *config)
 Initialize the demultiplexer.
 
void log_frontend_stmesp_demux_major (uint16_t id)
 Indicate major opcode in the STPv2 stream.
 
void log_frontend_stmesp_demux_channel (uint16_t id)
 Indicate channel opcode in the STPv2 stream.
 
int log_frontend_stmesp_demux_packet_start (uint32_t *data, uint64_t *ts)
 Indicate detected packet start (DMTS).
 
int log_frontend_stmesp_demux_log0 (uint16_t source_id, uint64_t *ts)
 Indicate optimized log message with no arguments.
 
void log_frontend_stmesp_demux_source_id (uint16_t source_id)
 Indicate source ID.
 
void log_frontend_stmesp_demux_timestamp (uint64_t ts)
 Indicate timestamp.
 
void log_frontend_stmesp_demux_data (uint8_t *data, size_t len)
 Indicate data.
 
void log_frontend_stmesp_demux_packet_end (void)
 Indicate packet end (Flag).
 
uint32_t log_frontend_stmesp_demux_get_dropped (void)
 Get number of dropped messages and reset the counter.
 
union log_frontend_stmesp_demux_packet log_frontend_stmesp_demux_claim (void)
 Claim packet.
 
void log_frontend_stmesp_demux_free (union log_frontend_stmesp_demux_packet packet)
 Free previously claimed packet.
 
const char * log_frontend_stmesp_demux_sname_get (uint32_t m_id, uint16_t s_id)
 Get source name for a turbo log message.
 
bool log_frontend_stmesp_demux_is_idle (void)
 Check if there are any started but not completed log messages.
 
void log_frontend_stmesp_demux_reset (void)
 Close any opened messages and mark them as invalid.
 
int log_frontend_stmesp_demux_max_utilization (void)
 Get maximum buffer utilization.
 

Detailed Description

Macro Definition Documentation

◆ LOG_FRONTEND_STMESP_DEMUX_LEVEL_BITS

#define LOG_FRONTEND_STMESP_DEMUX_LEVEL_BITS   3

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Bits used to store severity level.

◆ LOG_FRONTEND_STMESP_DEMUX_MAJOR_BITS

#define LOG_FRONTEND_STMESP_DEMUX_MAJOR_BITS   3

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Bits used to store major index.

◆ LOG_FRONTEND_STMESP_DEMUX_MAJOR_MAX

#define LOG_FRONTEND_STMESP_DEMUX_MAJOR_MAX   BIT(LOG_FRONTEND_STMESP_DEMUX_MAJOR_BITS)

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Maximum number of supported majors.

◆ LOG_FRONTEND_STMESP_DEMUX_PLENGTH_BITS

#define LOG_FRONTEND_STMESP_DEMUX_PLENGTH_BITS   10

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Bits used to store package length.

◆ LOG_FRONTEND_STMESP_DEMUX_TLENGTH_BITS

#define LOG_FRONTEND_STMESP_DEMUX_TLENGTH_BITS   16

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Bits used to store total length.

◆ LOG_FRONTEND_STMESP_DEMUX_TYPE_HW_EVENT

#define LOG_FRONTEND_STMESP_DEMUX_TYPE_HW_EVENT   2

#include <zephyr/logging/log_frontend_stmesp_demux.h>

HW event message type.

◆ LOG_FRONTEND_STMESP_DEMUX_TYPE_LOG

#define LOG_FRONTEND_STMESP_DEMUX_TYPE_LOG   0

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Log message type.

◆ LOG_FRONTEND_STMESP_DEMUX_TYPE_TRACE_POINT

#define LOG_FRONTEND_STMESP_DEMUX_TYPE_TRACE_POINT   1

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Trace point message type.

Function Documentation

◆ log_frontend_stmesp_demux_channel()

void log_frontend_stmesp_demux_channel ( uint16_t id)

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Indicate channel opcode in the STPv2 stream.

Parameters
idChannel ID.

◆ log_frontend_stmesp_demux_claim()

union log_frontend_stmesp_demux_packet log_frontend_stmesp_demux_claim ( void )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Claim packet.

Get pointer to the pending packet with logging message. Packet must be freed using log_frontend_stmesp_demux_free.

Returns
Pointer to the packet or NULL.

◆ log_frontend_stmesp_demux_data()

void log_frontend_stmesp_demux_data ( uint8_t * data,
size_t len )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Indicate data.

Parameters
dataData buffer.
lenLength.

◆ log_frontend_stmesp_demux_free()

void log_frontend_stmesp_demux_free ( union log_frontend_stmesp_demux_packet packet)

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Free previously claimed packet.

See log_frontend_stmesp_demux_claim.

Parameters
packetPacket.

◆ log_frontend_stmesp_demux_get_dropped()

uint32_t log_frontend_stmesp_demux_get_dropped ( void )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Get number of dropped messages and reset the counter.

Message can be dropped if there is no room in the packet buffer.

Returns
Number of dropped messages.

◆ log_frontend_stmesp_demux_init()

int log_frontend_stmesp_demux_init ( const struct log_frontend_stmesp_demux_config * config)

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Initialize the demultiplexer.

Parameters
configConfiguration.
Return values
0on success.
-EINVALon invalid configuration.

◆ log_frontend_stmesp_demux_is_idle()

bool log_frontend_stmesp_demux_is_idle ( void )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Check if there are any started but not completed log messages.

Return values
TrueThere is no pending started log message.
FalseThere is pending message.

◆ log_frontend_stmesp_demux_log0()

int log_frontend_stmesp_demux_log0 ( uint16_t source_id,
uint64_t * ts )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Indicate optimized log message with no arguments.

Parameters
source_idSource ID.
tsTimestamp. Can be NULL.

◆ log_frontend_stmesp_demux_major()

void log_frontend_stmesp_demux_major ( uint16_t id)

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Indicate major opcode in the STPv2 stream.

Parameters
idMaster ID.

◆ log_frontend_stmesp_demux_max_utilization()

int log_frontend_stmesp_demux_max_utilization ( void )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Get maximum buffer utilization.

Return values
Non-negativeMaximum buffer utilization.
-ENOTSUPFeature not enabled.

◆ log_frontend_stmesp_demux_packet_end()

void log_frontend_stmesp_demux_packet_end ( void )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Indicate packet end (Flag).

◆ log_frontend_stmesp_demux_packet_start()

int log_frontend_stmesp_demux_packet_start ( uint32_t * data,
uint64_t * ts )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Indicate detected packet start (DMTS).

Parameters
dataData. Can be NULL which indicates trace point without data.
tsTimestamp. Can be NULL.

◆ log_frontend_stmesp_demux_reset()

void log_frontend_stmesp_demux_reset ( void )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Close any opened messages and mark them as invalid.

◆ log_frontend_stmesp_demux_sname_get()

const char * log_frontend_stmesp_demux_sname_get ( uint32_t m_id,
uint16_t s_id )

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Get source name for a turbo log message.

During a boot cooprocessors (FLPR and PPR) are sending location in memory where their source data is stored. If application core is an owner of those cores it has access to that memory and based on chip ID and source ID it can retrieve the source name.

Parameters
m_idMajor ID.
s_idSource ID.
Returns
Pointer to a string which is a source name or unknown name if source name cannot be retrieved.

◆ log_frontend_stmesp_demux_source_id()

void log_frontend_stmesp_demux_source_id ( uint16_t source_id)

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Indicate source ID.

Parameters
source_idSource ID.

◆ log_frontend_stmesp_demux_timestamp()

void log_frontend_stmesp_demux_timestamp ( uint64_t ts)

#include <zephyr/logging/log_frontend_stmesp_demux.h>

Indicate timestamp.

Timestamp is separated from packet start because according to STM spec (3.2.2) it is possible that timestamp is assigned to a later packet.

Parameters
tsTimestamp.