#![allow(dead_code)]
mod x86_64;
use core::ffi::c_int;
use crate::mem::x86_64::impls;
#[inline(always)]
pub unsafe extern "C" fn memcpy(dest: *mut u8, src: *const u8, n: usize) -> *mut u8 {
unsafe { impls::copy_forward(dest, src, n) };
dest
}
#[inline(always)]
pub unsafe extern "C" fn memmove(dest: *mut u8, src: *const u8, n: usize) -> *mut u8 {
let delta = (dest as usize).wrapping_sub(src as usize);
if delta >= n {
unsafe { impls::copy_forward(dest, src, n) };
} else {
unsafe { impls::copy_backward(dest, src, n) };
}
dest
}
#[inline(always)]
pub unsafe extern "C" fn memset(s: *mut u8, c: c_int, n: usize) -> *mut u8 {
unsafe { impls::set_bytes(s, c as u8, n) };
s
}
#[inline(always)]
pub unsafe extern "C" fn strlen(s: *const core::ffi::c_char) -> usize {
unsafe { impls::c_string_length(s) }
}