New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VFS emulation #82
Comments
Is there anything preventing us from upgrading the project to C++17? Because |
I didn't try. If it works on Clang, MSVC and GCC I'd be happy to go to C++17. |
Here is more general discussion about filesystem design.
SceAppUtil SceAppMgr SceIofilemgr
SceIofilemgr is implemented as a VFS and I would suggest to take the same approach. The idea is to have mount/unmount functions that create
ScePfsMgr SceSdstor ScePfsMgr and SceSdstor interaction SceLibFios2
|
I continue thinking about filesystem. How it is implemented in vita and what we should implement on our end. I want to talk about mount points. From what I understand 2 main types of mount points exist. I would call them physical and virtual. These partitions are usually mounted with https://wiki.henkaku.xyz/vita/SceIofilemgr#sceIoMountForDriver And additional info about mount points is here: https://wiki.henkaku.xyz/vita/SceIofilemgr#Mount_Points Now about virtual mount points. Also I am assuming that depending on type of data - drive can be mounted normally or pfs mounted. My initial guess is that system does not check which of the mounts to do. This is assumed by design. I am assuming that if you call https://wiki.henkaku.xyz/vita/SceAppMgr#sceAppMgrPhotoMountForDriver There is also additional layer in the middle managed by AppMgr. We might not need it but I still want to mention it. Not quite sure how it works at the moment though. This behavior is implemented in single function that is responsible for all mounting and is used by all mount and unmount functions in AppMgr. I still think that it is important to understand how it works because it glues virtual mount points (drives) to physical locations. I am reversing this function here: get_random_path - up above is the one that is part of it - responsible for generating temporary mount points. |
It's added, PFS is translated to normal filesystem on installation. All operations are non PFS |
No description provided.
The text was updated successfully, but these errors were encountered: