Conversation
|
Regular homebrew should not use or link against random libraries providing filesystem services. The right way to lay this out in Horizon OS is to have some sort of custom sysmodule/service running in the background, which would provide access to an object following the standard IFilesystem interface, that can then be mounted using libnx's fsdev wrapper. Ideally, at some point Atmosphère would have a registry of custom filesystems, but nothing has been decided or planned yet. Either way, manually parsing filesystems within final homebrew apps is definitely a no-go. I'm still leaving this PR open because I guess it will be necessary to implement said custom sysmodule/service. |
|
Thanks. Is there a forum/discord/contact for Atmosphere to discuss if/how I could help with the above? |
|
superseded by #345 |
Provides libntfs-3g.
To use this you need to supply your own
ntfs_device_operationsstruct during init. This is currently not available out-of-the-box (usinglibnx) as the API is designed around low-level block storage.There is an (old) example of an implementation for the Nintendo Wii here:
https://github.com/rhyskoedijk/libntfs-wii/blob/master/source/gekko_io.c
I am considering creating a new library (
libblockstorage?) which would provide the necessary low-level access to (USB) block storage. With a library that can provide generic block storage, this and other filesystem libraries (ext2/3/4, fatfs, etc) could then be used.Please let me know if this is heading down the right track, I'm not able to find much documentation on best practices for contributing, any guidance would be appreicated.