2 #include <klibc/string.h>
5 memcpy(void* dest, const void* src, size_t num)
7 uint8_t* dest_ptr = (uint8_t*)dest;
8 const uint8_t* src_ptr = (const uint8_t*)src;
9 for (size_t i = 0; i < num; i++) {
10 *(dest_ptr + i) = *(src_ptr + i);
16 memmove(void* dest, const void* src, size_t num)
18 uint8_t* dest_ptr = (uint8_t*)dest;
19 const uint8_t* src_ptr = (const uint8_t*)src;
20 if (dest_ptr < src_ptr) {
21 for (size_t i = 0; i < num; i++) {
22 *(dest_ptr + i) = *(src_ptr + i);
25 for (size_t i = num; i != 0; i--) {
26 *(dest_ptr + i - 1) = *(src_ptr + i - 1);
33 memset(void* ptr, int value, size_t num)
35 uint8_t* c_ptr = (uint8_t*)ptr;
36 for (size_t i = 0; i < num; i++) {
37 *(c_ptr + i) = (uint8_t)value;
43 memcmp(const void* ptr1, const void* ptr2, size_t num)
45 uint8_t* p1 = (uint8_t*)ptr1;
46 uint8_t* p2 = (uint8_t*)ptr2;
47 for (size_t i = 0; i < num; i++) {
48 int diff = *(p1 + i) - *(p2 + i);