trace.h

Typedefs

typedef struct emb_trace_event emb_trace_event_t
typedef void (*emb_trace_sink_t)(const emb_trace_event_t *event, void *ctx)

Enums

enum emb_trace_id

Values:

enumerator EMB_TRACE_NONE
enumerator EMB_TRACE_SWITCH
enumerator EMB_TRACE_THREAD_INIT
enumerator EMB_TRACE_THREAD_START
enumerator EMB_TRACE_THREAD_EXIT
enumerator EMB_TRACE_THREAD_JOIN
enumerator EMB_TRACE_BLOCK
enumerator EMB_TRACE_WAKE
enumerator EMB_TRACE_TIMEOUT_ARM
enumerator EMB_TRACE_TIMEOUT_EXPIRE
enumerator EMB_TRACE_IRQ_ENTER
enumerator EMB_TRACE_IRQ_EXIT
enumerator EMB_TRACE_SCHED_LOCK
enumerator EMB_TRACE_SCHED_UNLOCK
enumerator EMB_TRACE_RESCHED_PEND
enumerator EMB_TRACE_PRIORITY
enumerator EMB_TRACE_MUTEX_LOCK
enumerator EMB_TRACE_MUTEX_UNLOCK
enumerator EMB_TRACE_SEM_TAKE
enumerator EMB_TRACE_SEM_GIVE
enumerator EMB_TRACE_NOTIFY_SET
enumerator EMB_TRACE_NOTIFY_WAIT
enumerator EMB_TRACE_SUSPEND
enumerator EMB_TRACE_RESUME
enumerator EMB_TRACE_CANCEL
enumerator EMB_TRACE_FAULT
enumerator EMB_TRACE_PI_DEPTH
enumerator EMB_TRACE_IDLE_ENTER
enumerator EMB_TRACE_IDLE_EXIT
enumerator EMB_TRACE_TICK
enumerator EMB_TRACE_SLEEP

Functions

void emb_trace_set_sink(emb_trace_sink_t sink, void *ctx)

emb_trace_set_sink()

- Register the function that receives every trace event.

Context: prekernel thread Blocking: no Timing: O(1) Ownership: none Configuration: CONFIG_EMB_TRACE Requirements: OBS-014 Since: 0.2 Stability: experimental

Parameters:
  • sink – Runs in the context of the event, often with interrupts masked; must be ISR-safe and bounded. NULL removes the sink.

  • ctx – Passed to sink.

struct emb_trace_event
#include <trace.h>

Public Members

uint16_t id
uint8_t cpu
uint8_t context
uint32_t ticks
uintptr_t a0
uintptr_t a1
uintptr_t a2