1#[macro_export]
2macro_rules! global_trace {
3 ($ident:ident) => {
4 #[no_mangle]
5 fn _rtos_trace_start() {
6 <$ident as $crate::RtosTrace>::start()
7 }
8 #[no_mangle]
9 fn _rtos_trace_stop() {
10 <$ident as $crate::RtosTrace>::stop()
11 }
12 #[no_mangle]
13 fn _rtos_trace_task_new(id: u32) {
14 <$ident as $crate::RtosTrace>::task_new(id)
15 }
16 #[no_mangle]
17 fn _rtos_trace_task_new_stackless(id: u32, name: &'static str, priority: u32) {
18 <$ident as $crate::RtosTrace>::task_new_stackless(id, name, priority)
19 }
20 #[no_mangle]
21 fn _rtos_trace_task_send_info(id: u32, info: $crate::TaskInfo) {
22 <$ident as $crate::RtosTrace>::task_send_info(id, info)
23 }
24 #[no_mangle]
25 fn _rtos_trace_task_terminate(id: u32) {
26 <$ident as $crate::RtosTrace>::task_terminate(id)
27 }
28 #[no_mangle]
29 fn _rtos_trace_task_exec_begin(id: u32) {
30 <$ident as $crate::RtosTrace>::task_exec_begin(id)
31 }
32 #[no_mangle]
33 fn _rtos_trace_task_exec_end() {
34 <$ident as $crate::RtosTrace>::task_exec_end()
35 }
36 #[no_mangle]
37 fn _rtos_trace_task_ready_begin(id: u32) {
38 <$ident as $crate::RtosTrace>::task_ready_begin(id)
39 }
40 #[no_mangle]
41 fn _rtos_trace_task_ready_end(id: u32) {
42 <$ident as $crate::RtosTrace>::task_ready_end(id)
43 }
44
45 #[no_mangle]
46 fn _rtos_trace_system_idle() {
47 <$ident as $crate::RtosTrace>::system_idle()
48 }
49
50 #[no_mangle]
51 fn _rtos_trace_isr_enter() {
52 <$ident as $crate::RtosTrace>::isr_enter()
53 }
54 #[no_mangle]
55 fn _rtos_trace_isr_exit() {
56 <$ident as $crate::RtosTrace>::isr_exit()
57 }
58 #[no_mangle]
59 fn _rtos_trace_isr_exit_to_scheduler() {
60 <$ident as $crate::RtosTrace>::isr_exit_to_scheduler()
61 }
62
63 #[no_mangle]
64 fn _rtos_trace_name_marker(id: u32, name: &'static str) {
65 <$ident as $crate::RtosTrace>::name_marker(id, name)
66 }
67 #[no_mangle]
68 fn _rtos_trace_marker(id: u32) {
69 <$ident as $crate::RtosTrace>::marker(id)
70 }
71 #[no_mangle]
72 fn _rtos_trace_marker_begin(id: u32) {
73 <$ident as $crate::RtosTrace>::marker_begin(id)
74 }
75 #[no_mangle]
76 fn _rtos_trace_marker_end(id: u32) {
77 <$ident as $crate::RtosTrace>::marker_end(id)
78 }
79 };
80}
81
82#[macro_export]
83macro_rules! global_os_callbacks {
84 ($ident:ident) => {
85 #[no_mangle]
86 fn _rtos_trace_task_list() {
87 <$ident as $crate::RtosTraceOSCallbacks>::task_list()
88 }
89 #[no_mangle]
90 fn _rtos_trace_time() -> u64 {
91 <$ident as $crate::RtosTraceOSCallbacks>::time()
92 }
93 };
94}
95
96#[macro_export]
97macro_rules! global_application_callbacks {
98 ($ident:ident) => {
99 #[no_mangle]
100 fn _rtos_trace_system_description() {
101 <$ident as $crate::RtosTraceApplicationCallbacks>::system_description()
102 }
103 #[no_mangle]
104 fn _rtos_trace_sysclock() -> u32 {
105 <$ident as $crate::RtosTraceApplicationCallbacks>::sysclock()
106 }
107 };
108}