use core::sync::atomic::{AtomicU64, Ordering};
static TICKS: AtomicU64 = AtomicU64::new(0);
#[cfg(feature = "test-support")]
pub fn reset_test_clock() {
TICKS.store(0, Ordering::Relaxed);
CYCLES.store(0, Ordering::Relaxed);
}
#[no_mangle]
extern "Rust" fn __rivet_arch_init() {}
#[no_mangle]
extern "Rust" fn __rivet_arch_idle() {
core::hint::spin_loop();
}
#[no_mangle]
extern "Rust" fn __rivet_arch_request_reschedule() {
}
#[no_mangle]
extern "Rust" fn __rivet_arch_irq_save() -> usize {
0
}
#[no_mangle]
extern "Rust" fn __rivet_arch_irq_restore(_token: usize) {}
#[no_mangle]
unsafe extern "Rust" fn __rivet_arch_init_task_stack(
stack_ptr: *mut u8,
_stack_len: usize,
_entry_fn: usize,
_arg: usize,
) -> usize {
stack_ptr as usize
}
#[no_mangle]
unsafe extern "Rust" fn __rivet_arch_start_first_task(_sp: usize) -> ! {
loop {
core::hint::spin_loop();
}
}
#[no_mangle]
extern "Rust" fn __rivet_arch_on_switch_to(_stack_base: usize, _stack_size: usize) {}
#[no_mangle]
extern "Rust" fn __rivet_arch_guard_register(_guard_base: usize, _slot: usize) {}
#[no_mangle]
extern "Rust" fn __rivet_arch_scratch_open(_base: usize, _size: usize) {}
#[no_mangle]
extern "Rust" fn __rivet_arch_scratch_close() {}
#[no_mangle]
extern "Rust" fn __rivet_arch_min_task_stack() -> usize {
256
}
#[no_mangle]
extern "Rust" fn __rivet_arch_min_guard_size() -> usize {
64
}
static CYCLES: AtomicU64 = AtomicU64::new(0);
#[no_mangle]
extern "Rust" fn __rivet_arch_cycle_count() -> u64 {
CYCLES.fetch_add(1, Ordering::Relaxed)
}
#[no_mangle]
extern "Rust" fn __rivet_arch_irq_enable(_irq_num: u32) {}
#[no_mangle]
extern "Rust" fn __rivet_arch_irq_disable(_irq_num: u32) {}
#[no_mangle]
extern "Rust" fn __rivet_arch_irq_set_priority(_irq_num: u32, _priority: u8) {}
#[no_mangle]
extern "Rust" fn __rivet_arch_hart_id() -> usize {
0
}
#[no_mangle]
extern "Rust" fn __rivet_arch_request_reschedule_on(_hart: usize) {
}
#[no_mangle]
extern "Rust" fn __rivet_board_init() {}
#[no_mangle]
extern "Rust" fn __rivet_board_now_us() -> u64 {
TICKS.fetch_add(1, Ordering::Relaxed)
}
#[no_mangle]
extern "Rust" fn __rivet_board_tick_start(_hz: u32) {}
#[no_mangle]
unsafe extern "Rust" fn __rivet_board_console_write(_ptr: *const u8, _len: usize) {
}
#[no_mangle]
extern "Rust" fn __rivet_board_console_kick_tx() {}
#[no_mangle]
extern "Rust" fn __rivet_board_reset() -> ! {
loop {
core::hint::spin_loop();
}
}
#[no_mangle]
extern "Rust" fn __rivet_board_exit(_code: u32) -> ! {
loop {
core::hint::spin_loop();
}
}
#[no_mangle]
extern "Rust" fn __rivet_board_wdt_init(_period_us: u32) {}
#[no_mangle]
extern "Rust" fn __rivet_board_wdt_feed() {}
#[no_mangle]
extern "Rust" fn __rivet_board_wdt_check() {}
#[cfg(feature = "trace")]
#[no_mangle]
extern "Rust" fn __rivet_board_trace_write(_ptr: *const u8, _len: usize) {}