rt 0.19.0

A real-time operating system capable of full preemption
Documentation
#![cfg_attr(target_os = "none", no_std)]

pub mod cycle;
pub mod stack;
pub mod sync;
pub mod task;
pub mod tick;
pub mod timer;

#[doc(hidden)]
pub mod cell;

#[doc(hidden)]
pub mod ctor;

#[cfg(mpu)]
pub mod mpu;

#[cfg(any(mpu_armv6m, mpu_armv7m, mpu_armv7r, mpu_riscv))]
mod align;

mod bindings;
mod list;
mod ptr_macros;

#[inline]
pub fn abort() -> ! {
    unsafe { bindings::rt_abort() }
}

#[inline]
pub fn trap() -> ! {
    unsafe { bindings::rt_trap() }
}

#[inline]
pub fn exit() -> ! {
    unsafe { bindings::rt_exit() }
}

/* The paste macro must be re-exported so rt's macros can use it without
 * other crates directly using paste. */
#[doc(hidden)]
pub use paste;

#[cfg(test)]
fn test_init() {
    use std::sync::Once;

    static TEST_INIT: Once = Once::new();
    TEST_INIT.call_once(|| unsafe {
        bindings::rt_start_sched();
    });
}

#[cfg(target_os = "none")]
mod panic;