From dbc7b8fc599f40976d238ccd36258e0c65baea6c Mon Sep 17 00:00:00 2001 From: Max Wash Date: Thu, 19 Feb 2026 19:21:15 +0000 Subject: [PATCH] kernel: libc: add headers --- libc/include/kernel/libc/ctype.h | 26 ++++++++++++++++++++++ libc/include/kernel/libc/stdio.h | 21 ++++++++++++++++++ libc/include/kernel/libc/string.h | 36 +++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 libc/include/kernel/libc/ctype.h create mode 100644 libc/include/kernel/libc/stdio.h create mode 100644 libc/include/kernel/libc/string.h diff --git a/libc/include/kernel/libc/ctype.h b/libc/include/kernel/libc/ctype.h new file mode 100644 index 0000000..f048340 --- /dev/null +++ b/libc/include/kernel/libc/ctype.h @@ -0,0 +1,26 @@ +#ifndef KERNEL_LIBC_TYPES_H_ +#define KERNEL_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 diff --git a/libc/include/kernel/libc/stdio.h b/libc/include/kernel/libc/stdio.h new file mode 100644 index 0000000..43fec94 --- /dev/null +++ b/libc/include/kernel/libc/stdio.h @@ -0,0 +1,21 @@ +#ifndef KERNEL_STDIO_H_ +#define KERNEL_STDIO_H_ + +#include +#include + +#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 diff --git a/libc/include/kernel/libc/string.h b/libc/include/kernel/libc/string.h new file mode 100644 index 0000000..ef1f21a --- /dev/null +++ b/libc/include/kernel/libc/string.h @@ -0,0 +1,36 @@ +#ifndef KERNEL_LIBC_STRING_H_ +#define KERNEL_LIBC_STRING_H_ + +#include +#include + +#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