Commit Graph

21 Commits

Author SHA1 Message Date
Ivan Grokhotkov
39238f51ce fatfs: fix incorrect mtime returned for files created during DST
mktime function uses tm_isdst member as an indicator whether the time
stamp is expected to be in daylight saving time (1) or not (0).
FAT filesystem uses local time as mtime, so no information about DST
is available from the filesystem.

According to mktime documentation, tm_isdst can be set to -1, in which
case the C library will try to determine if DST was or wasn't in
effect at that time, and will set UTC time accordingly.

Note that the conversion from UTC to local time and then back to UTC
(time_t -> localtime_r -> FAT timestamp -> mktime -> time_t) does not
always recover the same UTC time. In particular, the local time in the
hour before DST comes into effect can be interpreted as "before DST"
or "after DST", which would correspond to different UTC values. In
this case which option the C library chooses is undefined.

Closes https://github.com/espressif/esp-idf/issues/9039
Originally reported in https://github.com/espressif/arduino-esp32/issues/6786
2022-06-09 19:50:00 +00:00
Ivan Grokhotkov
25a5344763 Merge branch 'feature/vfs_fat_info' into 'master'
fatfs: add esp_vfs_fat_info() + unit tests

Closes IDF-4853

See merge request espressif/esp-idf!17654
2022-04-27 17:01:33 +08:00
Anton Maklakov
bbe2bb9994 components: correct abs() use for 64-bit argument 2022-04-21 12:22:15 +07:00
Adam Múdry
22b46580f8 fatfs: add esp_vfs_fat_info() + unit tests 2022-04-15 20:49:53 +02:00
Vamshi Gajjela
ea9f7cc370 fatfs: Add ftruncate api support for VFS and FAT-VFS
Unit test cases added to verify ftruncate within fatfs tests.

Closes https://github.com/espressif/esp-idf/issues/8279
2022-03-08 16:58:25 +05:30
morris
e9c131e174 fatfs: return EINVAL if truncate length is less than 0 2021-01-13 19:11:48 +08:00
Angus Gratton
6ce34a227e Merge branch 'feature/fatfs_fast_seek' into 'master'
feature/fatfs: enable the usage of fast-seek algorithm

See merge request espressif/esp-idf!9916
2020-11-17 07:17:31 +08:00
Angus Gratton
66fb5a29bb Whitespace: Automated whitespace fixes (large commit)
Apply the pre-commit hook whitespace fixes to all files in the repo.

(Line endings, blank lines at end of file, trailing whitespace)
2020-11-11 07:36:35 +00:00
Felipe Neves
93ffc009ef vfs: restrict the fast seek for read-only files
Since the files under fast-seek cannot be expanded with further writes, it does not
make sense to enable fast-seek which may fail in write-mode files
2020-11-05 17:01:50 -03:00
morris
2917651478 esp_rom: extract common ets apis into esp_rom_sys.h 2020-07-27 15:27:01 +08:00
Roland Dobai
41062bea99 VFS: Implement pread() and pwrite()
Closes https://github.com/espressif/esp-idf/issues/3515
2019-07-11 06:20:21 +00:00
Ivan Grokhotkov
5339c56bc5 fatfs: bypass newlib buffering in performance test 2019-01-05 14:13:49 +08:00
Roland Dobai
fb334baa7c VFS: Implement utime() 2018-11-05 09:54:01 +01:00
Renz Bagaporo
ea711f2ee9 vfs, fatfs: Add file truncate for fatfs 2018-06-14 06:37:21 +08:00
Ivan Grokhotkov
cbd7431d94 fatfs/test: increase stack size in read-write unit test
2048 byte stack was not sufficient when some error was logged by SD
card driver, leading to stack overflows.
2018-04-18 14:35:21 +08:00
Roland Dobai
744c2dcdd9 Resolve problems found by enabling -Wwrite-strings compilation flag 2018-04-10 08:53:43 +02:00
Darian Leung
99b8ae34c9 fatfs/add menuconfig options for different encodings
This commit adds character encoding configurations in for the fatfs component.
The FF_LFN_UNICODE definition in ffconf.h can now be changed to accept UTF-8 or
UTF-16 encoded filernames. Test cases using UTF-8 encoded file paths and names in
FatFs have also been added.

Closes #1183
2018-03-23 14:06:56 +08:00
Ivan Grokhotkov
a63ace15bd vfs/fatfs: fix stat call failing when called for mount point
FATFS does not support f_stat call for drive root. When handling stat
for drive root, don't call f_stat and just return struct st with S_IFDIR
flag set.

Closes #984
2017-12-08 20:04:27 +08:00
Ivan Grokhotkov
cc67500d3e unit test: adapt tests to single core configuration 2017-10-19 21:35:21 +08:00
Ivan Grokhotkov
2ccfe3da96 vfs: fix opendir of a filesystem root directory
Previously opendir("/data") would fail if filesystem with "data" prefix
was registered in VFS, while opendir("/data/") would succeed.
This change fixes handling for the former case and adds relevant tests.
2017-06-21 01:21:14 +08:00
Ivan Grokhotkov
4e3ea66ec4 fatfs: run same fatfs tests for WL and SDMMC
This change moves actual test code into test_fatfs_common.c and
refactors setup/teardown code to be contained within separate functions.
For each SDMMC FATFS test, identical test is added which can run with
WL partition in flash.
2017-05-05 15:21:38 +08:00