Commit Graph

36 Commits

Author SHA1 Message Date
Thomas Watson
71be1194cb AP_Filesystem: FATFS: clean up error handling
Remove redundant checks of the stream, cases that could never occur
(both before and after combining allocations), and clarify errno
propagation.
2025-02-25 11:17:50 +11:00
Thomas Watson
b9cad62acf AP_Filesystem: FATFS: combine file allocations
The file handle and object are always allocated together. Combine them
to avoid overhead from extra allocations and additional error cases.

Also simplify by using strdup for the pathname.
2025-02-25 11:17:50 +11:00
Thomas Watson
7a6861e28d AP_Filesystem: FATFS: drop tty check logic
In Standard C, the first three file descriptors are usually standard in,
out, and error. However, ArduPilot doesn't have a concept of this and
other backends (such as LittleFS) don't bother to reject them.

Remove this logic to simplify implementation and allow use of more open
files.
2025-02-18 12:33:37 +11:00
Thomas Watson
ed2c42ede2 AP_Filesystem: new API for performing optimal fsyncs 2025-02-17 16:33:51 +11:00
Thomas Watson
c57ac3b916 AP_Filesystem: FATFS: remove redundant delay expectations
The delays will be canceled on return by the EXPECT_DELAY_MS(3000)
destructor at the start of the function. The current behavior will
unexpectedly cancel delays from higher levels up the stack and is likely
not what was intended.
2024-12-31 11:20:21 +11:00
muramura
e86d5e113f AP_Filesystem: BOOL for binary types 2024-07-26 20:12:05 +10:00
Andrew Tridgell
a241b13f45 AP_Filesystem: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andrew Tridgell
3cb3e6feda AP_Filesystem: use gmtime_r() instead of gmtime()
using gmtime_r makes gmtime thread safe
2024-02-21 12:09:48 +11:00
Andrew Tridgell
c5f295e852 AP_Filesystem: allow for large file IOs
this allows for larger IOs on FATFS if the memoory is OK for DMA
2024-01-05 06:52:11 -08:00
Mykhailo Kuznietsov
804d4446d1 AP_Filesystem: Fix some typos
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
Peter Barker
ac2fea9766 AP_Filesystem: move AP_RTC::mktime to be ap_mktime
in preparation for AP_RTC_ENABLED
2023-06-27 11:25:11 +10:00
Andrew Tridgell
4946ce5431 HAL_ChibiOS: revert recent USB changes
these are causing some boards to crash on startup. Tested with a
QiotekZealotH743 which doesn't get out of setup_usb_strings()

once we have debugged this we can re-add the functionality
2023-06-03 16:50:30 +10:00
bugobliterator
414606ba31 AP_Filesystem: add support for blocking filesystem access 2023-05-31 18:40:17 +10:00
Peter Barker
1c54d18672 AP_Filesystem: replace HAVE_FILESYSTEM_SUPPORT with backend defines 2023-05-17 09:40:39 +10:00
Andrew Tridgell
cf79843661 AP_Filesystem: support file rename 2023-03-05 09:42:48 +11:00
Peter Barker
d633bd3f49 AP_Filesystem: add in-progress to formatsdcard process 2023-02-21 17:07:41 +11:00
Willian Galvani
0e62d561d9 AP_Filesystem: add allow_absolute_paths to open(), implement it for posix backend 2022-03-22 10:19:21 +11:00
Andrew Tridgell
7bd45fcb50 AP_Filesystem: avoid ff.h in header
this avoids the chibios hal includes
2022-02-22 12:13:19 +11:00
murata
e209a6e73b AP_Filesystem: Remove WHITE SPACE to match other method styles 2022-02-15 10:14:13 +11:00
murata
0967d79a93 AP_Filesystem: Change the judgment null of methods that return nullptr 2022-02-15 10:14:13 +11:00
Andrew Tridgell
7c57e1521c AP_Filesystem: support formatting of SDcard on ChibiOS 2021-12-28 16:04:57 +11:00
Andrew Tridgell
b23afc4a9e AP_Filesystem: disallow file operations from main thread while armed
this stops all file operations from the main thread while armed,
allowing for a 3s grace time on arming to allow for initial log
file creation
2021-06-09 15:08:28 +10:00
Andrew Tridgell
e429d578fa AP_Filesystem: added interface for mount/unmount
we need to hold the FATFS semaphore when doing mount/unmount, which
means we must go via AP_Filesystem_FATFS
2020-10-27 10:45:03 +11:00
Andrew Tridgell
7562eef4c1 AP_Filesystem: use mktime from AP_RTC 2020-10-20 11:21:00 +11:00
Andrew Tridgell
fabbbea0b4 AP_Fileystem: fixed gcc9 warning 2020-09-22 08:07:23 +10:00
Andrew Tridgell
9b14fa7ed9 AP_Filesystem: enable @PARAM, @ROMFS and @SYS with no microSD 2020-04-29 07:36:55 +10:00
Andrew Tridgell
6583f7c13e AP_Filesystem: added VFS system for multiple backends 2020-03-28 15:28:03 +11:00
Andrew Tridgell
b49a76bb20 AP_Filesystem: fixed EOF on file read
should return number of bytes read. This fixes an issue with MAVProxy
ftp client
2020-02-19 18:11:41 +11:00
Andrew Tridgell
23b3000e3a AP_Filesystem: make all semaphores recursive
the cost is very similar and this prevents an easy coding error which
can occur on less used code paths
2020-01-19 20:19:30 +11:00
Andrew Tridgell
d9a6c81eec AP_Filesystem: fixed set_mtime semaphore 2020-01-18 15:43:09 +11:00
Andrew Tridgell
1a5d6527f6 AP_FileSystem: chunk IOs to max 4k
this prevents larger IOs from attempting to allocate too much memory
in DMA bouncebuffers
2020-01-18 07:13:11 +11:00
Peter Barker
67aca84adc AP_FileSystem: avoid aliasing isatty from unistd.h
If some poor sod includes unistd.h in a header included by this then we
get a compilation failure.
2019-12-10 10:48:08 +11:00
Michael du Breuil
14bf946fe2 AP_Filesystem: Add dir type to fatfs 2019-11-02 22:52:06 +11:00
Andrew Tridgell
b72dcf6478 AP_Filesystem: use a recursive semaphore
this is needed to cope with the mkdir("/APM") in sdcard_retry()
2019-09-06 08:51:04 +10:00
Andrew Tridgell
b489e8a655 AP_Filesystem: added set_mtime() call 2019-08-27 15:40:43 +10:00
Andrew Tridgell
692abb11fa AP_Filesystem: define new filesystem API 2019-08-27 15:40:43 +10:00