kernel: separate headers into kernel and user headers

all kernel headers have been moved from include/mango to include/kernel
and include definitions that are only relevant to kernel-space.

any definitions that are relevant to both kernel- and user-space
(i.e. type definitions, syscall IDs) have been moved to
include/mango within libmango.
This commit is contained in:
2026-02-19 18:54:48 +00:00
parent e3dd48a0fa
commit 6019c9307d
117 changed files with 1361 additions and 3845 deletions

View File

@@ -1,26 +0,0 @@
#ifndef MANGO_LIBC_TYPES_H_
#define MANGO_LIBC_TYPES_H_
#ifdef __cplusplus
extern "C" {
#endif
extern int isalnum(int c);
extern int isalpha(int c);
extern int iscntrl(int c);
extern int isdigit(int c);
extern int isgraph(int c);
extern int islower(int c);
extern int isprint(int c);
extern int ispunct(int c);
extern int isspace(int c);
extern int isupper(int c);
extern int isxdigit(int c);
extern int tolower(int c);
extern int toupper(int c);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,21 +0,0 @@
#ifndef MANGO_STDIO_H_
#define MANGO_STDIO_H_
#include <stdarg.h>
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
int snprintf(char *buffer, size_t count, const char *format, ...);
int vsnprintf(char *buffer, size_t count, const char *format, va_list va);
int fctprintf(void (*out)(char character, void *arg), void *arg, const char*format, ...);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,36 +0,0 @@
#ifndef MANGO_LIBC_STRING_H_
#define MANGO_LIBC_STRING_H_
#include <stdint.h>
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
extern char *strcpy(char *output, const char *input);
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);
extern size_t strspn(const char *s, const char *c);
extern size_t strcspn(const char *s, const char *c);
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 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);
extern void *memmove(void *dst, const void *src, size_t n);
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, unsigned long num);
#ifdef __cplusplus
}
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
#include <stdint.h>
#include <mango/libc/string.h>
#include <kernel/libc/string.h>
static void *memcpy_r(void *dest, const void *src, size_t sz)
{

View File

@@ -2,12 +2,12 @@
void *memset(void *str, int c, size_t n)
{
unsigned char val = (unsigned char)c;
unsigned char *buf = str;
unsigned char val = (unsigned char)c;
unsigned char *buf = str;
for (size_t i = 0; i < n; i++) {
buf[i] = val;
}
for (size_t i = 0; i < n; i++) {
buf[i] = val;
}
return str;
return str;
}

View File

@@ -1,4 +1,4 @@
#include <mango/libc/string.h>
#include <kernel/libc/string.h>
char *strcat(char *dest, const char *src) {
size_t start = strlen(dest), i = 0;

View File

@@ -1,19 +1,21 @@
int strcmp(const char *s1, const char *s2)
{
int i;
for (i = 0; s1[i] == s2[i]; i++)
if (s1[i] == '\0')
return 0;
int i;
for (i = 0; s1[i] == s2[i]; i++)
if (s1[i] == '\0')
return 0;
return s1[i] - s2[i];
return s1[i] - s2[i];
}
int strncmp(const char *s1, const char *s2, unsigned long n)
{
for (; n > 0; s1++, s2++, --n)
if (*s1 != *s2)
return ((*(unsigned char *)s1 < *(unsigned char *)s2) ? -1 : 1);
else if (*s1 == '\0')
return 0;
return 0;
for (; n > 0; s1++, s2++, --n)
if (*s1 != *s2)
return ((*(unsigned char *)s1 < *(unsigned char *)s2)
? -1
: 1);
else if (*s1 == '\0')
return 0;
return 0;
}

View File

@@ -1,4 +1,4 @@
#include <mango/libc/string.h>
#include <kernel/libc/string.h>
char *strcpy(char *output, const char *input)
{

View File

@@ -1,10 +1,11 @@
#include <mango/libc/string.h>
#include <kernel/libc/string.h>
size_t strlen(const char *str) {
size_t strlen(const char *str)
{
size_t res = 0;
while (str[res]) {
res++;
}
return res;
}

View File

@@ -1,4 +1,4 @@
#include <mango/libc/string.h>
#include <kernel/libc/string.h>
char *strrchr(const char *str, int c) {
size_t len = strlen(str);

View File

@@ -1,5 +1,5 @@
#include <limits.h>
#include <mango/libc/string.h>
#include <kernel/libc/string.h>
#define ALIGN (sizeof(size_t))
#define ONES ((size_t)-1 / UCHAR_MAX)