#include #include #include #include #include int open(const char *name,int mode,...) { file_t hnd = fs_open(name,mode); if (hnd) return hnd; return -1; } int read(int fd,char *ptr,size_t len) { return fs_read(fd,ptr,len); } int write(int fd,const char *ptr,size_t len) { return fs_write(fd,ptr,len); } int close(int fd) { fs_close(fd); return 0; } int lseek(int fd, off_t offset, int whence) { return fs_seek(fd,offset,whence); } int unlink(const char *name) { return fs_unlink(name); } DIR *opendir (const char *name) { return (DIR*)fs_open(name,O_DIR|O_RDONLY); } struct dirent *readdir (DIR *dir) { return (struct dirent*)fs_readdir((file_t)dir); } int closedir (DIR *dir) { fs_close((file_t)dir); return 0; } int mkdir(const char *path,int mode) { return fs_mkdir(path); } int chdir(const char *path) { return fs_chdir(path); } char *getcwd(char *buf, size_t size) { char *wd = fs_getwd(); if (buf==NULL) { return strdup(wd); //linux compat } strncpy(buf,wd,size); return buf; } /* only support F_OK */ int access(const char *name,int mode) { file_t hnd = fs_open(name,O_RDONLY); if (hnd==0) return -1; fs_close(hnd); return 0; } long filelength(int fd) { return fs_total((file_t)fd); } int getpid(void) { return -1; } typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t sighandler) { return (sighandler_t)-1; } char *strerror(int errno) { return "strerror"; } #include /* minimal sscanf only support "%x" */ #if 0 int sscanf(const char *str, const char *fmt,...) { va_list ap; if (strcmp(fmt,"%x")) { exit(-1); } va_start(ap,fmt); *(va_arg(ap,int*)) = strtol(str,NULL,16); va_end(ap); return 1; } #endif int vfprintf(FILE *fp, const char *fmt, va_list ap) { char buf[1024]; int ret = vsprintf(buf, fmt, ap); dbgio_printf(buf); return ret; } void setbuf(FILE *fp,char *buf) { /* do noting */ } #include struct tm* localtime(time_t *tim_p) { static struct tm tm; return localtime_r(tim_p,&tm); } int getchar(void) { return 0; }