1#![allow(unused)]
2
3use crate::TaskInfo;
4
5#[cfg(feature = "trace_impl")]
6extern "Rust" {
7 fn _rtos_trace_start();
8 fn _rtos_trace_stop();
9
10 fn _rtos_trace_task_new(id: u32);
11 fn _rtos_trace_task_new_stackless(id: u32, name: &'static str, priority: u32);
12 fn _rtos_trace_task_terminate(id: u32);
13 fn _rtos_trace_task_exec_begin(id: u32);
14 fn _rtos_trace_task_exec_end();
15 fn _rtos_trace_task_ready_begin(id: u32);
16 fn _rtos_trace_task_ready_end(id: u32);
17
18 fn _rtos_trace_system_idle();
19
20 fn _rtos_trace_isr_enter();
21 fn _rtos_trace_isr_exit();
22 fn _rtos_trace_isr_exit_to_scheduler();
23
24 fn _rtos_trace_name_marker(id: u32, name: &'static str);
25 fn _rtos_trace_marker(id: u32);
26 fn _rtos_trace_marker_begin(id: u32);
27 fn _rtos_trace_marker_end(id: u32);
28
29 fn _rtos_trace_task_send_info(id: u32, info: TaskInfo);
30 fn _rtos_trace_time() -> u64;
31
32 fn _rtos_trace_system_description();
33 fn _rtos_trace_sysclock() -> u32;
34}
35
36#[inline]
37pub fn start() {
38 #[cfg(feature = "trace_impl")]
39 unsafe {
40 _rtos_trace_start()
41 }
42}
43#[inline]
44pub fn stop() {
45 #[cfg(feature = "trace_impl")]
46 unsafe {
47 _rtos_trace_stop()
48 }
49}
50#[inline]
51pub fn task_new(id: u32) {
52 #[cfg(feature = "trace_impl")]
53 unsafe {
54 _rtos_trace_task_new(id)
55 }
56}
57#[inline]
58pub fn task_new_stackless(id: u32, name: &'static str, priority: u32) {
59 #[cfg(feature = "trace_impl")]
60 unsafe {
61 _rtos_trace_task_new_stackless(id, name, priority)
62 }
63}
64#[inline]
65pub fn task_terminate(id: u32) {
66 #[cfg(feature = "trace_impl")]
67 unsafe {
68 _rtos_trace_task_terminate(id)
69 }
70}
71#[inline]
72pub fn task_exec_begin(id: u32) {
73 #[cfg(feature = "trace_impl")]
74 unsafe {
75 _rtos_trace_task_exec_begin(id)
76 }
77}
78#[inline]
79pub fn task_exec_end() {
80 #[cfg(feature = "trace_impl")]
81 unsafe {
82 _rtos_trace_task_exec_end()
83 }
84}
85#[inline]
86pub fn task_ready_begin(id: u32) {
87 #[cfg(feature = "trace_impl")]
88 unsafe {
89 _rtos_trace_task_ready_begin(id)
90 }
91}
92#[inline]
93pub fn task_ready_end(id: u32) {
94 #[cfg(feature = "trace_impl")]
95 unsafe {
96 _rtos_trace_task_ready_end(id)
97 }
98}
99
100#[inline]
101pub fn system_idle() {
102 #[cfg(feature = "trace_impl")]
103 unsafe {
104 _rtos_trace_system_idle()
105 }
106}
107
108#[inline]
109pub fn isr_enter() {
110 #[cfg(feature = "trace_impl")]
111 unsafe {
112 _rtos_trace_isr_enter()
113 }
114}
115#[inline]
116pub fn isr_exit() {
117 #[cfg(feature = "trace_impl")]
118 unsafe {
119 _rtos_trace_isr_exit()
120 }
121}
122#[inline]
123pub fn isr_exit_to_scheduler() {
124 #[cfg(feature = "trace_impl")]
125 unsafe {
126 _rtos_trace_isr_exit_to_scheduler()
127 }
128}
129
130#[inline]
131pub fn name_marker(id: u32, name: &'static str) {
132 #[cfg(feature = "trace_impl")]
133 unsafe {
134 _rtos_trace_name_marker(id, name)
135 }
136}
137#[inline]
138pub fn marker(id: u32) {
139 #[cfg(feature = "trace_impl")]
140 unsafe {
141 _rtos_trace_marker(id)
142 }
143}
144#[inline]
145pub fn marker_begin(id: u32) {
146 #[cfg(feature = "trace_impl")]
147 unsafe {
148 _rtos_trace_marker_begin(id)
149 }
150}
151#[inline]
152pub fn marker_end(id: u32) {
153 #[cfg(feature = "trace_impl")]
154 unsafe {
155 _rtos_trace_marker_end(id)
156 }
157}
158
159#[inline]
160pub fn task_send_info(id: u32, info: TaskInfo) {
161 #[cfg(feature = "trace_impl")]
162 unsafe {
163 _rtos_trace_task_send_info(id, info)
164 }
165}
166#[inline]
167pub fn time() -> u64 {
168 #[cfg(feature = "trace_impl")]
169 unsafe {
170 _rtos_trace_time()
171 }
172 #[cfg(not(feature = "trace_impl"))]
173 0
174}
175
176#[inline]
177pub fn system_description() {
178 #[cfg(feature = "trace_impl")]
179 unsafe {
180 _rtos_trace_system_description()
181 }
182}
183#[inline]
184pub fn sysclock() -> u32 {
185 #[cfg(feature = "trace_impl")]
186 unsafe {
187 _rtos_trace_sysclock()
188 }
189 #[cfg(not(feature = "trace_impl"))]
190 0
191}