39#define CH_TRACE_TYPE_UNUSED 0U
40#define CH_TRACE_TYPE_READY 1U
41#define CH_TRACE_TYPE_SWITCH 2U
42#define CH_TRACE_TYPE_ISR_ENTER 3U
43#define CH_TRACE_TYPE_ISR_LEAVE 4U
44#define CH_TRACE_TYPE_HALT 5U
45#define CH_TRACE_TYPE_USER 6U
52#define CH_DBG_TRACE_MASK_DISABLED 255U
53#define CH_DBG_TRACE_MASK_NONE 0U
54#define CH_DBG_TRACE_MASK_READY 1U
55#define CH_DBG_TRACE_MASK_SWITCH 2U
56#define CH_DBG_TRACE_MASK_ISR 4U
57#define CH_DBG_TRACE_MASK_HALT 8U
58#define CH_DBG_TRACE_MASK_USER 16U
59#define CH_DBG_TRACE_MASK_SLOW (CH_DBG_TRACE_MASK_READY | \
60 CH_DBG_TRACE_MASK_SWITCH | \
61 CH_DBG_TRACE_MASK_HALT | \
62 CH_DBG_TRACE_MASK_USER)
63#define CH_DBG_TRACE_MASK_ALL (CH_DBG_TRACE_MASK_READY | \
64 CH_DBG_TRACE_MASK_SWITCH | \
65 CH_DBG_TRACE_MASK_ISR | \
66 CH_DBG_TRACE_MASK_HALT | \
67 CH_DBG_TRACE_MASK_USER)
81#if !defined(CH_DBG_TRACE_MASK) || defined(__DOXYGEN__)
82#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
90#if !defined(CH_DBG_TRACE_BUFFER_SIZE) || defined(__DOXYGEN__)
91#define CH_DBG_TRACE_BUFFER_SIZE 128
103#if (CH_DBG_TRACE_MASK != CH_DBG_TRACE_MASK_DISABLED) || defined(__DOXYGEN__)
219#if CH_DBG_TRACE_MASK == CH_DBG_TRACE_MASK_DISABLED
220#if !defined(__trace_ready)
221#define __trace_ready(tp, msg)
223#if !defined(__trace_switch)
224#define __trace_switch(ntp, otp)
226#if !defined(__trace_isr_enter)
227#define __trace_isr_enter(isr)
229#if !defined(__trace_isr_leave)
230#define __trace_isr_leave(isr)
232#if !defined(__trace_halt)
233#define __trace_halt(reason)
235#if !defined(chDbgWriteTraceI)
236#define chDbgWriteTraceI(up1, up2)
238#if !defined(chDbgWriteTrace)
239#define chDbgWriteTrace(up1, up2)
250#if (CH_DBG_TRACE_MASK != CH_DBG_TRACE_MASK_DISABLED) || defined(__DOXYGEN__)
struct ch_thread thread_t
Type of a thread structure.
uint64_t systime_t
Type of system time.
#define __trace_halt(reason)
void chTraceResume(uint16_t mask)
Resumes one or more trace events.
#define __trace_ready(tp, msg)
#define __trace_isr_enter(isr)
void chTraceResumeI(uint16_t mask)
Resumes one or more trace events.
void chTraceWrite(void *up1, void *up2)
Adds an user trace record to the trace buffer.
#define __trace_switch(ntp, otp)
void chTraceSuspendI(uint16_t mask)
Suspends one or more trace events.
void chTraceWriteI(void *up1, void *up2)
Adds an user trace record to the trace buffer.
void chTraceSuspend(uint16_t mask)
Suspends one or more trace events.
#define CH_DBG_TRACE_BUFFER_SIZE
Trace buffer entries.
void __trace_object_init(trace_buffer_t *tbp)
Circular trace buffer initialization.
#define __trace_isr_leave(isr)
trace_event_t * ptr
Pointer to the buffer front.
trace_event_t buffer[CH_DBG_TRACE_BUFFER_SIZE]
Ring buffer.
uint16_t size
Trace buffer size (entries).
uint16_t suspended
Suspended trace sources mask.
void * up1
Trace user parameter 1.
uint32_t type
Record type.
thread_t * ntp
Switched in thread.
uint32_t state
Switched out thread state.
void * wtobjp
Object where going to sleep.
uint32_t rtstamp
Accurate time stamp.
systime_t time
System time stamp of the switch event.
thread_t * tp
Thread made ready.
const char * reason
Halt error string.
const char * name
ISR function name taken using __func__.
void * up2
Trace user parameter 2.