Lines Matching full:file
322 int dfs_elm_open(struct dfs_fd *file) in dfs_elm_open() argument
331 struct dfs_filesystem *fs = (struct dfs_filesystem *)file->data; in dfs_elm_open()
345 rt_snprintf(drivers_fn, 256, "%d:%s", vol, file->path); in dfs_elm_open()
347 drivers_fn = file->path; in dfs_elm_open()
350 if (file->flags & O_DIRECTORY) in dfs_elm_open()
354 if (file->flags & O_CREAT) in dfs_elm_open()
386 file->data = dir; in dfs_elm_open()
393 if (file->flags & O_WRONLY) in dfs_elm_open()
395 if ((file->flags & O_ACCMODE) & O_RDWR) in dfs_elm_open()
397 /* Opens the file, if it is existing. If not, a new file is created. */ in dfs_elm_open()
398 if (file->flags & O_CREAT) in dfs_elm_open()
400 /* Creates a new file. If the file is existing, it is truncated and overwritten. */ in dfs_elm_open()
401 if (file->flags & O_TRUNC) in dfs_elm_open()
403 /* Creates a new file. The function fails if the file is already existing. */ in dfs_elm_open()
404 if (file->flags & O_EXCL) in dfs_elm_open()
423 file->pos = fd->fptr; in dfs_elm_open()
424 file->size = f_size(fd); in dfs_elm_open()
425 file->data = fd; in dfs_elm_open()
427 if (file->flags & O_APPEND) in dfs_elm_open()
429 /* seek to the end of file */ in dfs_elm_open()
431 file->pos = fd->fptr; in dfs_elm_open()
445 int dfs_elm_close(struct dfs_fd *file) in dfs_elm_close() argument
450 if (file->type == FT_DIRECTORY) in dfs_elm_close()
454 dir = (DIR *)(file->data); in dfs_elm_close()
460 else if (file->type == FT_REGULAR) in dfs_elm_close()
463 fd = (FIL *)(file->data); in dfs_elm_close()
477 int dfs_elm_ioctl(struct dfs_fd *file, int cmd, void *args) in dfs_elm_ioctl() argument
482 int dfs_elm_read(struct dfs_fd *file, void *buf, size_t len) in dfs_elm_read() argument
488 if (file->type == FT_DIRECTORY) in dfs_elm_read()
493 fd = (FIL *)(file->data); in dfs_elm_read()
498 file->pos = fd->fptr; in dfs_elm_read()
505 int dfs_elm_write(struct dfs_fd *file, const void *buf, size_t len) in dfs_elm_write() argument
511 if (file->type == FT_DIRECTORY) in dfs_elm_write()
516 fd = (FIL *)(file->data); in dfs_elm_write()
520 /* update position and file size */ in dfs_elm_write()
521 file->pos = fd->fptr; in dfs_elm_write()
522 file->size = f_size(fd); in dfs_elm_write()
529 int dfs_elm_flush(struct dfs_fd *file) in dfs_elm_flush() argument
534 fd = (FIL *)(file->data); in dfs_elm_flush()
541 int dfs_elm_lseek(struct dfs_fd *file, rt_off_t offset) in dfs_elm_lseek() argument
544 if (file->type == FT_REGULAR) in dfs_elm_lseek()
548 /* regular file type */ in dfs_elm_lseek()
549 fd = (FIL *)(file->data); in dfs_elm_lseek()
556 file->pos = fd->fptr; in dfs_elm_lseek()
560 else if (file->type == FT_DIRECTORY) in dfs_elm_lseek()
565 dir = (DIR *)(file->data); in dfs_elm_lseek()
571 /* update file position */ in dfs_elm_lseek()
572 file->pos = offset; in dfs_elm_lseek()
573 return file->pos; in dfs_elm_lseek()
580 int dfs_elm_getdents(struct dfs_fd *file, struct dirent *dirp, uint32_t count) in dfs_elm_getdents() argument
588 dir = (DIR *)(file->data); in dfs_elm_getdents()
631 file->pos += index * sizeof(struct dirent); in dfs_elm_getdents()
812 /* register fatfs file system */ in elm_init()