static STREAMFILE *open_vfs_impl(VFSSTREAMFILE *streamfile, const char * const filename, size_t buffersize) { if (!filename) return NULL; return open_vfs(filename); }
uint32_t sys_open(struct registers_t* regs) { const char* name = (const char*)REG_ARG1(regs); int oflag = (int)REG_ARG2(regs); mode_t mode = (mode_t)REG_ARG3(regs); return open_vfs(name, oflag, mode); }
static STREAMFILE *open_vfs_impl(VFSSTREAMFILE *streamfile,const char * const filename,size_t buffersize) { #ifdef SUPPORT_DUP VFSFile *newfile; STREAMFILE *newstreamFile; #endif if (!filename) return NULL; // if same name, duplicate the file pointer we already have open #ifdef SUPPORT_DUP if (!strcmp(streamfile->name,filename)) { if ((newfile = aud_vfs_dup(streamfile->vfsFile))) { newstreamFile = open_vfs_by_VFSFILE(newfile,filename); if (newstreamFile) { return newstreamFile; } // failure, close it and try the default path (which will probably fail a second time) aud_vfs_fclose(newfile); } } #endif return open_vfs(filename); }