Lines Matching full:file

57 int dfs_ramfs_ioctl(struct dfs_fd *file, int cmd, void *args)  in dfs_ramfs_ioctl()  argument
95 int dfs_ramfs_read(struct dfs_fd *file, void *buf, size_t count) in dfs_ramfs_read() argument
100 dirent = (struct ramfs_dirent *)file->data; in dfs_ramfs_read()
103 if (count < file->size - file->pos) in dfs_ramfs_read()
106 length = file->size - file->pos; in dfs_ramfs_read()
109 memcpy(buf, &(dirent->data[file->pos]), length); in dfs_ramfs_read()
111 /* update file current position */ in dfs_ramfs_read()
112 file->pos += length; in dfs_ramfs_read()
139 /* update dirent and file size */ in dfs_ramfs_write()
148 /* update file current position */ in dfs_ramfs_write()
154 int dfs_ramfs_lseek(struct dfs_fd *file, off_t offset) in dfs_ramfs_lseek() argument
156 if (offset <= (off_t)file->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_fd *file) in dfs_ramfs_close() argument
168 file->data = NULL; in dfs_ramfs_close()
173 int dfs_ramfs_open(struct dfs_fd *file) in dfs_ramfs_open() argument
180 fs = (struct dfs_filesystem *)file->data; in dfs_ramfs_open()
185 if (file->flags & O_DIRECTORY) in dfs_ramfs_open()
187 if (file->flags & O_CREAT) in dfs_ramfs_open()
193 dirent = dfs_ramfs_lookup(ramfs, file->path, &size); in dfs_ramfs_open()
198 if (!(file->flags & O_DIRECTORY)) in dfs_ramfs_open()
206 dirent = dfs_ramfs_lookup(ramfs, file->path, &size); in dfs_ramfs_open()
214 if (file->flags & O_CREAT || file->flags & O_WRONLY) in dfs_ramfs_open()
218 /* create a file entry */ in dfs_ramfs_open()
228 name_ptr = file->path; in dfs_ramfs_open()
245 /* Creates a new file. in dfs_ramfs_open()
246 * If the file is existing, it is truncated and overwritten. in dfs_ramfs_open()
248 if (file->flags & O_TRUNC) in dfs_ramfs_open()
259 file->data = dirent; in dfs_ramfs_open()
260 file->size = dirent->size; in dfs_ramfs_open()
261 if (file->flags & O_APPEND) in dfs_ramfs_open()
262 file->pos = file->size; in dfs_ramfs_open()
264 file->pos = 0; in dfs_ramfs_open()
293 int dfs_ramfs_getdents(struct dfs_fd *file, in dfs_ramfs_getdents() argument
302 dirent = (struct ramfs_dirent *)file->data; in dfs_ramfs_getdents()
315 end = file->pos + count; in dfs_ramfs_getdents()
322 if (index >= (rt_size_t)file->pos) in dfs_ramfs_getdents()
331 file->pos += 1; in dfs_ramfs_getdents()
414 /* register ram file system */ in dfs_ramfs_init()