38#define CH_TRACE_TYPE_UNUSED 0U
39#define CH_TRACE_TYPE_READY 1U
40#define CH_TRACE_TYPE_SWITCH 2U
41#define CH_TRACE_TYPE_ISR_ENTER 3U
42#define CH_TRACE_TYPE_ISR_LEAVE 4U
43#define CH_TRACE_TYPE_HALT 5U
44#define CH_TRACE_TYPE_USER 6U
51#define CH_DBG_TRACE_MASK_DISABLED 255U
52#define CH_DBG_TRACE_MASK_NONE 0U
53#define CH_DBG_TRACE_MASK_READY 1U
54#define CH_DBG_TRACE_MASK_SWITCH 2U
55#define CH_DBG_TRACE_MASK_ISR 4U
56#define CH_DBG_TRACE_MASK_HALT 8U
57#define CH_DBG_TRACE_MASK_USER 16U
58#define CH_DBG_TRACE_MASK_SLOW (CH_DBG_TRACE_MASK_READY | \
59 CH_DBG_TRACE_MASK_SWITCH | \
60 CH_DBG_TRACE_MASK_HALT | \
61 CH_DBG_TRACE_MASK_USER)
62#define CH_DBG_TRACE_MASK_ALL (CH_DBG_TRACE_MASK_READY | \
63 CH_DBG_TRACE_MASK_SWITCH | \
64 CH_DBG_TRACE_MASK_ISR | \
65 CH_DBG_TRACE_MASK_HALT | \
66 CH_DBG_TRACE_MASK_USER)
80#if !defined(CH_DBG_TRACE_MASK) || defined(__DOXYGEN__)
81#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
89#if !defined(CH_DBG_TRACE_BUFFER_SIZE) || defined(__DOXYGEN__)
90#define CH_DBG_TRACE_BUFFER_SIZE 128
102#if (CH_DBG_TRACE_MASK != CH_DBG_TRACE_MASK_DISABLED) || defined(__DOXYGEN__)
218#if CH_DBG_TRACE_MASK == CH_DBG_TRACE_MASK_DISABLED
219#if !defined(__trace_ready)
220#define __trace_ready(tp, msg)
222#if !defined(__trace_switch)
223#define __trace_switch(ntp, otp)
225#if !defined(__trace_isr_enter)
226#define __trace_isr_enter(isr)
228#if !defined(__trace_isr_leave)
229#define __trace_isr_leave(isr)
231#if !defined(__trace_halt)
232#define __trace_halt(reason)
234#if !defined(chDbgWriteTraceI)
235#define chDbgWriteTraceI(up1, up2)
237#if !defined(chDbgWriteTrace)
238#define chDbgWriteTrace(up1, up2)
249#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.