extern "Rust" {
fn __rivet_board_init();
fn __rivet_board_now_us() -> u64;
fn __rivet_board_tick_start(hz: u32);
fn __rivet_board_console_write(ptr: *const u8, len: usize);
fn __rivet_board_console_kick_tx();
fn __rivet_board_reset() -> !;
fn __rivet_board_exit(code: u32) -> !;
fn __rivet_board_wdt_init(period_us: u32);
fn __rivet_board_wdt_feed();
fn __rivet_board_wdt_check();
}
#[cfg(feature = "trace")]
extern "Rust" {
fn __rivet_board_trace_write(ptr: *const u8, len: usize);
}
pub fn init() {
unsafe { __rivet_board_init() }
}
pub fn now_us() -> u64 {
unsafe { __rivet_board_now_us() }
}
pub fn tick_start(hz: u32) {
unsafe { __rivet_board_tick_start(hz) }
}
pub fn console_write(bytes: &[u8]) {
unsafe { __rivet_board_console_write(bytes.as_ptr(), bytes.len()) }
}
pub fn console_kick_tx() {
unsafe { __rivet_board_console_kick_tx() }
}
pub fn reset() -> ! {
crate::console::flush_sync();
unsafe { __rivet_board_reset() }
}
pub fn exit(code: u32) -> ! {
crate::console::flush_sync();
unsafe { __rivet_board_exit(code) }
}
pub fn wdt_init(period_us: u32) {
unsafe { __rivet_board_wdt_init(period_us) }
}
pub fn wdt_feed() {
unsafe { __rivet_board_wdt_feed() }
}
pub fn wdt_check() {
unsafe { __rivet_board_wdt_check() }
}
#[cfg(feature = "trace")]
pub fn trace_write(bytes: &[u8]) {
unsafe { __rivet_board_trace_write(bytes.as_ptr(), bytes.len()) }
}