Zephyr API Documentation  3.6.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
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 <zephyr/kernel.h>
10
11#include "tracking.h"
12
13#if defined CONFIG_SEGGER_SYSTEMVIEW
14#include "tracing_sysview.h"
15#elif defined CONFIG_TRACING_CTF
16#include "tracing_ctf.h"
17#elif defined CONFIG_TRACING_TEST
18#include "tracing_test.h"
19#elif defined CONFIG_TRACING_USER
20#include "tracing_user.h"
21#else
49#define sys_port_trace_k_thread_foreach_enter()
50
54#define sys_port_trace_k_thread_foreach_exit()
55
59#define sys_port_trace_k_thread_foreach_unlocked_enter()
60
64#define sys_port_trace_k_thread_foreach_unlocked_exit()
65
70#define sys_port_trace_k_thread_create(new_thread)
71
75#define sys_port_trace_k_thread_user_mode_enter()
76
82#define sys_port_trace_k_thread_join_enter(thread, timeout)
83
89#define sys_port_trace_k_thread_join_blocking(thread, timeout)
90
97#define sys_port_trace_k_thread_join_exit(thread, timeout, ret)
98
103#define sys_port_trace_k_thread_sleep_enter(timeout)
104
110#define sys_port_trace_k_thread_sleep_exit(timeout, ret)
111
116#define sys_port_trace_k_thread_msleep_enter(ms)
117
123#define sys_port_trace_k_thread_msleep_exit(ms, ret)
124
129#define sys_port_trace_k_thread_usleep_enter(us)
130
136#define sys_port_trace_k_thread_usleep_exit(us, ret)
137
142#define sys_port_trace_k_thread_busy_wait_enter(usec_to_wait)
143
148#define sys_port_trace_k_thread_busy_wait_exit(usec_to_wait)
149
153#define sys_port_trace_k_thread_yield()
154
159#define sys_port_trace_k_thread_wakeup(thread)
160
165#define sys_port_trace_k_thread_start(thread)
166
171#define sys_port_trace_k_thread_abort(thread)
172
177#define sys_port_trace_k_thread_abort_enter(thread)
178
183#define sys_port_trace_k_thread_abort_exit(thread)
184
189#define sys_port_trace_k_thread_priority_set(thread)
190
196#define sys_port_trace_k_thread_suspend_enter(thread)
197
203#define sys_port_trace_k_thread_suspend_exit(thread)
204
210#define sys_port_trace_k_thread_resume_enter(thread)
211
217#define sys_port_trace_k_thread_resume_exit(thread)
218
222#define sys_port_trace_k_thread_sched_lock()
223
227#define sys_port_trace_k_thread_sched_unlock()
228
234#define sys_port_trace_k_thread_name_set(thread, ret)
235
239#define sys_port_trace_k_thread_switched_out()
240
244#define sys_port_trace_k_thread_switched_in()
245
250#define sys_port_trace_k_thread_ready(thread)
251
256#define sys_port_trace_k_thread_pend(thread)
257
262#define sys_port_trace_k_thread_info(thread)
263
268#define sys_port_trace_k_thread_sched_wakeup(thread)
269
274#define sys_port_trace_k_thread_sched_abort(thread)
275
281#define sys_port_trace_k_thread_sched_priority_set(thread, prio)
282
287#define sys_port_trace_k_thread_sched_ready(thread)
288
293#define sys_port_trace_k_thread_sched_pend(thread)
294
299#define sys_port_trace_k_thread_sched_resume(thread)
300
305#define sys_port_trace_k_thread_sched_suspend(thread)
306 /* end of subsys_tracing_apis_thread */
308
319#define sys_port_trace_k_work_init(work)
320
326#define sys_port_trace_k_work_submit_to_queue_enter(queue, work)
327
334#define sys_port_trace_k_work_submit_to_queue_exit(queue, work, ret)
335
340#define sys_port_trace_k_work_submit_enter(work)
341
347#define sys_port_trace_k_work_submit_exit(work, ret)
348
353#define sys_port_trace_k_work_flush_enter(work)
354
360#define sys_port_trace_k_work_flush_blocking(work, timeout)
361
367#define sys_port_trace_k_work_flush_exit(work, ret)
368
373#define sys_port_trace_k_work_cancel_enter(work)
374
380#define sys_port_trace_k_work_cancel_exit(work, ret)
381
387#define sys_port_trace_k_work_cancel_sync_enter(work, sync)
388
394#define sys_port_trace_k_work_cancel_sync_blocking(work, sync)
395
402#define sys_port_trace_k_work_cancel_sync_exit(work, sync, ret)
403 /* end of subsys_tracing_apis_work */
405
416#define sys_port_trace_k_work_queue_init(queue)
417
422#define sys_port_trace_k_work_queue_start_enter(queue)
423
428#define sys_port_trace_k_work_queue_start_exit(queue)
429
434#define sys_port_trace_k_work_queue_drain_enter(queue)
435
441#define sys_port_trace_k_work_queue_drain_exit(queue, ret)
442
447#define sys_port_trace_k_work_queue_unplug_enter(queue)
448
454#define sys_port_trace_k_work_queue_unplug_exit(queue, ret)
455 /* end of subsys_tracing_apis_work_q */
457
468#define sys_port_trace_k_work_delayable_init(dwork)
469
476#define sys_port_trace_k_work_schedule_for_queue_enter(queue, dwork, delay)
477
485#define sys_port_trace_k_work_schedule_for_queue_exit(queue, dwork, delay, ret)
486
492#define sys_port_trace_k_work_schedule_enter(dwork, delay)
493
500#define sys_port_trace_k_work_schedule_exit(dwork, delay, ret)
501
508#define sys_port_trace_k_work_reschedule_for_queue_enter(queue, dwork, delay)
509
517#define sys_port_trace_k_work_reschedule_for_queue_exit(queue, dwork, delay, ret)
518
524#define sys_port_trace_k_work_reschedule_enter(dwork, delay)
525
532#define sys_port_trace_k_work_reschedule_exit(dwork, delay, ret)
533
539#define sys_port_trace_k_work_flush_delayable_enter(dwork, sync)
540
547#define sys_port_trace_k_work_flush_delayable_exit(dwork, sync, ret)
548
553#define sys_port_trace_k_work_cancel_delayable_enter(dwork)
554
560#define sys_port_trace_k_work_cancel_delayable_exit(dwork, ret)
561
567#define sys_port_trace_k_work_cancel_delayable_sync_enter(dwork, sync)
568
575#define sys_port_trace_k_work_cancel_delayable_sync_exit(dwork, sync, ret)
576 /* end of subsys_tracing_apis_work_delayable */
578
589#define sys_port_trace_k_work_poll_init_enter(work)
590
595#define sys_port_trace_k_work_poll_init_exit(work)
596
603#define sys_port_trace_k_work_poll_submit_to_queue_enter(work_q, work, timeout)
604
611#define sys_port_trace_k_work_poll_submit_to_queue_blocking(work_q, work, timeout)
612
620#define sys_port_trace_k_work_poll_submit_to_queue_exit(work_q, work, timeout, ret)
621
627#define sys_port_trace_k_work_poll_submit_enter(work, timeout)
628
635#define sys_port_trace_k_work_poll_submit_exit(work, timeout, ret)
636
641#define sys_port_trace_k_work_poll_cancel_enter(work)
642
648#define sys_port_trace_k_work_poll_cancel_exit(work, ret)
649 /* end of subsys_tracing_apis_work_poll */
651
662#define sys_port_trace_k_poll_api_event_init(event)
663
668#define sys_port_trace_k_poll_api_poll_enter(events)
669
675#define sys_port_trace_k_poll_api_poll_exit(events, ret)
676
681#define sys_port_trace_k_poll_api_signal_init(signal)
682
687#define sys_port_trace_k_poll_api_signal_reset(signal)
688
693#define sys_port_trace_k_poll_api_signal_check(signal)
694
700#define sys_port_trace_k_poll_api_signal_raise(signal, ret)
701 /* end of subsys_tracing_apis_poll */
703
715#define sys_port_trace_k_sem_init(sem, ret)
716
721#define sys_port_trace_k_sem_give_enter(sem)
722
727#define sys_port_trace_k_sem_give_exit(sem)
728
734#define sys_port_trace_k_sem_take_enter(sem, timeout)
735
741#define sys_port_trace_k_sem_take_blocking(sem, timeout)
742
749#define sys_port_trace_k_sem_take_exit(sem, timeout, ret)
750
755#define sys_port_trace_k_sem_reset(sem)
756 /* end of subsys_tracing_apis_sem */
758
770#define sys_port_trace_k_mutex_init(mutex, ret)
771
777#define sys_port_trace_k_mutex_lock_enter(mutex, timeout)
778
784#define sys_port_trace_k_mutex_lock_blocking(mutex, timeout)
785
792#define sys_port_trace_k_mutex_lock_exit(mutex, timeout, ret)
793
798#define sys_port_trace_k_mutex_unlock_enter(mutex)
799
803#define sys_port_trace_k_mutex_unlock_exit(mutex, ret)
804 /* end of subsys_tracing_apis_mutex */
806
818#define sys_port_trace_k_condvar_init(condvar, ret)
819
824#define sys_port_trace_k_condvar_signal_enter(condvar)
825
831#define sys_port_trace_k_condvar_signal_blocking(condvar, timeout)
832
838#define sys_port_trace_k_condvar_signal_exit(condvar, ret)
839
844#define sys_port_trace_k_condvar_broadcast_enter(condvar)
845
851#define sys_port_trace_k_condvar_broadcast_exit(condvar, ret)
852
857#define sys_port_trace_k_condvar_wait_enter(condvar)
858
864#define sys_port_trace_k_condvar_wait_exit(condvar, ret)
865 /* end of subsys_tracing_apis_condvar */
867
878#define sys_port_trace_k_queue_init(queue)
879
884#define sys_port_trace_k_queue_cancel_wait(queue)
885
891#define sys_port_trace_k_queue_queue_insert_enter(queue, alloc)
892
899#define sys_port_trace_k_queue_queue_insert_blocking(queue, alloc, timeout)
900
907#define sys_port_trace_k_queue_queue_insert_exit(queue, alloc, ret)
908
913#define sys_port_trace_k_queue_append_enter(queue)
914
919#define sys_port_trace_k_queue_append_exit(queue)
920
925#define sys_port_trace_k_queue_alloc_append_enter(queue)
926
932#define sys_port_trace_k_queue_alloc_append_exit(queue, ret)
933
938#define sys_port_trace_k_queue_prepend_enter(queue)
939
944#define sys_port_trace_k_queue_prepend_exit(queue)
945
950#define sys_port_trace_k_queue_alloc_prepend_enter(queue)
951
957#define sys_port_trace_k_queue_alloc_prepend_exit(queue, ret)
958
963#define sys_port_trace_k_queue_insert_enter(queue)
964
970#define sys_port_trace_k_queue_insert_blocking(queue, timeout)
971
976#define sys_port_trace_k_queue_insert_exit(queue)
977
982#define sys_port_trace_k_queue_append_list_enter(queue)
983
989#define sys_port_trace_k_queue_append_list_exit(queue, ret)
990
995#define sys_port_trace_k_queue_merge_slist_enter(queue)
996
1002#define sys_port_trace_k_queue_merge_slist_exit(queue, ret)
1003
1009#define sys_port_trace_k_queue_get_enter(queue, timeout)
1010
1016#define sys_port_trace_k_queue_get_blocking(queue, timeout)
1017
1024#define sys_port_trace_k_queue_get_exit(queue, timeout, ret)
1025
1030#define sys_port_trace_k_queue_remove_enter(queue)
1031
1037#define sys_port_trace_k_queue_remove_exit(queue, ret)
1038
1043#define sys_port_trace_k_queue_unique_append_enter(queue)
1044
1051#define sys_port_trace_k_queue_unique_append_exit(queue, ret)
1052
1058#define sys_port_trace_k_queue_peek_head(queue, ret)
1059
1065#define sys_port_trace_k_queue_peek_tail(queue, ret)
1066 /* end of subsys_tracing_apis_queue */
1068
1079#define sys_port_trace_k_fifo_init_enter(fifo)
1080
1085#define sys_port_trace_k_fifo_init_exit(fifo)
1086
1091#define sys_port_trace_k_fifo_cancel_wait_enter(fifo)
1092
1097#define sys_port_trace_k_fifo_cancel_wait_exit(fifo)
1098
1104#define sys_port_trace_k_fifo_put_enter(fifo, data)
1105
1111#define sys_port_trace_k_fifo_put_exit(fifo, data)
1112
1118#define sys_port_trace_k_fifo_alloc_put_enter(fifo, data)
1119
1126#define sys_port_trace_k_fifo_alloc_put_exit(fifo, data, ret)
1127
1134#define sys_port_trace_k_fifo_put_list_enter(fifo, head, tail)
1135
1142#define sys_port_trace_k_fifo_put_list_exit(fifo, head, tail)
1143
1149#define sys_port_trace_k_fifo_alloc_put_slist_enter(fifo, list)
1150
1156#define sys_port_trace_k_fifo_alloc_put_slist_exit(fifo, list)
1157
1163#define sys_port_trace_k_fifo_get_enter(fifo, timeout)
1164
1171#define sys_port_trace_k_fifo_get_exit(fifo, timeout, ret)
1172
1177#define sys_port_trace_k_fifo_peek_head_enter(fifo)
1178
1184#define sys_port_trace_k_fifo_peek_head_exit(fifo, ret)
1185
1190#define sys_port_trace_k_fifo_peek_tail_enter(fifo)
1191
1197#define sys_port_trace_k_fifo_peek_tail_exit(fifo, ret)
1198 /* end of subsys_tracing_apis_fifo */
1200
1211#define sys_port_trace_k_lifo_init_enter(lifo)
1212
1217#define sys_port_trace_k_lifo_init_exit(lifo)
1218
1224#define sys_port_trace_k_lifo_put_enter(lifo, data)
1225
1231#define sys_port_trace_k_lifo_put_exit(lifo, data)
1232
1238#define sys_port_trace_k_lifo_alloc_put_enter(lifo, data)
1239
1246#define sys_port_trace_k_lifo_alloc_put_exit(lifo, data, ret)
1247
1253#define sys_port_trace_k_lifo_get_enter(lifo, timeout)
1254
1261#define sys_port_trace_k_lifo_get_exit(lifo, timeout, ret)
1262 /* end of subsys_tracing_apis_lifo */
1264
1275#define sys_port_trace_k_stack_init(stack)
1276
1281#define sys_port_trace_k_stack_alloc_init_enter(stack)
1282
1288#define sys_port_trace_k_stack_alloc_init_exit(stack, ret)
1289
1294#define sys_port_trace_k_stack_cleanup_enter(stack)
1295
1301#define sys_port_trace_k_stack_cleanup_exit(stack, ret)
1302
1307#define sys_port_trace_k_stack_push_enter(stack)
1308
1314#define sys_port_trace_k_stack_push_exit(stack, ret)
1315
1321#define sys_port_trace_k_stack_pop_enter(stack, timeout)
1322
1328#define sys_port_trace_k_stack_pop_blocking(stack, timeout)
1329
1336#define sys_port_trace_k_stack_pop_exit(stack, timeout, ret)
1337 /* end of subsys_tracing_apis_stack */
1339
1350#define sys_port_trace_k_msgq_init(msgq)
1351
1356#define sys_port_trace_k_msgq_alloc_init_enter(msgq)
1357
1363#define sys_port_trace_k_msgq_alloc_init_exit(msgq, ret)
1364
1369#define sys_port_trace_k_msgq_cleanup_enter(msgq)
1370
1376#define sys_port_trace_k_msgq_cleanup_exit(msgq, ret)
1377
1383#define sys_port_trace_k_msgq_put_enter(msgq, timeout)
1384
1390#define sys_port_trace_k_msgq_put_blocking(msgq, timeout)
1391
1398#define sys_port_trace_k_msgq_put_exit(msgq, timeout, ret)
1399
1405#define sys_port_trace_k_msgq_get_enter(msgq, timeout)
1406
1412#define sys_port_trace_k_msgq_get_blocking(msgq, timeout)
1413
1420#define sys_port_trace_k_msgq_get_exit(msgq, timeout, ret)
1421
1427#define sys_port_trace_k_msgq_peek(msgq, ret)
1428
1433#define sys_port_trace_k_msgq_purge(msgq)
1434 /* end of subsys_tracing_apis_msgq */
1436
1447#define sys_port_trace_k_mbox_init(mbox)
1448
1454#define sys_port_trace_k_mbox_message_put_enter(mbox, timeout)
1455
1461#define sys_port_trace_k_mbox_message_put_blocking(mbox, timeout)
1462
1469#define sys_port_trace_k_mbox_message_put_exit(mbox, timeout, ret)
1470
1476#define sys_port_trace_k_mbox_put_enter(mbox, timeout)
1477
1484#define sys_port_trace_k_mbox_put_exit(mbox, timeout, ret)
1485
1491#define sys_port_trace_k_mbox_async_put_enter(mbox, sem)
1492
1498#define sys_port_trace_k_mbox_async_put_exit(mbox, sem)
1499
1505#define sys_port_trace_k_mbox_get_enter(mbox, timeout)
1506
1512#define sys_port_trace_k_mbox_get_blocking(mbox, timeout)
1513
1520#define sys_port_trace_k_mbox_get_exit(mbox, timeout, ret)
1521
1526#define sys_port_trace_k_mbox_data_get(rx_msg)
1527 /* end of subsys_tracing_apis_mbox */
1529
1540#define sys_port_trace_k_pipe_init(pipe)
1541
1546#define sys_port_trace_k_pipe_cleanup_enter(pipe)
1547
1553#define sys_port_trace_k_pipe_cleanup_exit(pipe, ret)
1554
1559#define sys_port_trace_k_pipe_alloc_init_enter(pipe)
1560
1566#define sys_port_trace_k_pipe_alloc_init_exit(pipe, ret)
1567
1572#define sys_port_trace_k_pipe_flush_enter(pipe)
1573
1578#define sys_port_trace_k_pipe_flush_exit(pipe)
1579
1584#define sys_port_trace_k_pipe_buffer_flush_enter(pipe)
1585
1590#define sys_port_trace_k_pipe_buffer_flush_exit(pipe)
1591
1597#define sys_port_trace_k_pipe_put_enter(pipe, timeout)
1598
1604#define sys_port_trace_k_pipe_put_blocking(pipe, timeout)
1605
1612#define sys_port_trace_k_pipe_put_exit(pipe, timeout, ret)
1613
1619#define sys_port_trace_k_pipe_get_enter(pipe, timeout)
1620
1626#define sys_port_trace_k_pipe_get_blocking(pipe, timeout)
1627
1634#define sys_port_trace_k_pipe_get_exit(pipe, timeout, ret)
1635 /* end of subsys_tracing_apis_pipe */
1637
1648#define sys_port_trace_k_heap_init(h)
1649
1655#define sys_port_trace_k_heap_aligned_alloc_enter(h, timeout)
1656
1662#define sys_port_trace_k_heap_aligned_alloc_blocking(h, timeout)
1663
1670#define sys_port_trace_k_heap_aligned_alloc_exit(h, timeout, ret)
1671
1677#define sys_port_trace_k_heap_alloc_enter(h, timeout)
1678
1685#define sys_port_trace_k_heap_alloc_exit(h, timeout, ret)
1686
1691#define sys_port_trace_k_heap_free(h)
1692
1697#define sys_port_trace_k_heap_sys_k_aligned_alloc_enter(heap)
1698
1704#define sys_port_trace_k_heap_sys_k_aligned_alloc_exit(heap, ret)
1705
1710#define sys_port_trace_k_heap_sys_k_malloc_enter(heap)
1711
1717#define sys_port_trace_k_heap_sys_k_malloc_exit(heap, ret)
1718
1724#define sys_port_trace_k_heap_sys_k_free_enter(heap, heap_ref)
1725
1731#define sys_port_trace_k_heap_sys_k_free_exit(heap, heap_ref)
1732
1737#define sys_port_trace_k_heap_sys_k_calloc_enter(heap)
1738
1744#define sys_port_trace_k_heap_sys_k_calloc_exit(heap, ret)
1745 /* end of subsys_tracing_apis_heap */
1747
1759#define sys_port_trace_k_mem_slab_init(slab, rc)
1760
1766#define sys_port_trace_k_mem_slab_alloc_enter(slab, timeout)
1767
1773#define sys_port_trace_k_mem_slab_alloc_blocking(slab, timeout)
1774
1781#define sys_port_trace_k_mem_slab_alloc_exit(slab, timeout, ret)
1782
1787#define sys_port_trace_k_mem_slab_free_enter(slab)
1788
1793#define sys_port_trace_k_mem_slab_free_exit(slab)
1794 /* end of subsys_tracing_apis_mslab */
1796
1807#define sys_port_trace_k_timer_init(timer)
1808
1815#define sys_port_trace_k_timer_start(timer, duration, period)
1816
1821#define sys_port_trace_k_timer_stop(timer)
1822
1827#define sys_port_trace_k_timer_status_sync_enter(timer)
1828
1834#define sys_port_trace_k_timer_status_sync_blocking(timer, timeout)
1835
1841#define sys_port_trace_k_timer_status_sync_exit(timer, result)
1842 /* end of subsys_tracing_apis_timer */
1844
1855#define sys_port_trace_k_event_init(event)
1856
1863#define sys_port_trace_k_event_post_enter(event, events, events_mask)
1864
1871#define sys_port_trace_k_event_post_exit(event, events, events_mask)
1872
1880#define sys_port_trace_k_event_wait_enter(event, events, options, timeout)
1881
1889#define sys_port_trace_k_event_wait_blocking(event, events, options, timeout)
1890
1897#define sys_port_trace_k_event_wait_exit(event, events, ret)
1898 /* end of subsys_tracing_apis_event */
1900
1911#define sys_port_trace_pm_system_suspend_enter(ticks)
1912
1918#define sys_port_trace_pm_system_suspend_exit(ticks, state)
1919 /* end of subsys_tracing_apis_pm_system */
1921
1932#define sys_port_trace_pm_device_runtime_get_enter(dev)
1933
1939#define sys_port_trace_pm_device_runtime_get_exit(dev, ret)
1940
1945#define sys_port_trace_pm_device_runtime_put_enter(dev)
1946
1952#define sys_port_trace_pm_device_runtime_put_exit(dev, ret)
1953
1959#define sys_port_trace_pm_device_runtime_put_async_enter(dev, delay)
1960
1967#define sys_port_trace_pm_device_runtime_put_async_exit(dev, delay, ret)
1968
1973#define sys_port_trace_pm_device_runtime_enable_enter(dev)
1974
1980#define sys_port_trace_pm_device_runtime_enable_exit(dev, ret)
1981
1986#define sys_port_trace_pm_device_runtime_disable_enter(dev)
1987
1993#define sys_port_trace_pm_device_runtime_disable_exit(dev, ret)
1994 /* end of subsys_tracing_apis_pm_device_runtime */
1996
1997#if defined(CONFIG_PERCEPIO_TRACERECORDER)
1998#include "tracing_tracerecorder.h"
1999#else
2004
2009
2014
2019#endif /* CONFIG_PERCEPIO_TRACERECORDER */
2020 /* end of subsys_tracing_apis */
2022 /* end of subsys_tracing */
2024
2025#endif
2026#endif /* ZEPHYR_INCLUDE_TRACING_TRACING_H_ */
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.
Public kernel APIs.