Alex "Chadderz" Chadwick
a711f2bef2
Fix concurrency bugs in FAT_getAttr/FAT_setAttr. ( #13 )
...
A relatively rare concurrency bug existed in these methods due to them not
correctly holding the partition lock during calls to
_FAT_directory_entryFromPath. That method can trigger reads to the partition.
Due to the lock not being held, another thread could still trigger a concurrent
read, potentially corrupting the cache. The fix is simply to ensure the lock is
held around the calls.
2018-04-20 11:23:50 +00:00
Dave Murphy
9e2f91dee6
devkitARM r46 updates
2017-01-17 09:32:57 +00:00
Dave Murphy
73ccaec815
match newlib
...
ensure max filename length matches newlib
2016-12-20 20:07:08 +00:00
FrankHB
affed015e1
Removed redundant check
...
`size_t` is guaranteed to be not negative.
2015-06-02 00:34:49 +08:00
Dave Murphy
ef7a8748e6
fix FAT_setAttr for big endian
2015-01-13 15:11:51 +00:00
Dave Murphy
b42fdc447c
fix FAT_setAttr
2014-12-15 02:21:51 +00:00
Dave Murphy
f6ff332c5c
add FAT_setAttr, expose FAT_setAttr/FAT_getAttr and add defines for DOS attributes
2012-05-13 00:24:58 +01:00
Dave Murphy
84dd3a491a
starting get/set for DOS file attributes
2011-07-10 10:17:05 +00:00
tantricity
d5f437723f
support > 512 bytes per sector in libfat (dimok)
2011-06-18 07:40:53 +00:00
Dave Murphy
81110882db
correct use of uninitialised variable
2010-10-07 21:53:18 +00:00
Dave Murphy
79e3dc0948
applied http://sourceforge.net/support/tracker.php?aid=2885644
2009-10-27 00:55:26 +00:00
Dave Murphy
b7dcf2ce33
fix cluster over allocation, skip cluster alignment write if already aligned
2009-10-07 19:48:51 +00:00
Dave Murphy
aa7a8929ee
removed commented test code
2009-06-11 00:48:34 +00:00
Dave Murphy
76a9624d2e
only sync if file open for writing
2009-06-09 18:20:22 +00:00
Michael Wiedenbauer
806fc418e0
- cleaned up cache code. reverted access policy to what it was before.
...
- _FAT_fat_linkFreeClusterCleared must go thru cache aswell.
2009-06-06 16:06:42 +00:00
tantricity
7262354c49
new write cache, flush dirty pages. fix by rodries.
2009-05-30 06:52:18 +00:00
tantricity
7d8f5f3194
sync written data to disk on f_write
2009-05-28 17:50:36 +00:00
tantricity
1c6db0ae1b
remove unnecessary function
2009-05-20 18:12:27 +00:00
Dave Murphy
206ce78022
add read ahead cache by Rodries
2009-05-17 22:16:35 +00:00
tantricity
fcb840cd66
remove trailing spaces
2009-05-17 20:19:56 +00:00
Michael Chisholm
18e980f050
Add missing unlocks to _FAT_fread_r, thanks to dhewg
2008-12-23 12:58:17 +00:00
Michael Chisholm
145e2cc9d3
Truncated files are modified upon opening
2008-12-13 03:14:54 +00:00
Michael Chisholm
2a239bcd2b
Remove left-over debugging code
2008-12-13 02:18:40 +00:00
Dave Murphy
4d5a03f03c
rearrange structs in size order, initialise partition open file list
2008-12-10 14:26:58 +00:00
Michael Chisholm
94c4eac0cb
Read/write contigious clusters in one operation to improve speed.
2008-11-22 13:37:16 +00:00
Michael Chisholm
2cc2cc2e39
Moved disc interfaces to appropriate libraries (DLDI to libnds, SD/USB to libogc).
...
Changed read/write functions to use size_t and seek function to use off_t -- will help on 64 bit platforms.
Partitions no longer specified by fat1:/, fat2:/, etc.
Use "nice" device names. On GBA/NDS the default partition is still fat:/; however on Wii and GC sd:/, usb:/, etc. are used instead.
Added fsync and ftruncate functions.
Mount and unmount no longer startup/shutdown the device, this is the job of the host app.
Mount now accepts a partition start parameter.
Used standard types, eg uint32_t instead of u32.
Archive bit is set when closing/synchronizing a modified file.
Various minor bug fixes.
2008-11-20 05:22:28 +00:00
Michael Chisholm
03bed3a1bd
Only set append position when file is opened for append, as suggested by rodries. Improves open speed for large files.
2008-09-12 11:18:09 +00:00
Michael Chisholm
bfb4d60d1f
Don't read high 16 bits of start cluster from a directory entry on non-FAT32 partititions, in case it contains non-zero data
2008-09-08 08:28:17 +00:00
Dave Murphy
8b9d437f76
add locks for threaded systems.
...
fix eof conditions
https://sourceforge.net/tracker/?func=detail&atid=668553&aid=1970541&group_id=114505
2008-05-23 19:37:46 +00:00
Dave Murphy
25b615836f
simplified read/write position reset
2008-05-14 13:01:15 +00:00
Dave Murphy
ad1161c083
reset read/write position properly on first cluster allocation
2008-05-12 16:10:42 +00:00
Michael Chisholm
8d36ebe061
Modified WinterMute's seek then write fix for elegance, removed
...
resetPosition
2008-05-12 09:35:18 +00:00
Dave Murphy
a6dd89dbe4
Only reset file->currentPostion on first creation
2008-05-12 02:52:12 +00:00
Michael Chisholm
634887aa0f
A cluster is only allocated for a file when data is written, instead of when the file is opened
...
file_extend_r renamed to _FAT_file_extend_r
2007-11-04 09:51:31 +00:00
Michael Chisholm
8cfa906c22
Use CLUSTER_ERROR when an error occurs with the FAT, not CLUSTER_FREE
2007-09-01 07:55:38 +00:00
Michael Chisholm
c394419d72
Fixed seek to end of file when reading
2007-04-12 01:06:35 +00:00
Michael Chisholm
be7f9f10fb
Fixed seek to the end of a file bug
2007-02-25 09:51:47 +00:00
Michael Chisholm
c26b60e6e0
Propagate disc errors up to the user app
2007-02-11 02:08:53 +00:00
Michael Chisholm
a8bbf71829
Moved all externally visible directory related functions to fatdir
2006-08-13 09:43:38 +00:00
Michael Chisholm
f7f51d6a5e
Fixed _FAT_seek_r
2006-08-02 10:07:09 +00:00
Michael Chisholm
9ad203bc6d
Added _FAT_rename_r for use when devoptab_t is extended.
2006-07-17 08:10:00 +00:00
Michael Chisholm
cc64edfab8
Initial import into devkitpro CVS.
2006-07-14 02:42:37 +00:00