Lines Matching refs:fd

185 int dfs_file_open(struct dfs_file *fd, const char *path, int flags)  in dfs_file_open()  argument
194 if (fd == NULL) in dfs_file_open()
212 fd->pos = 0; in dfs_file_open()
213 fd->vnode = vnode; in dfs_file_open()
274 fd->pos = 0; in dfs_file_open()
275 fd->vnode = vnode; in dfs_file_open()
281 fd->flags = flags; in dfs_file_open()
283 if ((result = vnode->fops->open(fd)) < 0) in dfs_file_open()
296 fd->vnode = NULL; in dfs_file_open()
306 fd->flags |= DFS_F_OPEN; in dfs_file_open()
309 fd->vnode->type = FT_DIRECTORY; in dfs_file_open()
310 fd->flags |= DFS_F_DIRECTORY; in dfs_file_open()
325 int dfs_file_close(struct dfs_file *fd) in dfs_file_close() argument
330 if (fd == NULL) in dfs_file_close()
335 if (fd->ref_count == 1) in dfs_file_close()
338 vnode = fd->vnode; in dfs_file_close()
348 result = vnode->fops->close(fd); in dfs_file_close()
355 fd->vnode = NULL; in dfs_file_close()
380 int dfs_file_ioctl(struct dfs_file *fd, int cmd, void *args) in dfs_file_ioctl() argument
382 if (fd == NULL) in dfs_file_ioctl()
388 if (fd->vnode->type == FT_REGULAR || fd->vnode->type == FT_DEVICE) in dfs_file_ioctl()
393 return fd->flags; /* return flags */ in dfs_file_ioctl()
400 fd->flags &= ~mask; in dfs_file_ioctl()
401 fd->flags |= flags; in dfs_file_ioctl()
407 if (fd->vnode->fops->ioctl != NULL) in dfs_file_ioctl()
409 return fd->vnode->fops->ioctl(fd, cmd, args); in dfs_file_ioctl()
425 ssize_t dfs_file_read(struct dfs_file *fd, void *buf, size_t len) in dfs_file_read() argument
429 if (fd == NULL) in dfs_file_read()
434 if (fd->vnode->fops->read == NULL) in dfs_file_read()
439 if ((result = fd->vnode->fops->read(fd, buf, len)) < 0) in dfs_file_read()
441 fd->flags |= DFS_F_EOF; in dfs_file_read()
456 int dfs_file_getdents(struct dfs_file *fd, struct dirent *dirp, size_t nbytes) in dfs_file_getdents() argument
459 if (fd == NULL) in dfs_file_getdents()
464 if (fd->vnode->type != FT_DIRECTORY) in dfs_file_getdents()
469 if (fd->vnode->fops->getdents != NULL) in dfs_file_getdents()
471 return fd->vnode->fops->getdents(fd, dirp, nbytes); in dfs_file_getdents()
539 ssize_t dfs_file_write(struct dfs_file *fd, const void *buf, size_t len) in dfs_file_write() argument
541 if (fd == NULL) in dfs_file_write()
546 if (fd->vnode->fops->write == NULL) in dfs_file_write()
551 return fd->vnode->fops->write(fd, buf, len); in dfs_file_write()
561 int dfs_file_flush(struct dfs_file *fd) in dfs_file_flush() argument
563 if (fd == NULL) in dfs_file_flush()
566 if (fd->vnode->fops->flush == NULL) in dfs_file_flush()
569 return fd->vnode->fops->flush(fd); in dfs_file_flush()
580 off_t dfs_file_lseek(struct dfs_file *fd, off_t offset) in dfs_file_lseek() argument
584 if (fd == NULL) in dfs_file_lseek()
587 if (fd->vnode->fops->lseek == NULL) in dfs_file_lseek()
590 result = fd->vnode->fops->lseek(fd, offset); in dfs_file_lseek()
594 fd->pos = result; in dfs_file_lseek()
736 int dfs_file_ftruncate(struct dfs_file *fd, off_t length) in dfs_file_ftruncate() argument
741 if (fd == NULL || fd->vnode->type != FT_REGULAR || length < 0) in dfs_file_ftruncate()
744 if (fd->vnode->fops->ioctl == NULL) in dfs_file_ftruncate()
747 result = fd->vnode->fops->ioctl(fd, RT_FIOFTRUNCATE, (void*)&length); in dfs_file_ftruncate()
751 fd->vnode->size = length; in dfs_file_ftruncate()
757 int dfs_file_mmap2(struct dfs_file *fd, struct dfs_mmap2_args *mmap2) in dfs_file_mmap2() argument
761 if (fd && mmap2) in dfs_file_mmap2()
763 if (fd->vnode->type != FT_DEVICE || !fd->vnode->fops->ioctl) in dfs_file_mmap2()
767 else if (fd->vnode->type == FT_DEVICE && fd->vnode->fops->ioctl) in dfs_file_mmap2()
769 ret = fd->vnode->fops->ioctl(fd, RT_FIOMMAP2, mmap2); in dfs_file_mmap2()
787 struct dfs_file fd; in ls() local
810 fd_init(&fd); in ls()
812 if (dfs_file_open(&fd, path, O_DIRECTORY) == 0) in ls()
818 length = dfs_file_getdents(&fd, &dirent, sizeof(struct dirent)); in ls()
847 dfs_file_close(&fd); in ls()
869 struct dfs_file fd; in cat() local
873 fd_init(&fd); in cat()
874 if (dfs_file_open(&fd, filename, O_RDONLY) < 0) in cat()
884 length = dfs_file_read(&fd, (void *)buffer, sizeof(buffer) - 1); in cat()
894 dfs_file_close(&fd); in cat()
902 struct dfs_file fd; in copyfile() local
923 fd_init(&fd); in copyfile()
924 if (dfs_file_open(&fd, dst, O_WRONLY | O_CREAT | O_TRUNC) < 0) in copyfile()
941 length = dfs_file_write(&fd, block_ptr, read_bytes); in copyfile()
953 dfs_file_close(&fd); in copyfile()