limine/common/lib/libc.c

46 lines
794 B
C

#include <stddef.h>
#include <stdint.h>
#include <lib/libc.h>
size_t strnlen(const char *str, size_t maxlen) {
size_t len;
for (len = 0; len < maxlen && str[len]; len++);
return len;
}
void *memchr(const void *ptr, int ch, size_t n) {
uint8_t *p = (uint8_t *)ptr;
for (size_t i = 0; i < n; i++) {
if (p[i] == ch) {
return (void *)ptr + i;
}
}
return NULL;
}
char *strchr(const char *str, int ch) {
for (size_t i = 0; str[i]; i++) {
if (str[i] == ch) {
return (char *)str + i;
}
}
return NULL;
}
char *strrchr(const char *str, int ch) {
char *p = NULL;
for (size_t i = 0; str[i]; i++) {
if (str[i] == ch) {
p = (char *)str + i;
}
}
return p;
}