build: add a "user" arch to allow the kernel to run as a program on the host machine

This commit is contained in:
2023-02-25 17:58:23 +00:00
parent 8c87e78797
commit eed73e2414
21 changed files with 286 additions and 26 deletions

View File

@@ -9,7 +9,7 @@ extern "C" {
#endif
extern char *strcpy(char *output, const char *input);
extern char *strncpy(char *output, const char *input, unsigned int count);
extern char *strncpy(char *output, const char *input, unsigned long count);
extern char *strchrnul(const char *s, int c);
extern char *strchr(const char *s, int c);
extern size_t lfind(const char *str, const char accept);
@@ -19,7 +19,7 @@ extern char *strpbrk(const char *s, const char *b);
extern size_t strlen(const char *str);
extern char *strrchr(const char *str, int c);
extern int strcmp(const char *s1, const char *s2);
extern int strncmp(const char *s1, const char *s2, unsigned int n);
extern int strncmp(const char *s1, const char *s2, unsigned long n);
extern void *memcpy(void *str1, const void *str2, size_t n);
extern int memcmp(const void *str1, const void *str2, size_t n);
extern void *memset(void *str, int c, size_t n);
@@ -28,7 +28,7 @@ extern char *strdup(const char *src);
extern char *strtok_r(char *str, const char *delim, char **saveptr);
extern char *strcat(char *dest, const char *src);
extern char *strncat(char *dest, const char *src, size_t num);
extern void *memchr(const void *ptr, int value, size_t num);
extern void *memchr(const void *ptr, int value, unsigned long num);
#ifdef __cplusplus
}

View File

@@ -1,10 +1,10 @@
#include <stddef.h>
const void *memchr(const void *ptr, int value, size_t num) {
void *memchr(const void *ptr, int value, unsigned long num) {
const unsigned char *buf = ptr;
unsigned char val = value;
for (size_t i = 0; i < num; i++) {
for (unsigned long i = 0; i < num; i++) {
if (buf[i] == val) {
return (void *)(buf + i);
}

View File

@@ -8,7 +8,7 @@ int strcmp(const char *s1, const char *s2)
return s1[i] - s2[i];
}
int strncmp(const char *s1, const char *s2, unsigned int n)
int strncmp(const char *s1, const char *s2, unsigned long n)
{
for (; n > 0; s1++, s2++, --n)
if (*s1 != *s2)

View File

@@ -11,10 +11,10 @@ char *strcpy(char *output, const char *input)
return output;
}
char *strncpy(char *output, const char *input, unsigned int count)
char *strncpy(char *output, const char *input, unsigned long count)
{
unsigned int size = count;
unsigned int i;
unsigned long size = count;
unsigned long i;
for (i = 0; i < size; i++) {
output[i] = input[i];