The FSClient has the weird behaviour that it softlocks the console once a "fatal" error happend on the fs side. A "fatal" error can be as simple as seeking beyond the actual filesize, well.
The FSA Api returns proper error codes which can be handled instead of soft locking the console. In comparision to FS-API it doesn't support the "Command Blocks" => handling priority or canceling fs operations is not possible, but these feature where not use in the devoptab anyway.
Things left to do:
[x] Add fixes from #251 and #250
[x] Finish the FSAError to errno mapping
[x] Decide if a OSFastMutex_Lock or a regular OSMutex (std::mutex) should be used.
[x] Clean up the __init_wut_devoptab and __fini_wut_devoptab functions.
[x] Decide if we should keep the OSReports on error
Things that can be (easier) implemented after using FSA instead of FS:
The FSClient has the weird behaviour that it softlocks the console once a "fatal" error happend on the fs side. A "fatal" error can be as simple as seeking beyond the actual filesize, well.
The FSA Api returns proper error codes which can be handled instead of soft locking the console. In comparision to FS-API it doesn't support the "Command Blocks" => handling priority or canceling fs operations is not possible, but these feature where not use in the devoptab anyway.
Things left to do:
OSFastMutex_Lock
or a regular OSMutex (std::mutex) should be used.__init_wut_devoptab
and__fini_wut_devoptab
functions.Things that can be (easier) implemented after using FSA instead of FS: