Lines Matching refs:file

57 int dfs_ramfs_ioctl(struct dfs_file *file, int cmd, void *args)  in dfs_ramfs_ioctl()  argument
95 ssize_t dfs_ramfs_read(struct dfs_file *file, void *buf, size_t count) in dfs_ramfs_read() argument
100 dirent = (struct ramfs_dirent *)file->vnode->data; in dfs_ramfs_read()
103 if (count < file->vnode->size - file->pos) in dfs_ramfs_read()
106 length = file->vnode->size - file->pos; in dfs_ramfs_read()
109 rt_memcpy(buf, &(dirent->data[file->pos]), length); in dfs_ramfs_read()
112 file->pos += length; in dfs_ramfs_read()
154 off_t dfs_ramfs_lseek(struct dfs_file *file, off_t offset) in dfs_ramfs_lseek() argument
156 if (offset <= (off_t)file->vnode->size) in dfs_ramfs_lseek()
158 file->pos = offset; in dfs_ramfs_lseek()
160 return file->pos; in dfs_ramfs_lseek()
166 int dfs_ramfs_close(struct dfs_file *file) in dfs_ramfs_close() argument
168 RT_ASSERT(file->vnode->ref_count > 0); in dfs_ramfs_close()
169 if (file->vnode->ref_count > 1) in dfs_ramfs_close()
174 file->vnode->data = NULL; in dfs_ramfs_close()
179 int dfs_ramfs_open(struct dfs_file *file) in dfs_ramfs_open() argument
186 RT_ASSERT(file->vnode->ref_count > 0); in dfs_ramfs_open()
187 if (file->vnode->ref_count > 1) in dfs_ramfs_open()
189 if (file->vnode->type == FT_DIRECTORY in dfs_ramfs_open()
190 && !(file->flags & O_DIRECTORY)) in dfs_ramfs_open()
194 file->pos = 0; in dfs_ramfs_open()
198 fs = file->vnode->fs; in dfs_ramfs_open()
203 if (file->flags & O_DIRECTORY) in dfs_ramfs_open()
205 if (file->flags & O_CREAT) in dfs_ramfs_open()
211 dirent = dfs_ramfs_lookup(ramfs, file->vnode->path, &size); in dfs_ramfs_open()
216 if (!(file->flags & O_DIRECTORY)) in dfs_ramfs_open()
221 file->vnode->type = FT_DIRECTORY; in dfs_ramfs_open()
225 dirent = dfs_ramfs_lookup(ramfs, file->vnode->path, &size); in dfs_ramfs_open()
233 if (file->flags & O_CREAT || file->flags & O_WRONLY) in dfs_ramfs_open()
247 name_ptr = file->vnode->path; in dfs_ramfs_open()
258 file->vnode->type = FT_DIRECTORY; in dfs_ramfs_open()
270 if (file->flags & O_TRUNC) in dfs_ramfs_open()
281 file->vnode->data = dirent; in dfs_ramfs_open()
282 file->vnode->size = dirent->size; in dfs_ramfs_open()
283 if (file->flags & O_APPEND) in dfs_ramfs_open()
285 file->pos = file->vnode->size; in dfs_ramfs_open()
289 file->pos = 0; in dfs_ramfs_open()
319 int dfs_ramfs_getdents(struct dfs_file *file, in dfs_ramfs_getdents() argument
328 dirent = (struct ramfs_dirent *)file->vnode->data; in dfs_ramfs_getdents()
341 end = file->pos + count; in dfs_ramfs_getdents()
348 if (index >= (rt_size_t)file->pos) in dfs_ramfs_getdents()
357 file->pos += 1; in dfs_ramfs_getdents()