mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	file_sys/bis_factory: Eliminate usage of the global system accessor
This commit is contained in:
		
							parent
							
								
									aa8d6fc041
								
							
						
					
					
						commit
						0e80567bef
					
				@ -629,11 +629,11 @@ Loader::AppLoader& System::GetAppLoader() const {
 | 
				
			|||||||
    return *impl->app_loader;
 | 
					    return *impl->app_loader;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void System::SetFilesystem(std::shared_ptr<FileSys::VfsFilesystem> vfs) {
 | 
					void System::SetFilesystem(FileSys::VirtualFilesystem vfs) {
 | 
				
			||||||
    impl->virtual_filesystem = std::move(vfs);
 | 
					    impl->virtual_filesystem = std::move(vfs);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
std::shared_ptr<FileSys::VfsFilesystem> System::GetFilesystem() const {
 | 
					FileSys::VirtualFilesystem System::GetFilesystem() const {
 | 
				
			||||||
    return impl->virtual_filesystem;
 | 
					    return impl->virtual_filesystem;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -316,9 +316,9 @@ public:
 | 
				
			|||||||
    Service::SM::ServiceManager& ServiceManager();
 | 
					    Service::SM::ServiceManager& ServiceManager();
 | 
				
			||||||
    const Service::SM::ServiceManager& ServiceManager() const;
 | 
					    const Service::SM::ServiceManager& ServiceManager() const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void SetFilesystem(std::shared_ptr<FileSys::VfsFilesystem> vfs);
 | 
					    void SetFilesystem(FileSys::VirtualFilesystem vfs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    std::shared_ptr<FileSys::VfsFilesystem> GetFilesystem() const;
 | 
					    FileSys::VirtualFilesystem GetFilesystem() const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void RegisterCheatList(const std::vector<Memory::CheatEntry>& list,
 | 
					    void RegisterCheatList(const std::vector<Memory::CheatEntry>& list,
 | 
				
			||||||
                           const std::array<u8, 0x20>& build_id, VAddr main_region_begin,
 | 
					                           const std::array<u8, 0x20>& build_id, VAddr main_region_begin,
 | 
				
			||||||
 | 
				
			|||||||
@ -4,10 +4,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <fmt/format.h>
 | 
					#include <fmt/format.h>
 | 
				
			||||||
#include "common/file_util.h"
 | 
					#include "common/file_util.h"
 | 
				
			||||||
#include "core/core.h"
 | 
					 | 
				
			||||||
#include "core/file_sys/bis_factory.h"
 | 
					#include "core/file_sys/bis_factory.h"
 | 
				
			||||||
#include "core/file_sys/mode.h"
 | 
					#include "core/file_sys/mode.h"
 | 
				
			||||||
#include "core/file_sys/registered_cache.h"
 | 
					#include "core/file_sys/registered_cache.h"
 | 
				
			||||||
 | 
					#include "core/file_sys/vfs.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace FileSys {
 | 
					namespace FileSys {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -81,11 +81,11 @@ VirtualDir BISFactory::OpenPartition(BisPartitionId id) const {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VirtualFile BISFactory::OpenPartitionStorage(BisPartitionId id) const {
 | 
					VirtualFile BISFactory::OpenPartitionStorage(BisPartitionId id,
 | 
				
			||||||
 | 
					                                             VirtualFilesystem file_system) const {
 | 
				
			||||||
    auto& keys = Core::Crypto::KeyManager::Instance();
 | 
					    auto& keys = Core::Crypto::KeyManager::Instance();
 | 
				
			||||||
    Core::Crypto::PartitionDataManager pdm{
 | 
					    Core::Crypto::PartitionDataManager pdm{file_system->OpenDirectory(
 | 
				
			||||||
        Core::System::GetInstance().GetFilesystem()->OpenDirectory(
 | 
					        Common::FS::GetUserPath(Common::FS::UserPath::SysDataDir), Mode::Read)};
 | 
				
			||||||
            Common::FS::GetUserPath(Common::FS::UserPath::SysDataDir), Mode::Read)};
 | 
					 | 
				
			||||||
    keys.PopulateFromPartitionData(pdm);
 | 
					    keys.PopulateFromPartitionData(pdm);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    switch (id) {
 | 
					    switch (id) {
 | 
				
			||||||
 | 
				
			|||||||
@ -52,7 +52,7 @@ public:
 | 
				
			|||||||
    VirtualDir GetModificationDumpRoot(u64 title_id) const;
 | 
					    VirtualDir GetModificationDumpRoot(u64 title_id) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    VirtualDir OpenPartition(BisPartitionId id) const;
 | 
					    VirtualDir OpenPartition(BisPartitionId id) const;
 | 
				
			||||||
    VirtualFile OpenPartitionStorage(BisPartitionId id) const;
 | 
					    VirtualFile OpenPartitionStorage(BisPartitionId id, VirtualFilesystem file_system) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    VirtualDir GetImageDirectory() const;
 | 
					    VirtualDir GetImageDirectory() const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -379,7 +379,7 @@ ResultVal<FileSys::VirtualFile> FileSystemController::OpenBISPartitionStorage(
 | 
				
			|||||||
        return FileSys::ERROR_ENTITY_NOT_FOUND;
 | 
					        return FileSys::ERROR_ENTITY_NOT_FOUND;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    auto part = bis_factory->OpenPartitionStorage(id);
 | 
					    auto part = bis_factory->OpenPartitionStorage(id, system.GetFilesystem());
 | 
				
			||||||
    if (part == nullptr) {
 | 
					    if (part == nullptr) {
 | 
				
			||||||
        return FileSys::ERROR_INVALID_ARGUMENT;
 | 
					        return FileSys::ERROR_INVALID_ARGUMENT;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user