mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-24 19:34:01 +00:00
接着上个
This commit is contained in:
62
clks.local.bak/kernel/support/libc_compat.c
Normal file
62
clks.local.bak/kernel/support/libc_compat.c
Normal file
@@ -0,0 +1,62 @@
|
||||
#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);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user