예제 #1
0
static STREAMFILE *open_vfs_impl(VFSSTREAMFILE *streamfile, const char * const filename, size_t buffersize) 
{
  if (!filename)
    return NULL;

  return open_vfs(filename);
}
예제 #2
0
파일: sys_fs.c 프로젝트: Razbit/razos
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);
}
예제 #3
0
파일: vfs.c 프로젝트: Emiyasviel/Arianrhod
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);
}