tracing_user.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. /*
  2. * Copyright (c) 2020 Lexmark International, Inc.
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #ifndef _TRACE_USER_H
  7. #define _TRACE_USER_H
  8. #include <kernel.h>
  9. #include <kernel_structs.h>
  10. #include <init.h>
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. void sys_trace_thread_switched_in_user(struct k_thread *thread);
  15. void sys_trace_thread_switched_out_user(struct k_thread *thread);
  16. void sys_trace_isr_enter_user(void);
  17. void sys_trace_isr_exit_user(void);
  18. void sys_trace_idle_user(void);
  19. void sys_trace_k_thread_switched_in(void);
  20. void sys_trace_k_thread_switched_out(void);
  21. void sys_trace_isr_enter(void);
  22. void sys_trace_isr_exit(void);
  23. void sys_trace_idle(void);
  24. #define sys_port_trace_k_thread_foreach_enter()
  25. #define sys_port_trace_k_thread_foreach_exit()
  26. #define sys_port_trace_k_thread_foreach_unlocked_enter()
  27. #define sys_port_trace_k_thread_foreach_unlocked_exit()
  28. #define sys_port_trace_k_thread_create(new_thread)
  29. #define sys_port_trace_k_thread_user_mode_enter()
  30. #define sys_port_trace_k_thread_heap_assign(thread, heap)
  31. #define sys_port_trace_k_thread_join_enter(thread, timeout)
  32. #define sys_port_trace_k_thread_join_blocking(thread, timeout)
  33. #define sys_port_trace_k_thread_join_exit(thread, timeout, ret)
  34. #define sys_port_trace_k_thread_sleep_enter(timeout)
  35. #define sys_port_trace_k_thread_sleep_exit(timeout, ret)
  36. #define sys_port_trace_k_thread_msleep_enter(ms)
  37. #define sys_port_trace_k_thread_msleep_exit(ms, ret)
  38. #define sys_port_trace_k_thread_usleep_enter(us)
  39. #define sys_port_trace_k_thread_usleep_exit(us, ret)
  40. #define sys_port_trace_k_thread_busy_wait_enter(usec_to_wait)
  41. #define sys_port_trace_k_thread_busy_wait_exit(usec_to_wait)
  42. #define sys_port_trace_k_thread_yield()
  43. #define sys_port_trace_k_thread_wakeup(thread)
  44. #define sys_port_trace_k_thread_start(thread)
  45. #define sys_port_trace_k_thread_abort(thread)
  46. #define sys_port_trace_k_thread_suspend_enter(thread)
  47. #define sys_port_trace_k_thread_suspend_exit(thread)
  48. #define sys_port_trace_k_thread_resume_enter(thread)
  49. #define sys_port_trace_k_thread_sched_lock()
  50. #define sys_port_trace_k_thread_sched_unlock()
  51. #define sys_port_trace_k_thread_name_set(thread, ret)
  52. #define sys_port_trace_k_thread_switched_out() sys_trace_k_thread_switched_out()
  53. #define sys_port_trace_k_thread_switched_in() sys_trace_k_thread_switched_in()
  54. #define sys_port_trace_k_thread_info(thread)
  55. #define sys_port_trace_k_thread_sched_wakeup(thread)
  56. #define sys_port_trace_k_thread_sched_abort(thread)
  57. #define sys_port_trace_k_thread_sched_priority_set(thread, prio)
  58. #define sys_port_trace_k_thread_sched_ready(thread)
  59. #define sys_port_trace_k_thread_sched_pend(thread)
  60. #define sys_port_trace_k_thread_sched_resume(thread)
  61. #define sys_port_trace_k_thread_sched_suspend(thread)
  62. #define sys_port_trace_k_work_init(work)
  63. #define sys_port_trace_k_work_submit_to_queue_enter(queue, work)
  64. #define sys_port_trace_k_work_submit_to_queue_exit(queue, work, ret)
  65. #define sys_port_trace_k_work_submit_enter(work)
  66. #define sys_port_trace_k_work_submit_exit(work, ret)
  67. #define sys_port_trace_k_work_flush_enter(work)
  68. #define sys_port_trace_k_work_flush_blocking(work, timeout)
  69. #define sys_port_trace_k_work_flush_exit(work, ret)
  70. #define sys_port_trace_k_work_cancel_enter(work)
  71. #define sys_port_trace_k_work_cancel_exit(work, ret)
  72. #define sys_port_trace_k_work_cancel_sync_enter(work, sync)
  73. #define sys_port_trace_k_work_cancel_sync_blocking(work, sync)
  74. #define sys_port_trace_k_work_cancel_sync_exit(work, sync, ret)
  75. #define sys_port_trace_k_work_queue_start_enter(queue)
  76. #define sys_port_trace_k_work_queue_start_exit(queue)
  77. #define sys_port_trace_k_work_queue_drain_enter(queue)
  78. #define sys_port_trace_k_work_queue_drain_exit(queue, ret)
  79. #define sys_port_trace_k_work_queue_unplug_enter(queue)
  80. #define sys_port_trace_k_work_queue_unplug_exit(queue, ret)
  81. #define sys_port_trace_k_work_delayable_init(dwork)
  82. #define sys_port_trace_k_work_schedule_for_queue_enter(queue, dwork, delay)
  83. #define sys_port_trace_k_work_schedule_for_queue_exit(queue, dwork, delay, \
  84. ret)
  85. #define sys_port_trace_k_work_schedule_enter(dwork, delay)
  86. #define sys_port_trace_k_work_schedule_exit(dwork, delay, ret)
  87. #define sys_port_trace_k_work_reschedule_for_queue_enter(queue, dwork, delay)
  88. #define sys_port_trace_k_work_reschedule_for_queue_exit(queue, dwork, delay, \
  89. ret)
  90. #define sys_port_trace_k_work_reschedule_enter(dwork, delay)
  91. #define sys_port_trace_k_work_reschedule_exit(dwork, delay, ret)
  92. #define sys_port_trace_k_work_flush_delayable_enter(dwork, sync)
  93. #define sys_port_trace_k_work_flush_delayable_exit(dwork, sync, ret)
  94. #define sys_port_trace_k_work_cancel_delayable_enter(dwork)
  95. #define sys_port_trace_k_work_cancel_delayable_exit(dwork, ret)
  96. #define sys_port_trace_k_work_cancel_delayable_sync_enter(dwork, sync)
  97. #define sys_port_trace_k_work_cancel_delayable_sync_exit(dwork, sync, ret)
  98. #define sys_port_trace_k_work_poll_init_enter(work)
  99. #define sys_port_trace_k_work_poll_init_exit(work)
  100. #define sys_port_trace_k_work_poll_submit_to_queue_enter(work_q, work, \
  101. timeout)
  102. #define sys_port_trace_k_work_poll_submit_to_queue_blocking(work_q, work, \
  103. timeout)
  104. #define sys_port_trace_k_work_poll_submit_to_queue_exit(work_q, work, timeout, \
  105. ret)
  106. #define sys_port_trace_k_work_poll_submit_enter(work, timeout)
  107. #define sys_port_trace_k_work_poll_submit_exit(work, timeout, ret)
  108. #define sys_port_trace_k_work_poll_cancel_enter(work)
  109. #define sys_port_trace_k_work_poll_cancel_exit(work, ret)
  110. #define sys_port_trace_k_poll_api_event_init(event)
  111. #define sys_port_trace_k_poll_api_poll_enter(events)
  112. #define sys_port_trace_k_poll_api_poll_exit(events, ret)
  113. #define sys_port_trace_k_poll_api_signal_init(signal)
  114. #define sys_port_trace_k_poll_api_signal_reset(signal)
  115. #define sys_port_trace_k_poll_api_signal_check(signal)
  116. #define sys_port_trace_k_poll_api_signal_raise(signal, ret)
  117. #define sys_port_trace_k_sem_init(sem, ret)
  118. #define sys_port_trace_k_sem_give_enter(sem)
  119. #define sys_port_trace_k_sem_give_exit(sem)
  120. #define sys_port_trace_k_sem_take_enter(sem, timeout)
  121. #define sys_port_trace_k_sem_take_blocking(sem, timeout)
  122. #define sys_port_trace_k_sem_take_exit(sem, timeout, ret)
  123. #define sys_port_trace_k_sem_reset(sem)
  124. #define sys_port_trace_k_mutex_init(mutex, ret)
  125. #define sys_port_trace_k_mutex_lock_enter(mutex, timeout)
  126. #define sys_port_trace_k_mutex_lock_blocking(mutex, timeout)
  127. #define sys_port_trace_k_mutex_lock_exit(mutex, timeout, ret)
  128. #define sys_port_trace_k_mutex_unlock_enter(mutex)
  129. #define sys_port_trace_k_mutex_unlock_exit(mutex, ret)
  130. #define sys_port_trace_k_condvar_init(condvar, ret)
  131. #define sys_port_trace_k_condvar_signal_enter(condvar)
  132. #define sys_port_trace_k_condvar_signal_blocking(condvar, timeout)
  133. #define sys_port_trace_k_condvar_signal_exit(condvar, ret)
  134. #define sys_port_trace_k_condvar_broadcast_enter(condvar)
  135. #define sys_port_trace_k_condvar_broadcast_exit(condvar, ret)
  136. #define sys_port_trace_k_condvar_wait_enter(condvar)
  137. #define sys_port_trace_k_condvar_wait_exit(condvar, ret)
  138. #define sys_port_trace_k_queue_init(queue)
  139. #define sys_port_trace_k_queue_cancel_wait(queue)
  140. #define sys_port_trace_k_queue_queue_insert_enter(queue, alloc)
  141. #define sys_port_trace_k_queue_queue_insert_blocking(queue, alloc, timeout)
  142. #define sys_port_trace_k_queue_queue_insert_exit(queue, alloc, ret)
  143. #define sys_port_trace_k_queue_append_enter(queue)
  144. #define sys_port_trace_k_queue_append_exit(queue)
  145. #define sys_port_trace_k_queue_alloc_append_enter(queue)
  146. #define sys_port_trace_k_queue_alloc_append_exit(queue, ret)
  147. #define sys_port_trace_k_queue_prepend_enter(queue)
  148. #define sys_port_trace_k_queue_prepend_exit(queue)
  149. #define sys_port_trace_k_queue_alloc_prepend_enter(queue)
  150. #define sys_port_trace_k_queue_alloc_prepend_exit(queue, ret)
  151. #define sys_port_trace_k_queue_insert_enter(queue)
  152. #define sys_port_trace_k_queue_insert_blocking(queue, timeout)
  153. #define sys_port_trace_k_queue_insert_exit(queue)
  154. #define sys_port_trace_k_queue_append_list_enter(queue)
  155. #define sys_port_trace_k_queue_append_list_exit(queue, ret)
  156. #define sys_port_trace_k_queue_merge_slist_enter(queue)
  157. #define sys_port_trace_k_queue_merge_slist_exit(queue, ret)
  158. #define sys_port_trace_k_queue_get_enter(queue, timeout)
  159. #define sys_port_trace_k_queue_get_blocking(queue, timeout)
  160. #define sys_port_trace_k_queue_get_exit(queue, timeout, ret)
  161. #define sys_port_trace_k_queue_remove_enter(queue)
  162. #define sys_port_trace_k_queue_remove_exit(queue, ret)
  163. #define sys_port_trace_k_queue_unique_append_enter(queue)
  164. #define sys_port_trace_k_queue_unique_append_exit(queue, ret)
  165. #define sys_port_trace_k_queue_peek_head(queue, ret)
  166. #define sys_port_trace_k_queue_peek_tail(queue, ret)
  167. #define sys_port_trace_k_fifo_init_enter(fifo)
  168. #define sys_port_trace_k_fifo_init_exit(fifo)
  169. #define sys_port_trace_k_fifo_cancel_wait_enter(fifo)
  170. #define sys_port_trace_k_fifo_cancel_wait_exit(fifo)
  171. #define sys_port_trace_k_fifo_put_enter(fifo, data)
  172. #define sys_port_trace_k_fifo_put_exit(fifo, data)
  173. #define sys_port_trace_k_fifo_alloc_put_enter(fifo, data)
  174. #define sys_port_trace_k_fifo_alloc_put_exit(fifo, data, ret)
  175. #define sys_port_trace_k_fifo_put_list_enter(fifo, head, tail)
  176. #define sys_port_trace_k_fifo_put_list_exit(fifo, head, tail)
  177. #define sys_port_trace_k_fifo_put_slist_enter(fifo, list)
  178. #define sys_port_trace_k_fifo_put_slist_exit(fifo, list)
  179. #define sys_port_trace_k_fifo_get_enter(fifo, timeout)
  180. #define sys_port_trace_k_fifo_get_exit(fifo, timeout, ret)
  181. #define sys_port_trace_k_fifo_peek_head_enter(fifo)
  182. #define sys_port_trace_k_fifo_peek_head_exit(fifo, ret)
  183. #define sys_port_trace_k_fifo_peek_tail_enter(fifo)
  184. #define sys_port_trace_k_fifo_peek_tail_exit(fifo, ret)
  185. #define sys_port_trace_k_lifo_init_enter(lifo)
  186. #define sys_port_trace_k_lifo_init_exit(lifo)
  187. #define sys_port_trace_k_lifo_put_enter(lifo, data)
  188. #define sys_port_trace_k_lifo_put_exit(lifo, data)
  189. #define sys_port_trace_k_lifo_alloc_put_enter(lifo, data)
  190. #define sys_port_trace_k_lifo_alloc_put_exit(lifo, data, ret)
  191. #define sys_port_trace_k_lifo_get_enter(lifo, timeout)
  192. #define sys_port_trace_k_lifo_get_exit(lifo, timeout, ret)
  193. #define sys_port_trace_k_stack_init(stack)
  194. #define sys_port_trace_k_stack_alloc_init_enter(stack)
  195. #define sys_port_trace_k_stack_alloc_init_exit(stack, ret)
  196. #define sys_port_trace_k_stack_cleanup_enter(stack)
  197. #define sys_port_trace_k_stack_cleanup_exit(stack, ret)
  198. #define sys_port_trace_k_stack_push_enter(stack)
  199. #define sys_port_trace_k_stack_push_exit(stack, ret)
  200. #define sys_port_trace_k_stack_pop_enter(stack, timeout)
  201. #define sys_port_trace_k_stack_pop_blocking(stack, timeout)
  202. #define sys_port_trace_k_stack_pop_exit(stack, timeout, ret)
  203. #define sys_port_trace_k_msgq_init(msgq)
  204. #define sys_port_trace_k_msgq_alloc_init_enter(msgq)
  205. #define sys_port_trace_k_msgq_alloc_init_exit(msgq, ret)
  206. #define sys_port_trace_k_msgq_cleanup_enter(msgq)
  207. #define sys_port_trace_k_msgq_cleanup_exit(msgq, ret)
  208. #define sys_port_trace_k_msgq_put_enter(msgq, timeout)
  209. #define sys_port_trace_k_msgq_put_blocking(msgq, timeout)
  210. #define sys_port_trace_k_msgq_put_exit(msgq, timeout, ret)
  211. #define sys_port_trace_k_msgq_get_enter(msgq, timeout)
  212. #define sys_port_trace_k_msgq_get_blocking(msgq, timeout)
  213. #define sys_port_trace_k_msgq_get_exit(msgq, timeout, ret)
  214. #define sys_port_trace_k_msgq_peek(msgq, ret)
  215. #define sys_port_trace_k_msgq_purge(msgq)
  216. #define sys_port_trace_k_mbox_init(mbox)
  217. #define sys_port_trace_k_mbox_message_put_enter(mbox, timeout)
  218. #define sys_port_trace_k_mbox_message_put_blocking(mbox, timeout)
  219. #define sys_port_trace_k_mbox_message_put_exit(mbox, timeout, ret)
  220. #define sys_port_trace_k_mbox_put_enter(mbox, timeout)
  221. #define sys_port_trace_k_mbox_put_exit(mbox, timeout, ret)
  222. #define sys_port_trace_k_mbox_async_put_enter(mbox, sem)
  223. #define sys_port_trace_k_mbox_async_put_exit(mbox, sem)
  224. #define sys_port_trace_k_mbox_get_enter(mbox, timeout)
  225. #define sys_port_trace_k_mbox_get_blocking(mbox, timeout)
  226. #define sys_port_trace_k_mbox_get_exit(mbox, timeout, ret)
  227. #define sys_port_trace_k_mbox_data_get(rx_msg)
  228. #define sys_port_trace_k_pipe_init(pipe)
  229. #define sys_port_trace_k_pipe_cleanup_enter(pipe)
  230. #define sys_port_trace_k_pipe_cleanup_exit(pipe, ret)
  231. #define sys_port_trace_k_pipe_alloc_init_enter(pipe)
  232. #define sys_port_trace_k_pipe_alloc_init_exit(pipe, ret)
  233. #define sys_port_trace_k_pipe_put_enter(pipe, timeout)
  234. #define sys_port_trace_k_pipe_put_blocking(pipe, timeout)
  235. #define sys_port_trace_k_pipe_put_exit(pipe, timeout, ret)
  236. #define sys_port_trace_k_pipe_get_enter(pipe, timeout)
  237. #define sys_port_trace_k_pipe_get_blocking(pipe, timeout)
  238. #define sys_port_trace_k_pipe_get_exit(pipe, timeout, ret)
  239. #define sys_port_trace_k_pipe_block_put_enter(pipe, sem)
  240. #define sys_port_trace_k_pipe_block_put_exit(pipe, sem)
  241. #define sys_port_trace_k_heap_init(heap)
  242. #define sys_port_trace_k_heap_aligned_alloc_enter(heap, timeout)
  243. #define sys_port_trace_k_heap_aligned_alloc_blocking(heap, timeout)
  244. #define sys_port_trace_k_heap_aligned_alloc_exit(heap, timeout, ret)
  245. #define sys_port_trace_k_heap_alloc_enter(heap, timeout)
  246. #define sys_port_trace_k_heap_alloc_exit(heap, timeout, ret)
  247. #define sys_port_trace_k_heap_free(heap)
  248. #define sys_port_trace_k_heap_sys_k_aligned_alloc_enter(heap)
  249. #define sys_port_trace_k_heap_sys_k_aligned_alloc_exit(heap, ret)
  250. #define sys_port_trace_k_heap_sys_k_malloc_enter(heap)
  251. #define sys_port_trace_k_heap_sys_k_malloc_exit(heap, ret)
  252. #define sys_port_trace_k_heap_sys_k_free_enter(heap)
  253. #define sys_port_trace_k_heap_sys_k_free_exit(heap)
  254. #define sys_port_trace_k_heap_sys_k_calloc_enter(heap)
  255. #define sys_port_trace_k_heap_sys_k_calloc_exit(heap, ret)
  256. #define sys_port_trace_k_mem_slab_init(slab, rc)
  257. #define sys_port_trace_k_mem_slab_alloc_enter(slab, timeout)
  258. #define sys_port_trace_k_mem_slab_alloc_blocking(slab, timeout)
  259. #define sys_port_trace_k_mem_slab_alloc_exit(slab, timeout, ret)
  260. #define sys_port_trace_k_mem_slab_free_enter(slab)
  261. #define sys_port_trace_k_mem_slab_free_exit(slab)
  262. #define sys_port_trace_k_timer_init(timer)
  263. #define sys_port_trace_k_timer_start(timer)
  264. #define sys_port_trace_k_timer_stop(timer)
  265. #define sys_port_trace_k_timer_status_sync_enter(timer)
  266. #define sys_port_trace_k_timer_status_sync_blocking(timer, timeout)
  267. #define sys_port_trace_k_timer_status_sync_exit(timer, result)
  268. #define sys_port_trace_k_thread_abort_exit(thread)
  269. #define sys_port_trace_k_thread_abort_enter(thread)
  270. #define sys_port_trace_k_thread_resume_exit(thread)
  271. #ifdef __cplusplus
  272. }
  273. #endif
  274. #endif /* _TRACE_USER_H */