extern "C" {
fn agb_rs__WramTransferBuf(src: *const u8, dst: *mut u8, count: usize);
fn agb_rs__WramReadByte(src: *const u8) -> u8;
fn agb_rs__WramVerifyBuf(buf1: *const u8, buf2: *const u8, count: usize) -> bool;
}
#[inline(always)]
pub unsafe fn read_raw_buf(dst: &mut [u8], src: usize) {
if !dst.is_empty() {
agb_rs__WramTransferBuf(src as _, dst.as_mut_ptr(), dst.len());
}
}
#[inline(always)]
pub unsafe fn write_raw_buf(dst: usize, src: &[u8]) {
if !src.is_empty() {
agb_rs__WramTransferBuf(src.as_ptr(), dst as _, src.len());
}
}
#[inline(always)]
pub unsafe fn verify_raw_buf(buf1: &[u8], buf2: usize) -> bool {
if !buf1.is_empty() {
agb_rs__WramVerifyBuf(buf1.as_ptr(), buf2 as _, buf1.len() - 1)
} else {
true
}
}
#[inline(always)]
pub unsafe fn read_raw_byte(src: usize) -> u8 {
agb_rs__WramReadByte(src as _)
}