Lines Matching refs:file
49 memfs_file_t *file; in find_file() local
50 list_for_every_entry(&mem->files, file, memfs_file_t, node) { in find_file()
51 if (!strcmp(name, file->name)) in find_file()
52 return file; in find_file()
74 static void free_file(memfs_file_t *file) { in free_file() argument
75 free(file->ptr); in free_file()
76 free(file->name); in free_file()
77 free(file); in free_file()
88 memfs_file_t *file; in memfs_unmount() local
89 while ((file = list_remove_head_type(&mem->files, memfs_file_t, node))) { in memfs_unmount()
90 free_file(file); in memfs_unmount()
126 memfs_file_t *file = malloc(sizeof(*file)); in memfs_create() local
127 if (!file) { in memfs_create()
133 file->ptr = calloc(1, len); in memfs_create()
134 if (!file->ptr) { in memfs_create()
135 free(file); in memfs_create()
139 file->len = len; in memfs_create()
142 file->name = strdup(name); in memfs_create()
143 file->fs = mem; in memfs_create()
145 list_add_tail(&mem->files, &file->node); in memfs_create()
147 *fcookie = (filecookie *)file; in memfs_create()
166 memfs_file_t *file = find_file(mem, name); in memfs_open() local
169 if (!file) in memfs_open()
172 *fcookie = (filecookie *)file; in memfs_open()
186 memfs_file_t *file = find_file(mem, name); in memfs_remove() local
187 if (file) in memfs_remove()
188 list_delete(&file->node); in memfs_remove()
191 if (!file) in memfs_remove()
195 free_file(file); in memfs_remove()
201 memfs_file_t *file = (memfs_file_t *)fcookie; in memfs_close() local
203 LTRACEF("cookie %p name '%s'\n", fcookie, file->name); in memfs_close()
211 memfs_file_t *file = (memfs_file_t *)fcookie; in memfs_read() local
216 mutex_acquire(&file->fs->lock); in memfs_read()
218 if (off >= (off_t)file->len) { in memfs_read()
220 } else if (off + len > file->len) { in memfs_read()
221 len = file->len - off; in memfs_read()
225 memcpy(buf, file->ptr + off, len); in memfs_read()
227 mutex_release(&file->fs->lock); in memfs_read()
237 memfs_file_t *file = (memfs_file_t *)fcookie; in memfs_truncate() local
239 mutex_acquire(&file->fs->lock); in memfs_truncate()
242 if (len > file->len) { in memfs_truncate()
250 void *ptr = realloc(file->ptr, len == 0 ? 1 : len); in memfs_truncate()
256 file->len = len; in memfs_truncate()
257 file->ptr = ptr; in memfs_truncate()
260 mutex_release(&file->fs->lock); in memfs_truncate()
267 memfs_file_t *file = (memfs_file_t *)fcookie; in memfs_write() local
272 mutex_acquire(&file->fs->lock); in memfs_write()
275 if (off + len > file->len) { in memfs_write()
276 void *ptr = realloc(file->ptr, off + len); in memfs_write()
278 mutex_release(&file->fs->lock); in memfs_write()
282 file->ptr = ptr; in memfs_write()
283 file->len = off + len; in memfs_write()
286 memcpy(file->ptr + off, buf, len); in memfs_write()
288 mutex_release(&file->fs->lock); in memfs_write()
296 memfs_file_t *file = (memfs_file_t *)fcookie; in memfs_stat() local
298 mutex_acquire(&file->fs->lock); in memfs_stat()
302 stat->size = file->len; in memfs_stat()
305 mutex_release(&file->fs->lock); in memfs_stat()