From 345624c74530aaca18f0ef1c4fdce70fd348cb99 Mon Sep 17 00:00:00 2001 From: Kitsu Date: Thu, 9 Dec 2021 14:32:45 +0300 Subject: [PATCH] Fix clean build and remove object --- src/lib.rs | 1 + src/nanolibc.rs | 33 +++++++++++++++++++++++++++++++++ src/syscalls.o | Bin 1336 -> 0 bytes 3 files changed, 34 insertions(+) create mode 100644 src/nanolibc.rs delete mode 100644 src/syscalls.o diff --git a/src/lib.rs b/src/lib.rs index 36f0969..79dcdf6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,6 @@ #![no_std] +mod nanolibc; mod sys; pub use sys::*; diff --git a/src/nanolibc.rs b/src/nanolibc.rs new file mode 100644 index 0000000..7993018 --- /dev/null +++ b/src/nanolibc.rs @@ -0,0 +1,33 @@ +#[no_mangle] +pub unsafe extern "C" fn memcpy(dest: *mut u8, src: *const u8, n: usize) -> *mut u8 { + for i in 0..n { + *dest.add(i) = *src.add(i); + } + + dest +} + +#[no_mangle] +pub unsafe extern "C" fn memset(s: *mut u8, x: i32, n: usize) -> *mut u8 { + for i in 0..n { + *s.add(i) = x as u8; + } + + s +} + +#[no_mangle] +pub unsafe extern "C" fn memcmp(s1: *mut u8, s2: *const u8, n: usize) -> i32 { + for i in 0..n { + let x = *s1.add(i); + let y = *s2.add(i); + if x == y { + continue; + } + + let (x, y) = (i32::from(x), i32::from(y)); + return x - y; + } + + 0 +} diff --git a/src/syscalls.o b/src/syscalls.o deleted file mode 100644 index bb7de80f645d8486195b69bf968b889e6f83af9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1336 zcmbtTJ4*vW5T1)~jUhe?L6KOgpo=L45s{PN3&cVYEDYh2oJLIU!re*|8#}=+KOz6a zMz9wA6LvOsb~=;WiJLW*4(!c*-#4=}+1=dj9__^}3)n2!h9AT%z((vRw%ef%aTtTs zgNL_ADtNJ**=I!WkCfR)u%F3nrk3`PPnT2av`C9JfPNHHxCU^c05Pzhh-0%9<{74y zVBMa8RZm*8@uA@+igU=*B1_O`Cy~65WyS{&F##cITg0RF(j(>fm-_a@$JcKKps&Zt z#4&MFSPsq5z?E0-38_c}2gLD+W#tT(8)LqqCw}=uovQ0GmiO z<~#d~uu+jt9z-aE$d@>hZe4;XI?@4=4?_?Izfy5M#4pDw3zFd+Qnc9m;NS5tI`L}oQr;|ZdnAhr&-@p zNoUHlGwVsG|E@+&%Bz-EquKXx^x+Alm_BHR0N~)^AAfTC| TJIn+|z3N|8;$