Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
tracing.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Intel Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6#ifndef ZEPHYR_INCLUDE_TRACING_TRACING_H_
7#define ZEPHYR_INCLUDE_TRACING_TRACING_H_
8
9#include <kernel.h>
10
11#if defined CONFIG_SEGGER_SYSTEMVIEW
12#include "tracing_sysview.h"
13
14#elif defined CONFIG_TRACING_CTF
15#include "tracing_ctf.h"
16
17#elif defined CONFIG_TRACING_TEST
18#include "tracing_test.h"
19
20#elif defined CONFIG_TRACING_USER
21#include "tracing_user.h"
22
23#else
24
35#define sys_port_trace_k_thread_foreach_enter()
36
40#define sys_port_trace_k_thread_foreach_exit()
41
45#define sys_port_trace_k_thread_foreach_unlocked_enter()
46
50#define sys_port_trace_k_thread_foreach_unlocked_exit()
51
56#define sys_port_trace_k_thread_create(new_thread)
57
61#define sys_port_trace_k_thread_user_mode_enter()
62
68#define sys_port_trace_k_thread_join_enter(thread, timeout)
69
75#define sys_port_trace_k_thread_join_blocking(thread, timeout)
76
83#define sys_port_trace_k_thread_join_exit(thread, timeout, ret)
84
89#define sys_port_trace_k_thread_sleep_enter(timeout)
90
96#define sys_port_trace_k_thread_sleep_exit(timeout, ret)
97
102#define sys_port_trace_k_thread_msleep_enter(ms)
103
109#define sys_port_trace_k_thread_msleep_exit(ms, ret)
110
115#define sys_port_trace_k_thread_usleep_enter(us)
116
122#define sys_port_trace_k_thread_usleep_exit(us, ret)
123
128#define sys_port_trace_k_thread_busy_wait_enter(usec_to_wait)
129
134#define sys_port_trace_k_thread_busy_wait_exit(usec_to_wait)
135
139#define sys_port_trace_k_thread_yield()
140
145#define sys_port_trace_k_thread_wakeup(thread)
146
151#define sys_port_trace_k_thread_start(thread)
152
157#define sys_port_trace_k_thread_abort(thread)
158
163#define sys_port_trace_k_thread_priority_set(thread)
164
170#define sys_port_trace_k_thread_suspend_enter(thread)
171
177#define sys_port_trace_k_thread_suspend_exit(thread)
178
184#define sys_port_trace_k_thread_resume_enter(thread)
185
191#define sys_port_trace_k_thread_resume_exit(thread)
192
196#define sys_port_trace_k_thread_sched_lock()
197
201#define sys_port_trace_k_thread_sched_unlock()
202
208#define sys_port_trace_k_thread_name_set(thread, ret)
209
213#define sys_port_trace_k_thread_switched_out()
214
218#define sys_port_trace_k_thread_switched_in()
219
224#define sys_port_trace_k_thread_ready(thread)
225
230#define sys_port_trace_k_thread_pend(thread)
231
236#define sys_port_trace_k_thread_info(thread)
237
242#define sys_port_trace_k_thread_sched_wakeup(thread)
243
248#define sys_port_trace_k_thread_sched_abort(thread)
249
255#define sys_port_trace_k_thread_sched_priority_set(thread, prio)
256
261#define sys_port_trace_k_thread_sched_ready(thread)
262
267#define sys_port_trace_k_thread_sched_pend(thread)
268
273#define sys_port_trace_k_thread_sched_resume(thread)
274
279#define sys_port_trace_k_thread_sched_suspend(thread)
280 /* end of thread_tracing_apis */
284
285
286
287
299#define sys_port_trace_k_work_init(work)
300
306#define sys_port_trace_k_work_submit_to_queue_enter(queue, work)
307
314#define sys_port_trace_k_work_submit_to_queue_exit(queue, work, ret)
315
320#define sys_port_trace_k_work_submit_enter(work)
321
327#define sys_port_trace_k_work_submit_exit(work, ret)
328
333#define sys_port_trace_k_work_flush_enter(work)
334
340#define sys_port_trace_k_work_flush_blocking(work, timeout)
341
347#define sys_port_trace_k_work_flush_exit(work, ret)
348
353#define sys_port_trace_k_work_cancel_enter(work)
354
360#define sys_port_trace_k_work_cancel_exit(work, ret)
361
367#define sys_port_trace_k_work_cancel_sync_enter(work, sync)
368
374#define sys_port_trace_k_work_cancel_sync_blocking(work, sync)
375
382#define sys_port_trace_k_work_cancel_sync_exit(work, sync, ret)
383 /* end of work_tracing_apis */
387
388
389
390
402#define sys_port_trace_k_work_queue_init(queue)
403
408#define sys_port_trace_k_work_queue_start_enter(queue)
409
414#define sys_port_trace_k_work_queue_start_exit(queue)
415
420#define sys_port_trace_k_work_queue_drain_enter(queue)
421
427#define sys_port_trace_k_work_queue_drain_exit(queue, ret)
428
433#define sys_port_trace_k_work_queue_unplug_enter(queue)
434
440#define sys_port_trace_k_work_queue_unplug_exit(queue, ret)
441 /* end of work_q_tracing_apis */
445
446
447
448
460#define sys_port_trace_k_work_delayable_init(dwork)
461
468#define sys_port_trace_k_work_schedule_for_queue_enter(queue, dwork, delay)
469
477#define sys_port_trace_k_work_schedule_for_queue_exit(queue, dwork, delay, ret)
478
484#define sys_port_trace_k_work_schedule_enter(dwork, delay)
485
492#define sys_port_trace_k_work_schedule_exit(dwork, delay, ret)
493
500#define sys_port_trace_k_work_reschedule_for_queue_enter(queue, dwork, delay)
501
509#define sys_port_trace_k_work_reschedule_for_queue_exit(queue, dwork, delay, ret)
510
516#define sys_port_trace_k_work_reschedule_enter(dwork, delay)
517
524#define sys_port_trace_k_work_reschedule_exit(dwork, delay, ret)
525
531#define sys_port_trace_k_work_flush_delayable_enter(dwork, sync)
532
539#define sys_port_trace_k_work_flush_delayable_exit(dwork, sync, ret)
540
545#define sys_port_trace_k_work_cancel_delayable_enter(dwork)
546
552#define sys_port_trace_k_work_cancel_delayable_exit(dwork, ret)
553
559#define sys_port_trace_k_work_cancel_delayable_sync_enter(dwork, sync)
560
567#define sys_port_trace_k_work_cancel_delayable_sync_exit(dwork, sync, ret)
568 /* end of work_delayable_tracing_apis */
572
573
574
575
587#define sys_port_trace_k_work_poll_init_enter(work)
588
593#define sys_port_trace_k_work_poll_init_exit(work)
594
601#define sys_port_trace_k_work_poll_submit_to_queue_enter(work_q, work, timeout)
602
609#define sys_port_trace_k_work_poll_submit_to_queue_blocking(work_q, work, timeout)
610
618#define sys_port_trace_k_work_poll_submit_to_queue_exit(work_q, work, timeout, ret)
619
625#define sys_port_trace_k_work_poll_submit_enter(work, timeout)
626
633#define sys_port_trace_k_work_poll_submit_exit(work, timeout, ret)
634
639#define sys_port_trace_k_work_poll_cancel_enter(work)
640
646#define sys_port_trace_k_work_poll_cancel_exit(work, ret)
647 /* end of work_poll_tracing_apis */
651
652
653
654
666#define sys_port_trace_k_poll_api_event_init(event)
667
672#define sys_port_trace_k_poll_api_poll_enter(events)
673
679#define sys_port_trace_k_poll_api_poll_exit(events, ret)
680
685#define sys_port_trace_k_poll_api_signal_init(signal)
686
691#define sys_port_trace_k_poll_api_signal_reset(signal)
692
697#define sys_port_trace_k_poll_api_signal_check(signal)
698
704#define sys_port_trace_k_poll_api_signal_raise(signal, ret)
705 /* end of poll_tracing_apis */
709
710
711
712
725#define sys_port_trace_k_sem_init(sem, ret)
726
731#define sys_port_trace_k_sem_give_enter(sem)
732
737#define sys_port_trace_k_sem_give_exit(sem)
738
744#define sys_port_trace_k_sem_take_enter(sem, timeout)
745
751#define sys_port_trace_k_sem_take_blocking(sem, timeout)
752
759#define sys_port_trace_k_sem_take_exit(sem, timeout, ret)
760
765#define sys_port_trace_k_sem_reset(sem)
766 /* end of sem_tracing_apis */
770
771
772
773
786#define sys_port_trace_k_mutex_init(mutex, ret)
787
793#define sys_port_trace_k_mutex_lock_enter(mutex, timeout)
794
800#define sys_port_trace_k_mutex_lock_blocking(mutex, timeout)
801
808#define sys_port_trace_k_mutex_lock_exit(mutex, timeout, ret)
809
814#define sys_port_trace_k_mutex_unlock_enter(mutex)
815
819#define sys_port_trace_k_mutex_unlock_exit(mutex, ret)
820 /* end of mutex_tracing_apis */
824
825
826
827
840#define sys_port_trace_k_condvar_init(condvar, ret)
841
846#define sys_port_trace_k_condvar_signal_enter(condvar)
847
853#define sys_port_trace_k_condvar_signal_blocking(condvar, timeout)
854
860#define sys_port_trace_k_condvar_signal_exit(condvar, ret)
861
866#define sys_port_trace_k_condvar_broadcast_enter(condvar)
867
873#define sys_port_trace_k_condvar_broadcast_exit(condvar, ret)
874
879#define sys_port_trace_k_condvar_wait_enter(condvar)
880
886#define sys_port_trace_k_condvar_wait_exit(condvar, ret)
887 /* end of condvar_tracing_apis */
891
892
893
894
906#define sys_port_trace_k_queue_init(queue)
907
912#define sys_port_trace_k_queue_cancel_wait(queue)
913
919#define sys_port_trace_k_queue_queue_insert_enter(queue, alloc)
920
927#define sys_port_trace_k_queue_queue_insert_blocking(queue, alloc, timeout)
928
935#define sys_port_trace_k_queue_queue_insert_exit(queue, alloc, ret)
936
941#define sys_port_trace_k_queue_append_enter(queue)
942
947#define sys_port_trace_k_queue_append_exit(queue)
948
953#define sys_port_trace_k_queue_alloc_append_enter(queue)
954
960#define sys_port_trace_k_queue_alloc_append_exit(queue, ret)
961
966#define sys_port_trace_k_queue_prepend_enter(queue)
967
972#define sys_port_trace_k_queue_prepend_exit(queue)
973
978#define sys_port_trace_k_queue_alloc_prepend_enter(queue)
979
985#define sys_port_trace_k_queue_alloc_prepend_exit(queue, ret)
986
991#define sys_port_trace_k_queue_insert_enter(queue)
992
998#define sys_port_trace_k_queue_insert_blocking(queue, timeout)
999
1004#define sys_port_trace_k_queue_insert_exit(queue)
1005
1010#define sys_port_trace_k_queue_append_list_enter(queue)
1011
1017#define sys_port_trace_k_queue_append_list_exit(queue, ret)
1018
1023#define sys_port_trace_k_queue_merge_slist_enter(queue)
1024
1030#define sys_port_trace_k_queue_merge_slist_exit(queue, ret)
1031
1037#define sys_port_trace_k_queue_get_enter(queue, timeout)
1038
1044#define sys_port_trace_k_queue_get_blocking(queue, timeout)
1045
1052#define sys_port_trace_k_queue_get_exit(queue, timeout, ret)
1053
1058#define sys_port_trace_k_queue_remove_enter(queue)
1059
1065#define sys_port_trace_k_queue_remove_exit(queue, ret)
1066
1071#define sys_port_trace_k_queue_unique_append_enter(queue)
1072
1079#define sys_port_trace_k_queue_unique_append_exit(queue, ret)
1080
1086#define sys_port_trace_k_queue_peek_head(queue, ret)
1087
1093#define sys_port_trace_k_queue_peek_tail(queue, ret)
1094 /* end of queue_tracing_apis */
1098
1099
1100
1101
1113#define sys_port_trace_k_fifo_init_enter(fifo)
1114
1119#define sys_port_trace_k_fifo_init_exit(fifo)
1120
1125#define sys_port_trace_k_fifo_cancel_wait_enter(fifo)
1126
1131#define sys_port_trace_k_fifo_cancel_wait_exit(fifo)
1132
1138#define sys_port_trace_k_fifo_put_enter(fifo, data)
1139
1145#define sys_port_trace_k_fifo_put_exit(fifo, data)
1146
1152#define sys_port_trace_k_fifo_alloc_put_enter(fifo, data)
1153
1160#define sys_port_trace_k_fifo_alloc_put_exit(fifo, data, ret)
1161
1168#define sys_port_trace_k_fifo_alloc_put_list_enter(fifo, head, tail)
1169
1176#define sys_port_trace_k_fifo_alloc_put_list_exit(fifo, head, tail)
1177
1183#define sys_port_trace_k_fifo_alloc_put_slist_enter(fifo, list)
1184
1190#define sys_port_trace_k_fifo_alloc_put_slist_exit(fifo, list)
1191
1197#define sys_port_trace_k_fifo_get_enter(fifo, timeout)
1198
1205#define sys_port_trace_k_fifo_get_exit(fifo, timeout, ret)
1206
1211#define sys_port_trace_k_fifo_peek_head_entry(fifo)
1212
1218#define sys_port_trace_k_fifo_peek_head_exit(fifo, ret)
1219
1224#define sys_port_trace_k_fifo_peek_tail_entry(fifo)
1225
1231#define sys_port_trace_k_fifo_peek_tail_exit(fifo, ret)
1232 /* end of fifo_tracing_apis */
1236
1237
1238
1239
1251#define sys_port_trace_k_lifo_init_enter(lifo)
1252
1257#define sys_port_trace_k_lifo_init_exit(lifo)
1258
1264#define sys_port_trace_k_lifo_put_enter(lifo, data)
1265
1271#define sys_port_trace_k_lifo_put_exit(lifo, data)
1272
1278#define sys_port_trace_k_lifo_alloc_put_enter(lifo, data)
1279
1286#define sys_port_trace_k_lifo_alloc_put_exit(lifo, data, ret)
1287
1293#define sys_port_trace_k_lifo_get_enter(lifo, timeout)
1294
1301#define sys_port_trace_k_lifo_get_exit(lifo, timeout, ret)
1302 /* end of lifo_tracing_apis */
1306
1307
1308
1309
1321#define sys_port_trace_k_stack_init(stack)
1322
1327#define sys_port_trace_k_stack_alloc_init_enter(stack)
1328
1334#define sys_port_trace_k_stack_alloc_init_exit(stack, ret)
1335
1340#define sys_port_trace_k_stack_cleanup_enter(stack)
1341
1347#define sys_port_trace_k_stack_cleanup_exit(stack, ret)
1348
1353#define sys_port_trace_k_stack_push_enter(stack)
1354
1360#define sys_port_trace_k_stack_push_exit(stack, ret)
1361
1367#define sys_port_trace_k_stack_pop_enter(stack, timeout)
1368
1374#define sys_port_trace_k_stack_pop_blocking(stack, timeout)
1375
1382#define sys_port_trace_k_stack_pop_exit(stack, timeout, ret)
1383 /* end of stack_tracing_apis */
1387
1388
1389
1390
1402#define sys_port_trace_k_msgq_init(msgq)
1403
1408#define sys_port_trace_k_msgq_alloc_init_enter(msgq)
1409
1415#define sys_port_trace_k_msgq_alloc_init_exit(msgq, ret)
1416
1421#define sys_port_trace_k_msgq_cleanup_enter(msgq)
1422
1428#define sys_port_trace_k_msgq_cleanup_exit(msgq, ret)
1429
1435#define sys_port_trace_k_msgq_put_enter(msgq, timeout)
1436
1442#define sys_port_trace_k_msgq_put_blocking(msgq, timeout)
1443
1450#define sys_port_trace_k_msgq_put_exit(msgq, timeout, ret)
1451
1457#define sys_port_trace_k_msgq_get_enter(msgq, timeout)
1458
1464#define sys_port_trace_k_msgq_get_blocking(msgq, timeout)
1465
1472#define sys_port_trace_k_msgq_get_exit(msgq, timeout, ret)
1473
1479#define sys_port_trace_k_msgq_peek(msgq, ret)
1480
1485#define sys_port_trace_k_msgq_purge(msgq)
1486 /* end of msgq_tracing_apis */
1490
1491
1492
1493
1505#define sys_port_trace_k_mbox_init(mbox)
1506
1512#define sys_port_trace_k_mbox_message_put_enter(mbox, timeout)
1513
1519#define sys_port_trace_k_mbox_message_put_blocking(mbox, timeout)
1520
1527#define sys_port_trace_k_mbox_message_put_exit(mbox, timeout, ret)
1528
1534#define sys_port_trace_k_mbox_put_enter(mbox, timeout)
1535
1542#define sys_port_trace_k_mbox_put_exit(mbox, timeout, ret)
1543
1549#define sys_port_trace_k_mbox_async_put_enter(mbox, sem)
1550
1556#define sys_port_trace_k_mbox_async_put_exit(mbox, sem)
1557
1563#define sys_port_trace_k_mbox_get_enter(mbox, timeout)
1564
1570#define sys_port_trace_k_mbox_get_blocking(mbox, timeout)
1571
1578#define sys_port_trace_k_mbox_get_exit(mbox, timeout, ret)
1579
1584#define sys_port_trace_k_mbox_data_get(rx_msg)
1585 /* end of mbox_tracing_apis */
1589
1590
1591
1592
1604#define sys_port_trace_k_pipe_init(pipe)
1605
1610#define sys_port_trace_k_pipe_cleanup_enter(pipe)
1611
1617#define sys_port_trace_k_pipe_cleanup_exit(pipe, ret)
1618
1623#define sys_port_trace_k_pipe_alloc_init_enter(pipe)
1624
1630#define sys_port_trace_k_pipe_alloc_init_exit(pipe, ret)
1631
1637#define sys_port_trace_k_pipe_put_enter(pipe, timeout)
1638
1644#define sys_port_trace_k_pipe_put_blocking(pipe, timeout)
1645
1652#define sys_port_trace_k_pipe_put_exit(pipe, timeout, ret)
1653
1659#define sys_port_trace_k_pipe_get_enter(pipe, timeout)
1660
1666#define sys_port_trace_k_pipe_get_blocking(pipe, timeout)
1667
1674#define sys_port_trace_k_pipe_get_exit(pipe, timeout, ret)
1675
1681#define sys_port_trace_k_pipe_block_put_enter(pipe, sem)
1682
1688#define sys_port_trace_k_pipe_block_put_exit(pipe, sem)
1689 /* end of pipe_tracing_apis */
1693
1694
1695
1696
1708#define sys_port_trace_k_heap_init(h)
1709
1715#define sys_port_trace_k_heap_aligned_alloc_enter(h, timeout)
1716
1722#define sys_port_trace_k_heap_aligned_alloc_blocking(h, timeout)
1723
1730#define sys_port_trace_k_heap_aligned_alloc_exit(h, timeout, ret)
1731
1737#define sys_port_trace_k_heap_alloc_enter(h, timeout)
1738
1745#define sys_port_trace_k_heap_alloc_exit(h, timeout, ret)
1746
1751#define sys_port_trace_k_heap_free(h)
1752
1757#define sys_port_trace_k_heap_sys_k_aligned_alloc_enter(heap)
1758
1764#define sys_port_trace_k_heap_sys_k_aligned_alloc_exit(heap, ret)
1765
1770#define sys_port_trace_k_heap_sys_k_malloc_enter(heap)
1771
1777#define sys_port_trace_k_heap_sys_k_malloc_exit(heap, ret)
1778
1783#define sys_port_trace_k_heap_sys_k_free_enter(heap)
1784
1789#define sys_port_trace_k_heap_sys_k_free_exit(heap)
1790
1795#define sys_port_trace_k_heap_sys_k_calloc_enter(heap)
1796
1802#define sys_port_trace_k_heap_sys_k_calloc_exit(heap, ret)
1803 /* end of heap_tracing_apis */
1807
1808
1809
1810
1823#define sys_port_trace_k_mem_slab_init(slab, rc)
1824
1830#define sys_port_trace_k_mem_slab_alloc_enter(slab, timeout)
1831
1837#define sys_port_trace_k_mem_slab_alloc_blocking(slab, timeout)
1838
1845#define sys_port_trace_k_mem_slab_alloc_exit(slab, timeout, ret)
1846
1851#define sys_port_trace_k_mem_slab_free_enter(slab)
1852
1857#define sys_port_trace_k_mem_slab_free_exit(slab)
1858 /* end of mslab_tracing_apis */
1862
1863
1864
1865
1877#define sys_port_trace_k_timer_init(timer)
1878
1883#define sys_port_trace_k_timer_start(timer)
1884
1889#define sys_port_trace_k_timer_stop(timer)
1890
1895#define sys_port_trace_k_timer_status_sync_enter(timer)
1896
1902#define sys_port_trace_k_timer_status_sync_blocking(timer, timeout)
1903
1909#define sys_port_trace_k_timer_status_sync_exit(timer, result)
1910 /* end of timer_tracing_apis */
1914
1926#define sys_port_trace_k_event_init(event)
1927
1934#define sys_port_trace_k_event_post_enter(event, events, accumulate)
1935
1942#define sys_port_trace_k_event_post_exit(event, events, accumulate)
1943
1951#define sys_port_trace_k_event_wait_enter(event, events, options, timeout)
1952
1960#define sys_port_trace_k_event_wait_blocking(event, events, options, timeout)
1961
1968#define sys_port_trace_k_event_wait_exit(event, events, ret)
1969 /* end of event_tracing_apis */
1973
1974#define sys_port_trace_pm_system_suspend_enter(ticks)
1975
1976#define sys_port_trace_pm_system_suspend_exit(ticks, ret)
1977
1978#define sys_port_trace_pm_device_request_enter(dev, target_state)
1979
1980#define sys_port_trace_pm_device_request_exit(dev, ret)
1981
1982#define sys_port_trace_pm_device_enable_enter(dev)
1983
1984#define sys_port_trace_pm_device_enable_exit(dev)
1985
1986#define sys_port_trace_pm_device_disable_enter(dev)
1987
1988#define sys_port_trace_pm_device_disable_exit(dev)
1989
1990
1991#if defined CONFIG_PERCEPIO_TRACERECORDER
1992#include "tracing_tracerecorder.h"
1993#else
2004
2009
2014
2019
2023#endif
2024
2025
2026#endif
2027#endif
void sys_trace_isr_exit_to_scheduler(void)
Called when exiting an ISR and switching to scheduler.
void sys_trace_isr_enter(void)
Called when entering an ISR.
void sys_trace_isr_exit(void)
Called when exiting an ISR.
void sys_trace_idle(void)
Called when the cpu enters the idle state.