head 1.1; access; symbols perseant-exfatfs-base-20250801:1.1 perseant-exfatfs-base-20240630:1.1 perseant-exfatfs:1.1.0.2; locks; strict; comment @# @; 1.1 date 2024.06.29.19.43.26; author perseant; state dead; branches 1.1.2.1; next ; commitid RZLeba2qlfktMUfF; 1.1.2.1 date 2024.06.29.19.43.26; author perseant; state Exp; branches; next 1.1.2.2; commitid RZLeba2qlfktMUfF; 1.1.2.2 date 2024.07.03.18.57.42; author perseant; state Exp; branches; next 1.1.2.3; commitid HbJPiGV6LK9UnqgF; 1.1.2.3 date 2024.07.19.16.19.15; author perseant; state Exp; branches; next 1.1.2.4; commitid 8uwDpK56GyLM0tiF; 1.1.2.4 date 2024.08.02.00.16.55; author perseant; state Exp; branches; next ; commitid opziOmnhf6cKebkF; desc @@ 1.1 log @file TODO was initially added on branch perseant-exfatfs. @ text @@ 1.1.2.1 log @Implementation of exFAT filesystem, with compilation conditional on MKEXFATFS make variable. @ text @a0 6 * Convert IO size from disk sector size to MAXPHYS. * Use unions in directory entries instead of the cumbersome casting. * Use DataLength and ValidDataLength to refer to before and after write data size, the way Windows does, rather than block and byte allocation, as implied by the spec. * Test with and without TRIE and decide whether to keep it.@ 1.1.2.2 log @Interpret files' DataLength attribute as the file size in bytes, rather than rounding up to the next highest cluster as suggested by the spec. This means that DataLength and ValidDataLength are always the same. Ideally we would delay updating ValidDataLength until the data has been written, but for now we just keep the two values in sync. @ text @d3 4 @ 1.1.2.3 log @Use a logical block size if the cluster size or MAXPHYS, whichever is smaller. Protext FreeClusterCount with mutex. Do not always update the FAT chain, but convert from NoFatChain as needed. @ text @d1 1 @ 1.1.2.4 log @Use a symbol for the size of the boot code. Deallocate bitmap entries more efficiently for unfragmented files Use TRIM if the disk driver supports it. Share code for locating a valid superblock. Share code for writing, and writing back, the superblock. Correct the sense of the archive bit (it was inverted). @ text @a1 1 * Copy extended boot code too, if requested.@