接着上个

This commit is contained in:
2026-04-23 20:00:47 +08:00
parent 088dab5a72
commit 43557b6d71
91 changed files with 23911 additions and 0 deletions

View 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;
}

View File

@@ -0,0 +1,70 @@
#include <clks/string.h>
usize clks_strlen(const char *str) {
usize len = 0;
while (str[len] != '\0') {
len++;
}
return len;
}
void *clks_memset(void *dst, int value, usize count) {
u8 *d = (u8 *)dst;
u8 v = (u8)value;
usize i;
for (i = 0; i < count; i++) {
d[i] = v;
}
return dst;
}
void *clks_memcpy(void *dst, const void *src, usize count) {
u8 *d = (u8 *)dst;
const u8 *s = (const u8 *)src;
usize i;
for (i = 0; i < count; i++) {
d[i] = s[i];
}
return dst;
}
void *clks_memmove(void *dst, const void *src, usize count) {
u8 *d = (u8 *)dst;
const u8 *s = (const u8 *)src;
usize i;
if (d == s || count == 0) {
return dst;
}
if (d < s) {
for (i = 0; i < count; i++) {
d[i] = s[i];
}
} else {
for (i = count; i != 0; i--) {
d[i - 1] = s[i - 1];
}
}
return dst;
}
int clks_strcmp(const char *left, const char *right) {
usize i = 0;
while (left[i] != '\0' && right[i] != '\0') {
if (left[i] != right[i]) {
return (int)((u8)left[i] - (u8)right[i]);
}
i++;
}
return (int)((u8)left[i] - (u8)right[i]);
}