rtos_trace/
macros.rs

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