mirror of
https://github.com/frida/tinycc
synced 2024-11-25 00:59:37 +03:00
1caee8ab3b
I removed the XMM6/7 registers from the register list because they are not used on Win64 however they are necessary for parameter passing on x86-64. I have now restored them but not marked them with RC_FLOAT so they will not be used except for parameter passing.
79 lines
2.5 KiB
C
79 lines
2.5 KiB
C
/* 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 <stddef.h>
|
|
#include <stdarg.h>
|
|
|
|
/* 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 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);
|
|
|
|
/* 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 */
|