summaryrefslogtreecommitdiff
path: root/kernel/src/utils/cxx/cxx_stuff.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/utils/cxx/cxx_stuff.cpp')
-rw-r--r--kernel/src/utils/cxx/cxx_stuff.cpp44
1 files changed, 5 insertions, 39 deletions
diff --git a/kernel/src/utils/cxx/cxx_stuff.cpp b/kernel/src/utils/cxx/cxx_stuff.cpp
index c12546a..54e8b58 100644
--- a/kernel/src/utils/cxx/cxx_stuff.cpp
+++ b/kernel/src/utils/cxx/cxx_stuff.cpp
@@ -1,56 +1,22 @@
#include <cstdint>
+#include <klibc/string.hpp>
extern "C" {
void *memcpy(void *__restrict dest, const void *__restrict src, std::size_t n) {
- std::uint8_t *__restrict pdest = static_cast<std::uint8_t *__restrict>(dest);
- const std::uint8_t *__restrict psrc = static_cast<const std::uint8_t *__restrict>(src);
-
- for (std::size_t i = 0; i < n; i++) {
- pdest[i] = psrc[i];
- }
-
- return dest;
+ return klibc::memcpy(dest, src, n);
}
void *memset(void *s, int c, std::size_t n) {
- std::uint8_t *p = static_cast<std::uint8_t *>(s);
-
- for (std::size_t i = 0; i < n; i++) {
- p[i] = static_cast<uint8_t>(c);
- }
-
- return s;
+ return klibc::memset(s, c, n);
}
void *memmove(void *dest, const void *src, std::size_t n) {
- std::uint8_t *pdest = static_cast<std::uint8_t *>(dest);
- const std::uint8_t *psrc = static_cast<const std::uint8_t *>(src);
-
- if (reinterpret_cast<std::uintptr_t>(src) > reinterpret_cast<std::uintptr_t>(dest)) {
- for (std::size_t i = 0; i < n; i++) {
- pdest[i] = psrc[i];
- }
- } else if (reinterpret_cast<std::uintptr_t>(src) < reinterpret_cast<std::uintptr_t>(dest)) {
- for (std::size_t i = n; i > 0; i--) {
- pdest[i-1] = psrc[i-1];
- }
- }
-
- return dest;
+ return klibc::memmove(dest, src, n);
}
int memcmp(const void *s1, const void *s2, std::size_t n) {
- const std::uint8_t *p1 = static_cast<const std::uint8_t *>(s1);
- const std::uint8_t *p2 = static_cast<const std::uint8_t *>(s2);
-
- for (std::size_t i = 0; i < n; i++) {
- if (p1[i] != p2[i]) {
- return p1[i] < p2[i] ? -1 : 1;
- }
- }
-
- return 0;
+ return klibc::memcmp(s1, s2, n);
}
}