tracing: systemview: add tracing for message queues
Add missing hooks for message queues.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
diff --git a/subsys/tracing/sysview/SYSVIEW_Zephyr.txt b/subsys/tracing/sysview/SYSVIEW_Zephyr.txt
index c6bede4..bc0c37a 100644
--- a/subsys/tracing/sysview/SYSVIEW_Zephyr.txt
+++ b/subsys/tracing/sysview/SYSVIEW_Zephyr.txt
@@ -67,6 +67,7 @@
62 k_msgq_cleanup msgq=%I | Returns %ErrCodePosix
63 k_msgq_peek msgq=%I, data=%p | Returns %ErrCodeMsg
64 k_msgq_purge msgq=%I
+134 k_msgq_put_front msgq=%I, data=%p, Timeout=%TimeOut | Returns %ErrCodeMsg
65 k_mbox_init mbox=%I
66 k_mbox_put mbox=%I, tx_msg=%p, Timeout=%TimeOut | Returns %ErrCodeMsg
diff --git a/subsys/tracing/sysview/tracing_sysview.h b/subsys/tracing/sysview/tracing_sysview.h
index 6867a14..ad06b4c 100644
--- a/subsys/tracing/sysview/tracing_sysview.h
+++ b/subsys/tracing/sysview/tracing_sysview.h
@@ -343,10 +343,10 @@
#define sys_port_trace_k_condvar_broadcast_exit(condvar, ret) \
SEGGER_SYSVIEW_RecordEndCallU32(TID_CONDVAR_BROADCAST, (uint32_t)ret)
-#define sys_port_trace_k_condvar_wait_enter(condvar) \
- SEGGER_SYSVIEW_RecordU32(TID_CONDVAR_WAIT, (uint32_t)(uintptr_t)condvar)
+#define sys_port_trace_k_condvar_wait_enter(condvar, timeout) \
+ SEGGER_SYSVIEW_RecordU32x2(TID_CONDVAR_WAIT, (uint32_t)(uintptr_t)condvar, (uint32_t)timeout.ticks)
-#define sys_port_trace_k_condvar_wait_exit(condvar, ret) \
+#define sys_port_trace_k_condvar_wait_exit(condvar, timeout, ret) \
SEGGER_SYSVIEW_RecordEndCallU32(TID_CONDVAR_WAIT, (uint32_t)ret)
#define sys_port_trace_k_queue_init(queue) \
@@ -505,22 +505,50 @@
#define sys_port_trace_k_stack_pop_blocking(stack, timeout)
#define sys_port_trace_k_stack_pop_exit(stack, timeout, ret)
-#define sys_port_trace_k_msgq_init(msgq)
-#define sys_port_trace_k_msgq_alloc_init_enter(msgq)
-#define sys_port_trace_k_msgq_alloc_init_exit(msgq, ret)
-#define sys_port_trace_k_msgq_cleanup_enter(msgq)
-#define sys_port_trace_k_msgq_cleanup_exit(msgq, ret)
-#define sys_port_trace_k_msgq_put_enter(msgq, timeout)
+#define sys_port_trace_k_msgq_init(msgq) \
+ SEGGER_SYSVIEW_RecordU32(TID_MSGQ_INIT, (uint32_t)(uintptr_t)msgq)
+
+#define sys_port_trace_k_msgq_alloc_init_enter(msgq) \
+ SEGGER_SYSVIEW_RecordU32(TID_MSGQ_INIT, (uint32_t)(uintptr_t)msgq)
+
+#define sys_port_trace_k_msgq_alloc_init_exit(msgq, ret) \
+ SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_INIT)
+
+#define sys_port_trace_k_msgq_cleanup_enter(msgq) \
+ SEGGER_SYSVIEW_RecordU32(TID_MSGQ_CLEANUP, (uint32_t)(uintptr_t)msgq)
+
+#define sys_port_trace_k_msgq_cleanup_exit(msgq, ret) \
+ SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_CLEANUP)
+
+#define sys_port_trace_k_msgq_put_enter(msgq, timeout) \
+ SEGGER_SYSVIEW_RecordU32x2(TID_MSGQ_PUT, (uint32_t)(uintptr_t)msgq, (uint32_t)timeout.ticks)
+
#define sys_port_trace_k_msgq_put_blocking(msgq, timeout)
-#define sys_port_trace_k_msgq_put_exit(msgq, timeout, ret)
-#define sys_port_trace_k_msgq_put_front_enter(msgq, timeout)
+
+#define sys_port_trace_k_msgq_put_exit(msgq, timeout, ret) \
+ SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_PUT)
+
+#define sys_port_trace_k_msgq_put_front_enter(msgq, timeout) \
+ SEGGER_SYSVIEW_RecordU32x2(TID_MSGQ_PUT_FRONT, (uint32_t)(uintptr_t)msgq, (uint32_t)timeout.ticks)
+
#define sys_port_trace_k_msgq_put_front_blocking(msgq, timeout)
-#define sys_port_trace_k_msgq_put_front_exit(msgq, timeout, ret)
-#define sys_port_trace_k_msgq_get_enter(msgq, timeout)
+
+#define sys_port_trace_k_msgq_put_front_exit(msgq, timeout, ret) \
+ SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_PUT_FRONT)
+
+#define sys_port_trace_k_msgq_get_enter(msgq, timeout) \
+ SEGGER_SYSVIEW_RecordU32x2(TID_MSGQ_GET, (uint32_t)(uintptr_t)msgq, (uint32_t)timeout.ticks)
+
#define sys_port_trace_k_msgq_get_blocking(msgq, timeout)
-#define sys_port_trace_k_msgq_get_exit(msgq, timeout, ret)
-#define sys_port_trace_k_msgq_peek(msgq, ret)
-#define sys_port_trace_k_msgq_purge(msgq)
+
+#define sys_port_trace_k_msgq_get_exit(msgq, timeout, ret) \
+ SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_GET)
+
+#define sys_port_trace_k_msgq_peek(msgq, ret) \
+ SEGGER_SYSVIEW_RecordU32(TID_MSGQ_PEEK, (uint32_t)(uintptr_t)msgq)
+
+#define sys_port_trace_k_msgq_purge(msgq) \
+ SEGGER_SYSVIEW_RecordU32(TID_MSGQ_PURGE, (uint32_t)(uintptr_t)msgq)
#define sys_port_trace_k_mbox_init(mbox)
#define sys_port_trace_k_mbox_message_put_enter(mbox, timeout)
diff --git a/subsys/tracing/sysview/tracing_sysview_ids.h b/subsys/tracing/sysview/tracing_sysview_ids.h
index 1ad2b2f..aa3c9b2 100644
--- a/subsys/tracing/sysview/tracing_sysview_ids.h
+++ b/subsys/tracing/sysview/tracing_sysview_ids.h
@@ -47,12 +47,13 @@
#define TID_STACK_POP (25u + TID_OFFSET)
#define TID_QUEUE_STACK_CLEANUP (26u + TID_OFFSET)
-#define TID_MSGQ_INIT (27u + TID_OFFSET)
-#define TID_MSGQ_PUT (28u + TID_OFFSET)
-#define TID_MSGQ_GET (29u + TID_OFFSET)
-#define TID_MSGQ_CLEANUP (30u + TID_OFFSET)
-#define TID_MSQG_PEEK (31u + TID_OFFSET)
-#define TID_MSGQ_PURGE (32u + TID_OFFSET)
+#define TID_MSGQ_INIT (27u + TID_OFFSET)
+#define TID_MSGQ_PUT (28u + TID_OFFSET)
+#define TID_MSGQ_GET (29u + TID_OFFSET)
+#define TID_MSGQ_CLEANUP (30u + TID_OFFSET)
+#define TID_MSGQ_PEEK (31u + TID_OFFSET)
+#define TID_MSGQ_PURGE (32u + TID_OFFSET)
+#define TID_MSGQ_PUT_FRONT (50u + TID_OFFSET)
#define TID_MBOX_INIT (33u + TID_OFFSET)
#define TID_MBOX_PUT (34u + TID_OFFSET)