rtos_trace/
macros.rs

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}