#![no_std]
#![allow(unsafe_code)]
#![cfg_attr(aarch64_moana, feature(stdarch_arm_barrier))]
core::cfg_select! {
aarch64_moana => {
#[path = "aarch64.rs"]
mod arch;
}
riscv64_moana => {
#[path = "riscv64.rs"]
mod arch;
}
_ => {
#[path = "stub.rs"]
mod arch;
}
}
#[inline(always)]
pub fn cache_init() {
arch::arch_cache_init();
}
#[inline(always)]
pub fn dcache_line_size() -> usize {
arch::arch_dcache_line_size()
}
#[inline(always)]
pub fn clean_dcache_area(addr: usize, size: usize) {
arch::arch_clean_dcache_area(addr, size);
}
#[inline(always)]
pub fn inval_dcache_area(addr: usize, size: usize) {
arch::arch_inval_dcache_area(addr, size);
}
#[inline(always)]
pub fn flush_dcache_area(addr: usize, size: usize) {
arch::arch_flush_dcache_area(addr, size);
}
#[inline(always)]
pub fn flush_icache_all() {
arch::arch_flush_icache_all();
}
#[inline(always)]
pub fn flush_icache_range(start: usize, end: usize) {
arch::arch_flush_icache_range(start, end);
}