/* Simple libc header for TCC * * Add any function you want from the libc there. This file is here * only for your convenience so that you do not need to put the whole * glibc include files on your floppy disk */ #ifndef _TCCLIB_H #define _TCCLIB_H #include #include /* stdlib.h */ void* calloc(size_t nmemb, size_t size); void* malloc(size_t size); void free(void* ptr); void* realloc(void* ptr, size_t size); int atoi(const char* nptr); long int strtol(const char* nptr, char** endptr, int base); unsigned long int strtoul(const char* nptr, char** endptr, int base); void exit(int); /* stdio.h */ typedef struct __FILE FILE; #define EOF (-1) extern FILE* stdin; extern FILE* stdout; extern FILE* stderr; FILE* fopen(const char* path, const char* mode); FILE* fdopen(int fildes, const char* mode); FILE* freopen(const char* path, const char* mode, FILE* stream); int fclose(FILE* stream); size_t fread(void* ptr, size_t size, size_t nmemb, FILE* stream); size_t fwrite(void* ptr, size_t size, size_t nmemb, FILE* stream); int fgetc(FILE* stream); char* fgets(char* s, int size, FILE* stream); int getc(FILE* stream); int getchar(void); char* gets(char* s); int ungetc(int c, FILE* stream); int fflush(FILE* stream); int putchar(int c); int printf(const char* format, ...); int fprintf(FILE* stream, const char* format, ...); int sprintf(char* str, const char* format, ...); int snprintf(char* str, size_t size, const char* format, ...); int asprintf(char** strp, const char* format, ...); int dprintf(int fd, const char* format, ...); int vprintf(const char* format, va_list ap); int vfprintf(FILE* stream, const char* format, va_list ap); int vsprintf(char* str, const char* format, va_list ap); int vsnprintf(char* str, size_t size, const char* format, va_list ap); int vasprintf(char** strp, const char* format, va_list ap); int vdprintf(int fd, const char* format, va_list ap); void perror(const char* s); /* string.h */ char* strcat(char* dest, const char* src); char* strchr(const char* s, int c); char* strrchr(const char* s, int c); char* strcpy(char* dest, const char* src); void* memcpy(void* dest, const void* src, size_t n); void* memmove(void* dest, const void* src, size_t n); void* memset(void* s, int c, size_t n); char* strdup(const char* s); size_t strlen(const char* s); /* dlfcn.h */ #define RTLD_LAZY 0x001 #define RTLD_NOW 0x002 #define RTLD_GLOBAL 0x100 void* dlopen(const char* filename, int flag); const char* dlerror(void); void* dlsym(void* handle, char* symbol); int dlclose(void* handle); #endif /* _TCCLIB_H */