use veecle_freertos_sys::bindings::{BaseType_t, taskYIELD};
#[derive(Debug)]
pub struct InterruptContext {
x_higher_priority_task_woken: BaseType_t,
}
impl Default for InterruptContext {
fn default() -> InterruptContext {
InterruptContext::new()
}
}
impl InterruptContext {
pub fn new() -> InterruptContext {
InterruptContext {
x_higher_priority_task_woken: 0,
}
}
pub fn get_task_field_mut(&mut self) -> *mut BaseType_t {
&raw mut self.x_higher_priority_task_woken
}
pub fn higher_priority_task_woken(&self) -> BaseType_t {
self.x_higher_priority_task_woken
}
}
impl Drop for InterruptContext {
fn drop(&mut self) {
if self.x_higher_priority_task_woken == 1 {
taskYIELD()
}
}
}