Lines Matching full:file
35 int dfs_romfs_ioctl(struct dfs_fd *file, int cmd, void *args) in dfs_romfs_ioctl() argument
114 /* return file dirent */ in dfs_romfs_lookup()
131 int dfs_romfs_read(struct dfs_fd *file, void *buf, size_t count) in dfs_romfs_read() argument
136 dirent = (struct romfs_dirent *)file->data; in dfs_romfs_read()
144 if (count < file->size - file->pos) in dfs_romfs_read()
147 length = file->size - file->pos; in dfs_romfs_read()
150 memcpy(buf, &(dirent->data[file->pos]), length); in dfs_romfs_read()
152 /* update file current position */ in dfs_romfs_read()
153 file->pos += length; in dfs_romfs_read()
158 int dfs_romfs_lseek(struct dfs_fd *file, off_t offset) in dfs_romfs_lseek() argument
160 if (offset <= file->size) in dfs_romfs_lseek()
162 file->pos = offset; in dfs_romfs_lseek()
163 return file->pos; in dfs_romfs_lseek()
169 int dfs_romfs_close(struct dfs_fd *file) in dfs_romfs_close() argument
171 file->data = NULL; in dfs_romfs_close()
175 int dfs_romfs_open(struct dfs_fd *file) in dfs_romfs_open() argument
182 fs = (struct dfs_filesystem *)file->data; in dfs_romfs_open()
188 if (file->flags & (O_CREAT | O_WRONLY | O_APPEND | O_TRUNC | O_RDWR)) in dfs_romfs_open()
191 dirent = dfs_romfs_lookup(root_dirent, file->path, &size); in dfs_romfs_open()
195 /* entry is a directory file type */ in dfs_romfs_open()
198 if (!(file->flags & O_DIRECTORY)) in dfs_romfs_open()
203 /* entry is a file, but open it as a directory */ in dfs_romfs_open()
204 if (file->flags & O_DIRECTORY) in dfs_romfs_open()
208 file->data = dirent; in dfs_romfs_open()
209 file->size = size; in dfs_romfs_open()
210 file->pos = 0; in dfs_romfs_open()
243 int dfs_romfs_getdents(struct dfs_fd *file, struct dirent *dirp, uint32_t count) in dfs_romfs_getdents() argument
250 dirent = (struct romfs_dirent *)file->data; in dfs_romfs_getdents()
264 for (index = 0; index < count && file->pos < file->size; index ++) in dfs_romfs_getdents()
268 sub_dirent = &dirent[file->pos]; in dfs_romfs_getdents()
282 ++ file->pos; in dfs_romfs_getdents()
317 /* register rom file system */ in dfs_romfs_init()