Implemented some basic libc functions and a text console

This commit is contained in:
2022-12-21 08:29:33 +00:00
parent f59d67435d
commit 8475a6139e
30 changed files with 1898 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
#ifndef SOCKS_LIBC_TYPES_H_
#define SOCKS_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);
extern int fill_random(unsigned char *buffer, unsigned int size);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,32 @@
#ifndef SOCKS_STDIO_H_
#define SOCKS_STDIO_H_
#include <stdarg.h>
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
#define printf printf_
int printf_(const char *format, ...);
#define sprintf sprintf_
int sprintf_(char *buffer, const char *format, ...);
#define snprintf snprintf_
#define vsnprintf vsnprintf_
int snprintf_(char *buffer, size_t count, const char *format, ...);
int vsnprintf_(char *buffer, size_t count, const char *format, va_list va);
#define vprintf vprintf_
int vprintf_(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

@@ -0,0 +1,36 @@
#ifndef SOCKS_LIBC_STRING_H_
#define SOCKS_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 int 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 int 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, size_t num);
#ifdef __cplusplus
}
#endif
#endif