Files
cleonos/clks/kernel/support/libc_compat.c

63 lines
1.2 KiB
C
Raw Normal View History

2026-04-11 21:38:40 +08:00
#include <clks/string.h>
#include <clks/types.h>
void *memcpy(void *dst, const void *src, usize count) {
return clks_memcpy(dst, src, count);
}
void *memmove(void *dst, const void *src, usize count) {
return clks_memmove(dst, src, count);
}
void *memset(void *dst, int value, usize count) {
return clks_memset(dst, value, count);
}
int memcmp(const void *left, const void *right, usize count) {
const u8 *a = (const u8 *)left;
const u8 *b = (const u8 *)right;
usize i;
for (i = 0U; i < count; i++) {
if (a[i] != b[i]) {
return (a[i] < b[i]) ? -1 : 1;
}
}
return 0;
}
int bcmp(const void *left, const void *right, usize count) {
return memcmp(left, right, count);
2026-04-21 20:28:37 +08:00
}
usize strlen(const char *str) {
return clks_strlen(str);
}
char *strchr(const char *str, int c) {
char ch = (char)c;
const char *cur = str;
while (*cur != '\0') {
if (*cur == ch) {
return (char *)cur;
}
cur++;
}
if (ch == '\0') {
return (char *)cur;
}
return (char *)0;
}
int abs(int value) {
return (value < 0) ? -value : value;
}
long labs(long value) {
return (value < 0L) ? -value : value;
}