Lines Matching refs:file
257 struct dfs_file *file; in dfs_file_create() local
259 file = (struct dfs_file *)rt_calloc(1, sizeof(struct dfs_file)); in dfs_file_create()
260 if (file) in dfs_file_create()
262 file->magic = DFS_FD_MAGIC; in dfs_file_create()
263 file->ref_count = 1; in dfs_file_create()
264 rt_mutex_init(&file->pos_lock, "fpos", RT_IPC_FLAG_PRIO); in dfs_file_create()
267 return file; in dfs_file_create()
275 void dfs_file_destroy(struct dfs_file *file) in dfs_file_destroy() argument
277 rt_mutex_detach(&file->pos_lock); in dfs_file_destroy()
279 if (file->mmap_context) in dfs_file_destroy()
281 rt_free(file->mmap_context); in dfs_file_destroy()
284 rt_free(file); in dfs_file_destroy()
317 struct dfs_file *file; in fdt_fd_new() local
319 file = dfs_file_create(); in fdt_fd_new()
321 if (file) in fdt_fd_new()
323 fdt->fds[idx] = file; in fdt_fd_new()
354 struct dfs_file *file; in fdt_fd_release() local
356 file = fdt_get_file(fdt, fd); in fdt_fd_release()
358 if (file && file->ref_count == 1) in fdt_fd_release()
360 dfs_file_destroy(file); in fdt_fd_release()
364 rt_atomic_sub(&(file->ref_count), 1); in fdt_fd_release()
412 int fdt_fd_associate_file(struct dfs_fdtable *fdt, int fd, struct dfs_file *file) in fdt_fd_associate_file() argument
416 if (!file) in fdt_fd_associate_file()
442 rt_atomic_add(&(file->ref_count), 1); in fdt_fd_associate_file()
443 fdt->fds[fd] = file; in fdt_fd_associate_file()
763 struct dfs_file *file; in dfs_dup_from() local
786 file = fd_get(newfd); in dfs_dup_from()
787 if (newfd >= 0 && file) in dfs_dup_from()
789 file->mode = fdtab->fds[oldfd]->mode; in dfs_dup_from()
790 file->flags = fdtab->fds[oldfd]->flags; in dfs_dup_from()
791 file->fops = fdtab->fds[oldfd]->fops; in dfs_dup_from()
792 file->dentry = dfs_dentry_ref(fdtab->fds[oldfd]->dentry); in dfs_dup_from()
793 file->vnode = fdtab->fds[oldfd]->vnode; in dfs_dup_from()
794 file->mmap_context = RT_NULL; in dfs_dup_from()
795 file->data = fdtab->fds[oldfd]->data; in dfs_dup_from()
1121 struct dfs_file *file = fd_table->fds[index]; in list_fd() local
1123 if (file && file->vnode) in list_fd()
1126 if (file->vnode->type == FT_DIRECTORY) rt_kprintf("%-7.7s ", "dir"); in list_fd()
1127 else if (file->vnode->type == FT_REGULAR) rt_kprintf("%-7.7s ", "file"); in list_fd()
1128 else if (file->vnode->type == FT_SOCKET) rt_kprintf("%-7.7s ", "socket"); in list_fd()
1129 else if (file->vnode->type == FT_USER) rt_kprintf("%-7.7s ", "user"); in list_fd()
1130 else if (file->vnode->type == FT_DEVICE) rt_kprintf("%-7.7s ", "device"); in list_fd()
1132 rt_kprintf("%3d ", file->ref_count); in list_fd()
1133 rt_kprintf("%04x ", file->magic); in list_fd()
1135 if (file->dentry) in list_fd()
1137 rt_kprintf("%s%s\n", file->dentry->mnt->fullpath, file->dentry->pathname); in list_fd()
1149 MSH_CMD_EXPORT(list_fd, list file descriptor);
1171 struct dfs_file *file = _fdtab.fds[index]; in dfs_fd_dump() local
1172 if (file) in dfs_fd_dump()
1174 char* fullpath = dfs_dentry_full_path(file->dentry); in dfs_fd_dump()
1178 fullpath, (size_t)rt_atomic_load(&(file->ref_count))); in dfs_fd_dump()
1184 file->dentry->pathname, (size_t)rt_atomic_load(&(file->ref_count))); in dfs_fd_dump()