src/boot/string.c (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
#include "string.h"
#include <stdint.h>
void *memset(void *ptr, uint8_t value, uint32_t num) {
for (uint32_t i = 0; i < num; i++) {
((uint8_t*)ptr)[i] = value;
}
return ptr;
}
int strcmp(const char *str1, const char *str2) {
int i = 0;
while (1) {
if (str1[i] != str2[i]) {
return str1[i] - str2[i];
}
if (str1[i] == 0) {
return 0;
}
i++;
}
}
void *memcpy(void *_dest, const void *_src, uint32_t n) {
uint8_t *src = (uint8_t*)(_src);
uint8_t *dest = (uint8_t*)(_dest);
for (uint32_t i = 0; i < n; i++) {
dest[i] = src[i];
}
return _dest;
}