Lines Matching refs:file
171 spifs_file_t *file; in find_file() local
173 list_for_every_entry(&spifs->files, file, spifs_file_t, node) { in find_file()
175 if (file == list_peek_head_type(&spifs->files, spifs_file_t, node) || in find_file()
176 file == list_peek_tail_type(&spifs->files, spifs_file_t, node)) { in find_file()
180 if (!strncmp(name, file->metadata.filename, MAX_FILENAME_LENGTH)) { in find_file()
181 return file; in find_file()
189 spifs_file_t *file; in find_open_run() local
190 list_for_every_entry(&spifs->files, file, spifs_file_t, node) { in find_open_run()
192 uint32_t page_size_shift = log2_uint(file->fs_handle->page_size); in find_open_run()
195 divpow2(file->metadata.capacity, page_size_shift); in find_open_run()
198 uint32_t file_end_page = file->metadata.page_idx + file_page_length; in find_open_run()
202 list_next_type(&spifs->files, &file->node, spifs_file_t, node); in find_open_run()
210 uint32_t available_bytes = available_pages * file->fs_handle->page_size; in find_open_run()
221 spifs_file_t *file; in used_space() local
222 list_for_every_entry(&spifs->files, file, spifs_file_t, node) { in used_space()
223 result += file->metadata.capacity; in used_space()
231 spifs_file_t *file; in consistency_check() local
232 list_for_every_entry(&spifs->files, file, spifs_file_t, node) { in consistency_check()
235 file->metadata.capacity / file->fs_handle->page_size; in consistency_check()
238 uint32_t file_end_page = file->metadata.page_idx + file_page_length - 1; in consistency_check()
242 list_next_type(&spifs->files, &file->node, spifs_file_t, node); in consistency_check()
289 spifs_file_t *file = list_peek_head_type(&spifs->files, spifs_file_t, node); in spifs_commit_toc() local
304 if (file) { in spifs_commit_toc()
305 crc = crc32(crc, (uint8_t *)&file->metadata, SPIFS_ENTRY_LENGTH); in spifs_commit_toc()
306 memcpy(cursor, (uint8_t *)&file->metadata, SPIFS_ENTRY_LENGTH); in spifs_commit_toc()
307 file = list_next_type(&spifs->files, &file->node, spifs_file_t, node); in spifs_commit_toc()
342 spifs_file_t *file; in spifs_add_ascending() local
343 list_for_every_entry(&spifs->files, file, spifs_file_t, node) { in spifs_add_ascending()
344 if (file->metadata.page_idx > target->metadata.page_idx) { in spifs_add_ascending()
345 list_add_before(&file->node, &target->node); in spifs_add_ascending()
644 spifs_file_t *file; in spifs_mount() local
655 file = malloc(sizeof(*file)); in spifs_mount()
656 if (!file) { in spifs_mount()
661 memcpy(&file->metadata, file_entry, SPIFS_ENTRY_LENGTH); in spifs_mount()
663 file->fs_handle = spifs; in spifs_mount()
665 list_add_tail(&spifs->files, &file->node); in spifs_mount()
678 while ((file = list_remove_head_type(&spifs->files, spifs_file_t, node))) { in spifs_mount()
679 free(file); in spifs_mount()
694 spifs_file_t *file; in spifs_unmount() local
695 while ((file = list_remove_head_type(&spifs->files, spifs_file_t, node))) { in spifs_unmount()
696 free(file); in spifs_unmount()
758 spifs_file_t *file = malloc(sizeof(*file)); in spifs_create() local
759 if (!file) { in spifs_create()
764 file->fs_handle = spifs; in spifs_create()
765 file->metadata.page_idx = open_run; in spifs_create()
766 file->metadata.length = len; in spifs_create()
767 file->metadata.capacity = capacity; in spifs_create()
768 memset(file->metadata.filename, 0, MAX_FILENAME_LENGTH); in spifs_create()
769 strlcpy(file->metadata.filename, name, MAX_FILENAME_LENGTH); in spifs_create()
775 free(file); in spifs_create()
781 spifs_add_ascending(spifs, file); in spifs_create()
786 list_delete(&file->node); in spifs_create()
787 free(file); in spifs_create()
794 *fcookie = (filecookie *) file; in spifs_create()
811 spifs_file_t *file = find_file(spifs, name); in spifs_open() local
815 if (!file) in spifs_open()
818 *fcookie = (filecookie *)file; in spifs_open()
824 spifs_file_t *file = (spifs_file_t *)fcookie; in spifs_close() local
826 LTRACEF("cookie %p name '%s'\n", fcookie, file->metadata.filename); in spifs_close()
843 spifs_file_t *file = find_file(spifs, name); in spifs_remove() local
845 if (!file) { in spifs_remove()
854 if (dcookie->next_file == file) { in spifs_remove()
861 list_delete(&file->node); in spifs_remove()
862 free(file); in spifs_remove()
875 spifs_file_t *file = (spifs_file_t *)fcookie; in spifs_read() local
876 spifs_t *spifs = file->fs_handle; in spifs_read()
883 uint32_t file_start = file->fs_handle->page_size * file->metadata.page_idx; in spifs_read()
884 uint32_t file_end = file_start + file->metadata.length; in spifs_read()
895 DEBUG_ASSERT(file->fs_handle->dev); in spifs_read()
897 ssize_t result = bio_read(file->fs_handle->dev, buf, read_start, len); in spifs_read()
910 spifs_file_t *file = (spifs_file_t *)fcookie; in spifs_write() local
911 spifs_t *spifs = (spifs_t *)(file->fs_handle); in spifs_write()
918 if (off + len > file->metadata.capacity) { in spifs_write()
926 off + (file->metadata.page_idx * spifs->page_size); in spifs_write()
932 if (off + len > file->metadata.length) { in spifs_write()
933 file->metadata.length = off + len; in spifs_write()
1011 spifs_file_t *file = (spifs_file_t *)fcookie; in spifs_truncate() local
1013 mutex_acquire(&file->fs_handle->lock); in spifs_truncate()
1015 spifs_t *spifs = (spifs_t *)(file->fs_handle); in spifs_truncate()
1018 if (len > file->metadata.length) { in spifs_truncate()
1023 file->metadata.length = len; in spifs_truncate()
1028 mutex_release(&file->fs_handle->lock); in spifs_truncate()
1036 spifs_file_t *file = (spifs_file_t *)fcookie; in spifs_stat() local
1038 mutex_acquire(&file->fs_handle->lock); in spifs_stat()
1042 stat->size = file->metadata.length; in spifs_stat()
1043 stat->capacity = file->metadata.capacity; in spifs_stat()
1046 mutex_release(&file->fs_handle->lock); in spifs_stat()
1142 spifs_file_t *file = (spifs_file_t *)cookie; in spifs_ioctl_get_file_addr() local
1143 spifs_t *spifs = file->fs_handle; in spifs_ioctl_get_file_addr()
1154 result_addr += file->metadata.page_idx * spifs->page_size; in spifs_ioctl_get_file_addr()
1167 spifs_file_t *file = (spifs_file_t *)cookie; in spifs_ioctl_is_linear() local
1168 spifs_t *spifs = file->fs_handle; in spifs_ioctl_is_linear()