| 221 | } |
| 222 | |
| 223 | rt_err_t rt_ktime_hrtimer_stop(rt_ktime_hrtimer_t timer) |
| 224 | { |
| 225 | rt_base_t level; |
| 226 | |
| 227 | RT_ASSERT(timer != RT_NULL); /* timer check */ |
| 228 | |
| 229 | level = rt_spin_lock_irqsave(&_spinlock); |
| 230 | |
| 231 | if (!(timer->flag & RT_TIMER_FLAG_ACTIVATED)) |
| 232 | { |
| 233 | rt_spin_unlock_irqrestore(&_spinlock, level); |
| 234 | return -RT_ERROR; |
| 235 | } |
| 236 | |
| 237 | rt_list_remove(&timer->node); |
| 238 | timer->flag &= ~RT_TIMER_FLAG_ACTIVATED; |
| 239 | _set_next_timeout_locked(); |
| 240 | |
| 241 | rt_spin_unlock_irqrestore(&_spinlock, level); |
| 242 | |
| 243 | return RT_EOK; |
| 244 | } |
| 245 | |
| 246 | rt_err_t rt_ktime_hrtimer_control(rt_ktime_hrtimer_t timer, int cmd, void *arg) |
| 247 | { |
no test coverage detected