summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Zach Hilman2019-04-23 14:38:18 -0400
committerGravatar Zach Hilman2019-09-21 16:50:39 -0400
commita49169e81906d230fd6bfc7546acc6f763f4c321 (patch)
treeeceaf472b9e52755b333f0945d14c4bddc1b741c /src/core
parentyuzu: Add UI to manage filesystem paths and sizes (diff)
downloadyuzu-a49169e81906d230fd6bfc7546acc6f763f4c321.tar.gz
yuzu-a49169e81906d230fd6bfc7546acc6f763f4c321.tar.xz
yuzu-a49169e81906d230fd6bfc7546acc6f763f4c321.zip
filesystem: Add const qualification to various accessors
Diffstat (limited to 'src/core')
-rw-r--r--src/core/file_sys/romfs_factory.cpp5
-rw-r--r--src/core/file_sys/romfs_factory.h4
-rw-r--r--src/core/file_sys/savedata_factory.cpp7
-rw-r--r--src/core/file_sys/savedata_factory.h7
-rw-r--r--src/core/file_sys/sdmc_factory.cpp2
-rw-r--r--src/core/file_sys/sdmc_factory.h2
-rw-r--r--src/core/hle/service/filesystem/filesystem.cpp68
-rw-r--r--src/core/hle/service/filesystem/filesystem.h68
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.cpp8
9 files changed, 91 insertions, 80 deletions
diff --git a/src/core/file_sys/romfs_factory.cpp b/src/core/file_sys/romfs_factory.cpp
index c3ee4a158..84cd4684c 100644
--- a/src/core/file_sys/romfs_factory.cpp
+++ b/src/core/file_sys/romfs_factory.cpp
@@ -35,7 +35,7 @@ void RomFSFactory::SetPackedUpdate(VirtualFile update_raw) {
35 this->update_raw = std::move(update_raw); 35 this->update_raw = std::move(update_raw);
36} 36}
37 37
38ResultVal<VirtualFile> RomFSFactory::OpenCurrentProcess() { 38ResultVal<VirtualFile> RomFSFactory::OpenCurrentProcess() const {
39 if (!updatable) 39 if (!updatable)
40 return MakeResult<VirtualFile>(file); 40 return MakeResult<VirtualFile>(file);
41 41
@@ -44,7 +44,8 @@ ResultVal<VirtualFile> RomFSFactory::OpenCurrentProcess() {
44 patch_manager.PatchRomFS(file, ivfc_offset, ContentRecordType::Program, update_raw)); 44 patch_manager.PatchRomFS(file, ivfc_offset, ContentRecordType::Program, update_raw));
45} 45}
46 46
47ResultVal<VirtualFile> RomFSFactory::Open(u64 title_id, StorageId storage, ContentRecordType type) { 47ResultVal<VirtualFile> RomFSFactory::Open(u64 title_id, StorageId storage,
48 ContentRecordType type) const {
48 std::shared_ptr<NCA> res; 49 std::shared_ptr<NCA> res;
49 50
50 switch (storage) { 51 switch (storage) {
diff --git a/src/core/file_sys/romfs_factory.h b/src/core/file_sys/romfs_factory.h
index 7724c0b23..da63a313a 100644
--- a/src/core/file_sys/romfs_factory.h
+++ b/src/core/file_sys/romfs_factory.h
@@ -33,8 +33,8 @@ public:
33 ~RomFSFactory(); 33 ~RomFSFactory();
34 34
35 void SetPackedUpdate(VirtualFile update_raw); 35 void SetPackedUpdate(VirtualFile update_raw);
36 ResultVal<VirtualFile> OpenCurrentProcess(); 36 ResultVal<VirtualFile> OpenCurrentProcess() const;
37 ResultVal<VirtualFile> Open(u64 title_id, StorageId storage, ContentRecordType type); 37 ResultVal<VirtualFile> Open(u64 title_id, StorageId storage, ContentRecordType type) const;
38 38
39private: 39private:
40 VirtualFile file; 40 VirtualFile file;
diff --git a/src/core/file_sys/savedata_factory.cpp b/src/core/file_sys/savedata_factory.cpp
index c63815332..f77cc02ac 100644
--- a/src/core/file_sys/savedata_factory.cpp
+++ b/src/core/file_sys/savedata_factory.cpp
@@ -71,7 +71,7 @@ SaveDataFactory::SaveDataFactory(VirtualDir save_directory) : dir(std::move(save
71SaveDataFactory::~SaveDataFactory() = default; 71SaveDataFactory::~SaveDataFactory() = default;
72 72
73ResultVal<VirtualDir> SaveDataFactory::Create(SaveDataSpaceId space, 73ResultVal<VirtualDir> SaveDataFactory::Create(SaveDataSpaceId space,
74 const SaveDataDescriptor& meta) { 74 const SaveDataDescriptor& meta) const {
75 PrintSaveDataDescriptorWarnings(meta); 75 PrintSaveDataDescriptorWarnings(meta);
76 76
77 const auto save_directory = 77 const auto save_directory =
@@ -88,7 +88,8 @@ ResultVal<VirtualDir> SaveDataFactory::Create(SaveDataSpaceId space,
88 return MakeResult<VirtualDir>(std::move(out)); 88 return MakeResult<VirtualDir>(std::move(out));
89} 89}
90 90
91ResultVal<VirtualDir> SaveDataFactory::Open(SaveDataSpaceId space, const SaveDataDescriptor& meta) { 91ResultVal<VirtualDir> SaveDataFactory::Open(SaveDataSpaceId space,
92 const SaveDataDescriptor& meta) const {
92 93
93 const auto save_directory = 94 const auto save_directory =
94 GetFullPath(space, meta.type, meta.title_id, meta.user_id, meta.save_id); 95 GetFullPath(space, meta.type, meta.title_id, meta.user_id, meta.save_id);
@@ -165,7 +166,7 @@ SaveDataSize SaveDataFactory::ReadSaveDataSize(SaveDataType type, u64 title_id,
165} 166}
166 167
167void SaveDataFactory::WriteSaveDataSize(SaveDataType type, u64 title_id, u128 user_id, 168void SaveDataFactory::WriteSaveDataSize(SaveDataType type, u64 title_id, u128 user_id,
168 SaveDataSize new_value) { 169 SaveDataSize new_value) const {
169 const auto path = GetFullPath(SaveDataSpaceId::NandUser, type, title_id, user_id, 0); 170 const auto path = GetFullPath(SaveDataSpaceId::NandUser, type, title_id, user_id, 0);
170 const auto dir = GetOrCreateDirectoryRelative(this->dir, path); 171 const auto dir = GetOrCreateDirectoryRelative(this->dir, path);
171 172
diff --git a/src/core/file_sys/savedata_factory.h b/src/core/file_sys/savedata_factory.h
index 738038ee0..991e57aa1 100644
--- a/src/core/file_sys/savedata_factory.h
+++ b/src/core/file_sys/savedata_factory.h
@@ -64,8 +64,8 @@ public:
64 explicit SaveDataFactory(VirtualDir dir); 64 explicit SaveDataFactory(VirtualDir dir);
65 ~SaveDataFactory(); 65 ~SaveDataFactory();
66 66
67 ResultVal<VirtualDir> Create(SaveDataSpaceId space, const SaveDataDescriptor& meta); 67 ResultVal<VirtualDir> Create(SaveDataSpaceId space, const SaveDataDescriptor& meta) const;
68 ResultVal<VirtualDir> Open(SaveDataSpaceId space, const SaveDataDescriptor& meta); 68 ResultVal<VirtualDir> Open(SaveDataSpaceId space, const SaveDataDescriptor& meta) const;
69 69
70 VirtualDir GetSaveDataSpaceDirectory(SaveDataSpaceId space) const; 70 VirtualDir GetSaveDataSpaceDirectory(SaveDataSpaceId space) const;
71 71
@@ -74,7 +74,8 @@ public:
74 u128 user_id, u64 save_id); 74 u128 user_id, u64 save_id);
75 75
76 SaveDataSize ReadSaveDataSize(SaveDataType type, u64 title_id, u128 user_id) const; 76 SaveDataSize ReadSaveDataSize(SaveDataType type, u64 title_id, u128 user_id) const;
77 void WriteSaveDataSize(SaveDataType type, u64 title_id, u128 user_id, SaveDataSize new_value); 77 void WriteSaveDataSize(SaveDataType type, u64 title_id, u128 user_id,
78 SaveDataSize new_value) const;
78 79
79private: 80private:
80 VirtualDir dir; 81 VirtualDir dir;
diff --git a/src/core/file_sys/sdmc_factory.cpp b/src/core/file_sys/sdmc_factory.cpp
index 743e2e63a..5113a1ca6 100644
--- a/src/core/file_sys/sdmc_factory.cpp
+++ b/src/core/file_sys/sdmc_factory.cpp
@@ -21,7 +21,7 @@ SDMCFactory::SDMCFactory(VirtualDir dir_)
21 21
22SDMCFactory::~SDMCFactory() = default; 22SDMCFactory::~SDMCFactory() = default;
23 23
24ResultVal<VirtualDir> SDMCFactory::Open() { 24ResultVal<VirtualDir> SDMCFactory::Open() const {
25 return MakeResult<VirtualDir>(dir); 25 return MakeResult<VirtualDir>(dir);
26} 26}
27 27
diff --git a/src/core/file_sys/sdmc_factory.h b/src/core/file_sys/sdmc_factory.h
index 164fd9435..42dc4e08a 100644
--- a/src/core/file_sys/sdmc_factory.h
+++ b/src/core/file_sys/sdmc_factory.h
@@ -19,7 +19,7 @@ public:
19 explicit SDMCFactory(VirtualDir dir); 19 explicit SDMCFactory(VirtualDir dir);
20 ~SDMCFactory(); 20 ~SDMCFactory();
21 21
22 ResultVal<VirtualDir> Open(); 22 ResultVal<VirtualDir> Open() const;
23 23
24 VirtualDir GetSDMCContentDirectory() const; 24 VirtualDir GetSDMCContentDirectory() const;
25 25
diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp
index 76a860c6d..31d5fd79b 100644
--- a/src/core/hle/service/filesystem/filesystem.cpp
+++ b/src/core/hle/service/filesystem/filesystem.cpp
@@ -241,6 +241,10 @@ ResultVal<FileSys::EntryType> VfsDirectoryServiceWrapper::GetEntryType(
241 return FileSys::ERROR_PATH_NOT_FOUND; 241 return FileSys::ERROR_PATH_NOT_FOUND;
242} 242}
243 243
244FileSystemController::FileSystemController() = default;
245
246FileSystemController::~FileSystemController() = default;
247
244ResultCode FileSystemController::RegisterRomFS(std::unique_ptr<FileSys::RomFSFactory>&& factory) { 248ResultCode FileSystemController::RegisterRomFS(std::unique_ptr<FileSys::RomFSFactory>&& factory) {
245 romfs_factory = std::move(factory); 249 romfs_factory = std::move(factory);
246 LOG_DEBUG(Service_FS, "Registered RomFS"); 250 LOG_DEBUG(Service_FS, "Registered RomFS");
@@ -278,7 +282,7 @@ void FileSystemController::SetPackedUpdate(FileSys::VirtualFile update_raw) {
278 romfs_factory->SetPackedUpdate(std::move(update_raw)); 282 romfs_factory->SetPackedUpdate(std::move(update_raw));
279} 283}
280 284
281ResultVal<FileSys::VirtualFile> FileSystemController::OpenRomFSCurrentProcess() { 285ResultVal<FileSys::VirtualFile> FileSystemController::OpenRomFSCurrentProcess() const {
282 LOG_TRACE(Service_FS, "Opening RomFS for current process"); 286 LOG_TRACE(Service_FS, "Opening RomFS for current process");
283 287
284 if (romfs_factory == nullptr) { 288 if (romfs_factory == nullptr) {
@@ -289,9 +293,8 @@ ResultVal<FileSys::VirtualFile> FileSystemController::OpenRomFSCurrentProcess()
289 return romfs_factory->OpenCurrentProcess(); 293 return romfs_factory->OpenCurrentProcess();
290} 294}
291 295
292ResultVal<FileSys::VirtualFile> FileSystemController::OpenRomFS(u64 title_id, 296ResultVal<FileSys::VirtualFile> FileSystemController::OpenRomFS(
293 FileSys::StorageId storage_id, 297 u64 title_id, FileSys::StorageId storage_id, FileSys::ContentRecordType type) const {
294 FileSys::ContentRecordType type) {
295 LOG_TRACE(Service_FS, "Opening RomFS for title_id={:016X}, storage_id={:02X}, type={:02X}", 298 LOG_TRACE(Service_FS, "Opening RomFS for title_id={:016X}, storage_id={:02X}, type={:02X}",
296 title_id, static_cast<u8>(storage_id), static_cast<u8>(type)); 299 title_id, static_cast<u8>(storage_id), static_cast<u8>(type));
297 300
@@ -304,7 +307,7 @@ ResultVal<FileSys::VirtualFile> FileSystemController::OpenRomFS(u64 title_id,
304} 307}
305 308
306ResultVal<FileSys::VirtualDir> FileSystemController::CreateSaveData( 309ResultVal<FileSys::VirtualDir> FileSystemController::CreateSaveData(
307 FileSys::SaveDataSpaceId space, const FileSys::SaveDataDescriptor& save_struct) { 310 FileSys::SaveDataSpaceId space, const FileSys::SaveDataDescriptor& save_struct) const {
308 LOG_TRACE(Service_FS, "Creating Save Data for space_id={:01X}, save_struct={}", 311 LOG_TRACE(Service_FS, "Creating Save Data for space_id={:01X}, save_struct={}",
309 static_cast<u8>(space), save_struct.DebugInfo()); 312 static_cast<u8>(space), save_struct.DebugInfo());
310 313
@@ -316,7 +319,7 @@ ResultVal<FileSys::VirtualDir> FileSystemController::CreateSaveData(
316} 319}
317 320
318ResultVal<FileSys::VirtualDir> FileSystemController::OpenSaveData( 321ResultVal<FileSys::VirtualDir> FileSystemController::OpenSaveData(
319 FileSys::SaveDataSpaceId space, const FileSys::SaveDataDescriptor& descriptor) { 322 FileSys::SaveDataSpaceId space, const FileSys::SaveDataDescriptor& descriptor) const {
320 LOG_TRACE(Service_FS, "Opening Save Data for space_id={:01X}, save_struct={}", 323 LOG_TRACE(Service_FS, "Opening Save Data for space_id={:01X}, save_struct={}",
321 static_cast<u8>(space), descriptor.DebugInfo()); 324 static_cast<u8>(space), descriptor.DebugInfo());
322 325
@@ -328,7 +331,7 @@ ResultVal<FileSys::VirtualDir> FileSystemController::OpenSaveData(
328} 331}
329 332
330ResultVal<FileSys::VirtualDir> FileSystemController::OpenSaveDataSpace( 333ResultVal<FileSys::VirtualDir> FileSystemController::OpenSaveDataSpace(
331 FileSys::SaveDataSpaceId space) { 334 FileSys::SaveDataSpaceId space) const {
332 LOG_TRACE(Service_FS, "Opening Save Data Space for space_id={:01X}", static_cast<u8>(space)); 335 LOG_TRACE(Service_FS, "Opening Save Data Space for space_id={:01X}", static_cast<u8>(space));
333 336
334 if (save_data_factory == nullptr) { 337 if (save_data_factory == nullptr) {
@@ -338,7 +341,7 @@ ResultVal<FileSys::VirtualDir> FileSystemController::OpenSaveDataSpace(
338 return MakeResult(save_data_factory->GetSaveDataSpaceDirectory(space)); 341 return MakeResult(save_data_factory->GetSaveDataSpaceDirectory(space));
339} 342}
340 343
341ResultVal<FileSys::VirtualDir> FileSystemController::OpenSDMC() { 344ResultVal<FileSys::VirtualDir> FileSystemController::OpenSDMC() const {
342 LOG_TRACE(Service_FS, "Opening SDMC"); 345 LOG_TRACE(Service_FS, "Opening SDMC");
343 346
344 if (sdmc_factory == nullptr) { 347 if (sdmc_factory == nullptr) {
@@ -348,7 +351,8 @@ ResultVal<FileSys::VirtualDir> FileSystemController::OpenSDMC() {
348 return sdmc_factory->Open(); 351 return sdmc_factory->Open();
349} 352}
350 353
351ResultVal<FileSys::VirtualDir> FileSystemController::OpenBISPartition(FileSys::BisPartitionId id) { 354ResultVal<FileSys::VirtualDir> FileSystemController::OpenBISPartition(
355 FileSys::BisPartitionId id) const {
352 LOG_TRACE(Service_FS, "Opening BIS Partition with id={:08X}", static_cast<u32>(id)); 356 LOG_TRACE(Service_FS, "Opening BIS Partition with id={:08X}", static_cast<u32>(id));
353 357
354 if (bis_factory == nullptr) { 358 if (bis_factory == nullptr) {
@@ -364,7 +368,7 @@ ResultVal<FileSys::VirtualDir> FileSystemController::OpenBISPartition(FileSys::B
364} 368}
365 369
366ResultVal<FileSys::VirtualFile> FileSystemController::OpenBISPartitionStorage( 370ResultVal<FileSys::VirtualFile> FileSystemController::OpenBISPartitionStorage(
367 FileSys::BisPartitionId id) { 371 FileSys::BisPartitionId id) const {
368 LOG_TRACE(Service_FS, "Opening BIS Partition Storage with id={:08X}", static_cast<u32>(id)); 372 LOG_TRACE(Service_FS, "Opening BIS Partition Storage with id={:08X}", static_cast<u32>(id));
369 373
370 if (bis_factory == nullptr) { 374 if (bis_factory == nullptr) {
@@ -432,7 +436,7 @@ u64 FileSystemController::GetTotalSpaceSize(FileSys::StorageId id) const {
432} 436}
433 437
434FileSys::SaveDataSize FileSystemController::ReadSaveDataSize(FileSys::SaveDataType type, 438FileSys::SaveDataSize FileSystemController::ReadSaveDataSize(FileSys::SaveDataType type,
435 u64 title_id, u128 user_id) { 439 u64 title_id, u128 user_id) const {
436 if (save_data_factory == nullptr) { 440 if (save_data_factory == nullptr) {
437 return {0, 0}; 441 return {0, 0};
438 } 442 }
@@ -465,7 +469,7 @@ FileSys::SaveDataSize FileSystemController::ReadSaveDataSize(FileSys::SaveDataTy
465} 469}
466 470
467void FileSystemController::WriteSaveDataSize(FileSys::SaveDataType type, u64 title_id, u128 user_id, 471void FileSystemController::WriteSaveDataSize(FileSys::SaveDataType type, u64 title_id, u128 user_id,
468 FileSys::SaveDataSize new_value) { 472 FileSys::SaveDataSize new_value) const {
469 if (save_data_factory != nullptr) 473 if (save_data_factory != nullptr)
470 save_data_factory->WriteSaveDataSize(type, title_id, user_id, new_value); 474 save_data_factory->WriteSaveDataSize(type, title_id, user_id, new_value);
471} 475}
@@ -477,19 +481,19 @@ void FileSystemController::SetGameCard(FileSys::VirtualFile file) {
477 gamecard_placeholder = std::make_unique<FileSys::PlaceholderCache>(dir); 481 gamecard_placeholder = std::make_unique<FileSys::PlaceholderCache>(dir);
478} 482}
479 483
480FileSys::XCI* FileSystemController::GetGameCard() { 484FileSys::XCI* FileSystemController::GetGameCard() const {
481 return gamecard.get(); 485 return gamecard.get();
482} 486}
483 487
484FileSys::RegisteredCache* FileSystemController::GetGameCardContents() { 488FileSys::RegisteredCache* FileSystemController::GetGameCardContents() const {
485 return gamecard_registered.get(); 489 return gamecard_registered.get();
486} 490}
487 491
488FileSys::PlaceholderCache* FileSystemController::GetGameCardPlaceholder() { 492FileSys::PlaceholderCache* FileSystemController::GetGameCardPlaceholder() const {
489 return gamecard_placeholder.get(); 493 return gamecard_placeholder.get();
490} 494}
491 495
492FileSys::RegisteredCache* FileSystemController::GetSystemNANDContents() { 496FileSys::RegisteredCache* FileSystemController::GetSystemNANDContents() const {
493 LOG_TRACE(Service_FS, "Opening System NAND Contents"); 497 LOG_TRACE(Service_FS, "Opening System NAND Contents");
494 498
495 if (bis_factory == nullptr) 499 if (bis_factory == nullptr)
@@ -498,7 +502,7 @@ FileSys::RegisteredCache* FileSystemController::GetSystemNANDContents() {
498 return bis_factory->GetSystemNANDContents(); 502 return bis_factory->GetSystemNANDContents();
499} 503}
500 504
501FileSys::RegisteredCache* FileSystemController::GetUserNANDContents() { 505FileSys::RegisteredCache* FileSystemController::GetUserNANDContents() const {
502 LOG_TRACE(Service_FS, "Opening User NAND Contents"); 506 LOG_TRACE(Service_FS, "Opening User NAND Contents");
503 507
504 if (bis_factory == nullptr) 508 if (bis_factory == nullptr)
@@ -507,7 +511,7 @@ FileSys::RegisteredCache* FileSystemController::GetUserNANDContents() {
507 return bis_factory->GetUserNANDContents(); 511 return bis_factory->GetUserNANDContents();
508} 512}
509 513
510FileSys::RegisteredCache* FileSystemController::GetSDMCContents() { 514FileSys::RegisteredCache* FileSystemController::GetSDMCContents() const {
511 LOG_TRACE(Service_FS, "Opening SDMC Contents"); 515 LOG_TRACE(Service_FS, "Opening SDMC Contents");
512 516
513 if (sdmc_factory == nullptr) 517 if (sdmc_factory == nullptr)
@@ -516,7 +520,7 @@ FileSys::RegisteredCache* FileSystemController::GetSDMCContents() {
516 return sdmc_factory->GetSDMCContents(); 520 return sdmc_factory->GetSDMCContents();
517} 521}
518 522
519FileSys::PlaceholderCache* FileSystemController::GetSystemNANDPlaceholder() { 523FileSys::PlaceholderCache* FileSystemController::GetSystemNANDPlaceholder() const {
520 LOG_TRACE(Service_FS, "Opening System NAND Placeholder"); 524 LOG_TRACE(Service_FS, "Opening System NAND Placeholder");
521 525
522 if (bis_factory == nullptr) 526 if (bis_factory == nullptr)
@@ -525,7 +529,7 @@ FileSys::PlaceholderCache* FileSystemController::GetSystemNANDPlaceholder() {
525 return bis_factory->GetSystemNANDPlaceholder(); 529 return bis_factory->GetSystemNANDPlaceholder();
526} 530}
527 531
528FileSys::PlaceholderCache* FileSystemController::GetUserNANDPlaceholder() { 532FileSys::PlaceholderCache* FileSystemController::GetUserNANDPlaceholder() const {
529 LOG_TRACE(Service_FS, "Opening User NAND Placeholder"); 533 LOG_TRACE(Service_FS, "Opening User NAND Placeholder");
530 534
531 if (bis_factory == nullptr) 535 if (bis_factory == nullptr)
@@ -534,7 +538,7 @@ FileSys::PlaceholderCache* FileSystemController::GetUserNANDPlaceholder() {
534 return bis_factory->GetUserNANDPlaceholder(); 538 return bis_factory->GetUserNANDPlaceholder();
535} 539}
536 540
537FileSys::PlaceholderCache* FileSystemController::GetSDMCPlaceholder() { 541FileSys::PlaceholderCache* FileSystemController::GetSDMCPlaceholder() const {
538 LOG_TRACE(Service_FS, "Opening SDMC Placeholder"); 542 LOG_TRACE(Service_FS, "Opening SDMC Placeholder");
539 543
540 if (sdmc_factory == nullptr) 544 if (sdmc_factory == nullptr)
@@ -544,7 +548,7 @@ FileSys::PlaceholderCache* FileSystemController::GetSDMCPlaceholder() {
544} 548}
545 549
546FileSys::RegisteredCache* FileSystemController::GetRegisteredCacheForStorage( 550FileSys::RegisteredCache* FileSystemController::GetRegisteredCacheForStorage(
547 FileSys::StorageId id) { 551 FileSys::StorageId id) const {
548 switch (id) { 552 switch (id) {
549 case FileSys::StorageId::None: 553 case FileSys::StorageId::None:
550 case FileSys::StorageId::Host: 554 case FileSys::StorageId::Host:
@@ -564,7 +568,7 @@ FileSys::RegisteredCache* FileSystemController::GetRegisteredCacheForStorage(
564} 568}
565 569
566FileSys::PlaceholderCache* FileSystemController::GetPlaceholderCacheForStorage( 570FileSys::PlaceholderCache* FileSystemController::GetPlaceholderCacheForStorage(
567 FileSys::StorageId id) { 571 FileSys::StorageId id) const {
568 switch (id) { 572 switch (id) {
569 case FileSys::StorageId::None: 573 case FileSys::StorageId::None:
570 case FileSys::StorageId::Host: 574 case FileSys::StorageId::Host:
@@ -583,7 +587,7 @@ FileSys::PlaceholderCache* FileSystemController::GetPlaceholderCacheForStorage(
583 return nullptr; 587 return nullptr;
584} 588}
585 589
586FileSys::VirtualDir FileSystemController::GetSystemNANDContentDirectory() { 590FileSys::VirtualDir FileSystemController::GetSystemNANDContentDirectory() const {
587 LOG_TRACE(Service_FS, "Opening system NAND content directory"); 591 LOG_TRACE(Service_FS, "Opening system NAND content directory");
588 592
589 if (bis_factory == nullptr) 593 if (bis_factory == nullptr)
@@ -592,7 +596,7 @@ FileSys::VirtualDir FileSystemController::GetSystemNANDContentDirectory() {
592 return bis_factory->GetSystemNANDContentDirectory(); 596 return bis_factory->GetSystemNANDContentDirectory();
593} 597}
594 598
595FileSys::VirtualDir FileSystemController::GetUserNANDContentDirectory() { 599FileSys::VirtualDir FileSystemController::GetUserNANDContentDirectory() const {
596 LOG_TRACE(Service_FS, "Opening user NAND content directory"); 600 LOG_TRACE(Service_FS, "Opening user NAND content directory");
597 601
598 if (bis_factory == nullptr) 602 if (bis_factory == nullptr)
@@ -601,7 +605,7 @@ FileSys::VirtualDir FileSystemController::GetUserNANDContentDirectory() {
601 return bis_factory->GetUserNANDContentDirectory(); 605 return bis_factory->GetUserNANDContentDirectory();
602} 606}
603 607
604FileSys::VirtualDir FileSystemController::GetSDMCContentDirectory() { 608FileSys::VirtualDir FileSystemController::GetSDMCContentDirectory() const {
605 LOG_TRACE(Service_FS, "Opening SDMC content directory"); 609 LOG_TRACE(Service_FS, "Opening SDMC content directory");
606 610
607 if (sdmc_factory == nullptr) 611 if (sdmc_factory == nullptr)
@@ -610,7 +614,7 @@ FileSys::VirtualDir FileSystemController::GetSDMCContentDirectory() {
610 return sdmc_factory->GetSDMCContentDirectory(); 614 return sdmc_factory->GetSDMCContentDirectory();
611} 615}
612 616
613FileSys::VirtualDir FileSystemController::GetNANDImageDirectory() { 617FileSys::VirtualDir FileSystemController::GetNANDImageDirectory() const {
614 LOG_TRACE(Service_FS, "Opening NAND image directory"); 618 LOG_TRACE(Service_FS, "Opening NAND image directory");
615 619
616 if (bis_factory == nullptr) 620 if (bis_factory == nullptr)
@@ -619,7 +623,7 @@ FileSys::VirtualDir FileSystemController::GetNANDImageDirectory() {
619 return bis_factory->GetImageDirectory(); 623 return bis_factory->GetImageDirectory();
620} 624}
621 625
622FileSys::VirtualDir FileSystemController::GetSDMCImageDirectory() { 626FileSys::VirtualDir FileSystemController::GetSDMCImageDirectory() const {
623 LOG_TRACE(Service_FS, "Opening SDMC image directory"); 627 LOG_TRACE(Service_FS, "Opening SDMC image directory");
624 628
625 if (sdmc_factory == nullptr) 629 if (sdmc_factory == nullptr)
@@ -628,7 +632,7 @@ FileSys::VirtualDir FileSystemController::GetSDMCImageDirectory() {
628 return sdmc_factory->GetImageDirectory(); 632 return sdmc_factory->GetImageDirectory();
629} 633}
630 634
631FileSys::VirtualDir FileSystemController::GetContentDirectory(ContentStorageId id) { 635FileSys::VirtualDir FileSystemController::GetContentDirectory(ContentStorageId id) const {
632 switch (id) { 636 switch (id) {
633 case ContentStorageId::System: 637 case ContentStorageId::System:
634 return GetSystemNANDContentDirectory(); 638 return GetSystemNANDContentDirectory();
@@ -641,7 +645,7 @@ FileSys::VirtualDir FileSystemController::GetContentDirectory(ContentStorageId i
641 return nullptr; 645 return nullptr;
642} 646}
643 647
644FileSys::VirtualDir FileSystemController::GetImageDirectory(ImageDirectoryId id) { 648FileSys::VirtualDir FileSystemController::GetImageDirectory(ImageDirectoryId id) const {
645 switch (id) { 649 switch (id) {
646 case ImageDirectoryId::NAND: 650 case ImageDirectoryId::NAND:
647 return GetNANDImageDirectory(); 651 return GetNANDImageDirectory();
@@ -652,7 +656,7 @@ FileSys::VirtualDir FileSystemController::GetImageDirectory(ImageDirectoryId id)
652 return nullptr; 656 return nullptr;
653} 657}
654 658
655FileSys::VirtualDir FileSystemController::GetModificationLoadRoot(u64 title_id) { 659FileSys::VirtualDir FileSystemController::GetModificationLoadRoot(u64 title_id) const {
656 LOG_TRACE(Service_FS, "Opening mod load root for tid={:016X}", title_id); 660 LOG_TRACE(Service_FS, "Opening mod load root for tid={:016X}", title_id);
657 661
658 if (bis_factory == nullptr) 662 if (bis_factory == nullptr)
@@ -661,7 +665,7 @@ FileSys::VirtualDir FileSystemController::GetModificationLoadRoot(u64 title_id)
661 return bis_factory->GetModificationLoadRoot(title_id); 665 return bis_factory->GetModificationLoadRoot(title_id);
662} 666}
663 667
664FileSys::VirtualDir FileSystemController::GetModificationDumpRoot(u64 title_id) { 668FileSys::VirtualDir FileSystemController::GetModificationDumpRoot(u64 title_id) const {
665 LOG_TRACE(Service_FS, "Opening mod dump root for tid={:016X}", title_id); 669 LOG_TRACE(Service_FS, "Opening mod dump root for tid={:016X}", title_id);
666 670
667 if (bis_factory == nullptr) 671 if (bis_factory == nullptr)
diff --git a/src/core/hle/service/filesystem/filesystem.h b/src/core/hle/service/filesystem/filesystem.h
index 2eb3a641d..4d7da3b6f 100644
--- a/src/core/hle/service/filesystem/filesystem.h
+++ b/src/core/hle/service/filesystem/filesystem.h
@@ -52,59 +52,63 @@ enum class ImageDirectoryId : u32 {
52 52
53class FileSystemController { 53class FileSystemController {
54public: 54public:
55 FileSystemController();
56 ~FileSystemController();
57
55 ResultCode RegisterRomFS(std::unique_ptr<FileSys::RomFSFactory>&& factory); 58 ResultCode RegisterRomFS(std::unique_ptr<FileSys::RomFSFactory>&& factory);
56 ResultCode RegisterSaveData(std::unique_ptr<FileSys::SaveDataFactory>&& factory); 59 ResultCode RegisterSaveData(std::unique_ptr<FileSys::SaveDataFactory>&& factory);
57 ResultCode RegisterSDMC(std::unique_ptr<FileSys::SDMCFactory>&& factory); 60 ResultCode RegisterSDMC(std::unique_ptr<FileSys::SDMCFactory>&& factory);
58 ResultCode RegisterBIS(std::unique_ptr<FileSys::BISFactory>&& factory); 61 ResultCode RegisterBIS(std::unique_ptr<FileSys::BISFactory>&& factory);
59 62
60 void SetPackedUpdate(FileSys::VirtualFile update_raw); 63 void SetPackedUpdate(FileSys::VirtualFile update_raw);
61 ResultVal<FileSys::VirtualFile> OpenRomFSCurrentProcess(); 64 ResultVal<FileSys::VirtualFile> OpenRomFSCurrentProcess() const;
62 ResultVal<FileSys::VirtualFile> OpenRomFS(u64 title_id, FileSys::StorageId storage_id, 65 ResultVal<FileSys::VirtualFile> OpenRomFS(u64 title_id, FileSys::StorageId storage_id,
63 FileSys::ContentRecordType type); 66 FileSys::ContentRecordType type) const;
64 ResultVal<FileSys::VirtualDir> CreateSaveData(FileSys::SaveDataSpaceId space, 67 ResultVal<FileSys::VirtualDir> CreateSaveData(
65 const FileSys::SaveDataDescriptor& save_struct); 68 FileSys::SaveDataSpaceId space, const FileSys::SaveDataDescriptor& save_struct) const;
66 ResultVal<FileSys::VirtualDir> OpenSaveData(FileSys::SaveDataSpaceId space, 69 ResultVal<FileSys::VirtualDir> OpenSaveData(
67 const FileSys::SaveDataDescriptor& save_struct); 70 FileSys::SaveDataSpaceId space, const FileSys::SaveDataDescriptor& save_struct) const;
68 ResultVal<FileSys::VirtualDir> OpenSaveDataSpace(FileSys::SaveDataSpaceId space); 71 ResultVal<FileSys::VirtualDir> OpenSaveDataSpace(FileSys::SaveDataSpaceId space) const;
69 ResultVal<FileSys::VirtualDir> OpenSDMC(); 72 ResultVal<FileSys::VirtualDir> OpenSDMC() const;
70 ResultVal<FileSys::VirtualDir> OpenBISPartition(FileSys::BisPartitionId id); 73 ResultVal<FileSys::VirtualDir> OpenBISPartition(FileSys::BisPartitionId id) const;
71 ResultVal<FileSys::VirtualFile> OpenBISPartitionStorage(FileSys::BisPartitionId id); 74 ResultVal<FileSys::VirtualFile> OpenBISPartitionStorage(FileSys::BisPartitionId id) const;
72 75
73 u64 GetFreeSpaceSize(FileSys::StorageId id) const; 76 u64 GetFreeSpaceSize(FileSys::StorageId id) const;
74 u64 GetTotalSpaceSize(FileSys::StorageId id) const; 77 u64 GetTotalSpaceSize(FileSys::StorageId id) const;
75 78
76 FileSys::SaveDataSize ReadSaveDataSize(FileSys::SaveDataType type, u64 title_id, u128 user_id); 79 FileSys::SaveDataSize ReadSaveDataSize(FileSys::SaveDataType type, u64 title_id,
80 u128 user_id) const;
77 void WriteSaveDataSize(FileSys::SaveDataType type, u64 title_id, u128 user_id, 81 void WriteSaveDataSize(FileSys::SaveDataType type, u64 title_id, u128 user_id,
78 FileSys::SaveDataSize new_value); 82 FileSys::SaveDataSize new_value) const;
79 83
80 void SetGameCard(FileSys::VirtualFile file); 84 void SetGameCard(FileSys::VirtualFile file);
81 FileSys::XCI* GetGameCard(); 85 FileSys::XCI* GetGameCard() const;
82 86
83 FileSys::RegisteredCache* GetSystemNANDContents(); 87 FileSys::RegisteredCache* GetSystemNANDContents() const;
84 FileSys::RegisteredCache* GetUserNANDContents(); 88 FileSys::RegisteredCache* GetUserNANDContents() const;
85 FileSys::RegisteredCache* GetSDMCContents(); 89 FileSys::RegisteredCache* GetSDMCContents() const;
86 FileSys::RegisteredCache* GetGameCardContents(); 90 FileSys::RegisteredCache* GetGameCardContents() const;
87 91
88 FileSys::PlaceholderCache* GetSystemNANDPlaceholder(); 92 FileSys::PlaceholderCache* GetSystemNANDPlaceholder() const;
89 FileSys::PlaceholderCache* GetUserNANDPlaceholder(); 93 FileSys::PlaceholderCache* GetUserNANDPlaceholder() const;
90 FileSys::PlaceholderCache* GetSDMCPlaceholder(); 94 FileSys::PlaceholderCache* GetSDMCPlaceholder() const;
91 FileSys::PlaceholderCache* GetGameCardPlaceholder(); 95 FileSys::PlaceholderCache* GetGameCardPlaceholder() const;
92 96
93 FileSys::RegisteredCache* GetRegisteredCacheForStorage(FileSys::StorageId id); 97 FileSys::RegisteredCache* GetRegisteredCacheForStorage(FileSys::StorageId id) const;
94 FileSys::PlaceholderCache* GetPlaceholderCacheForStorage(FileSys::StorageId id); 98 FileSys::PlaceholderCache* GetPlaceholderCacheForStorage(FileSys::StorageId id) const;
95 99
96 FileSys::VirtualDir GetSystemNANDContentDirectory(); 100 FileSys::VirtualDir GetSystemNANDContentDirectory() const;
97 FileSys::VirtualDir GetUserNANDContentDirectory(); 101 FileSys::VirtualDir GetUserNANDContentDirectory() const;
98 FileSys::VirtualDir GetSDMCContentDirectory(); 102 FileSys::VirtualDir GetSDMCContentDirectory() const;
99 103
100 FileSys::VirtualDir GetNANDImageDirectory(); 104 FileSys::VirtualDir GetNANDImageDirectory() const;
101 FileSys::VirtualDir GetSDMCImageDirectory(); 105 FileSys::VirtualDir GetSDMCImageDirectory() const;
102 106
103 FileSys::VirtualDir GetContentDirectory(ContentStorageId id); 107 FileSys::VirtualDir GetContentDirectory(ContentStorageId id) const;
104 FileSys::VirtualDir GetImageDirectory(ImageDirectoryId id); 108 FileSys::VirtualDir GetImageDirectory(ImageDirectoryId id) const;
105 109
106 FileSys::VirtualDir GetModificationLoadRoot(u64 title_id); 110 FileSys::VirtualDir GetModificationLoadRoot(u64 title_id) const;
107 FileSys::VirtualDir GetModificationDumpRoot(u64 title_id); 111 FileSys::VirtualDir GetModificationDumpRoot(u64 title_id) const;
108 112
109 // Creates the SaveData, SDMC, and BIS Factories. Should be called once and before any function 113 // Creates the SaveData, SDMC, and BIS Factories. Should be called once and before any function
110 // above is called. 114 // above is called.
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp
index 525fda19f..305d9e176 100644
--- a/src/core/hle/service/filesystem/fsp_srv.cpp
+++ b/src/core/hle/service/filesystem/fsp_srv.cpp
@@ -32,8 +32,8 @@
32namespace Service::FileSystem { 32namespace Service::FileSystem {
33 33
34struct SizeGetter { 34struct SizeGetter {
35 std::function<u64()> free; 35 std::function<u64()> get_free_size;
36 std::function<u64()> total; 36 std::function<u64()> get_total_size;
37 37
38 static SizeGetter FromStorageId(const FileSystemController& fsc, FileSys::StorageId id) { 38 static SizeGetter FromStorageId(const FileSystemController& fsc, FileSys::StorageId id) {
39 return { 39 return {
@@ -485,7 +485,7 @@ public:
485 485
486 IPC::ResponseBuilder rb{ctx, 4}; 486 IPC::ResponseBuilder rb{ctx, 4};
487 rb.Push(RESULT_SUCCESS); 487 rb.Push(RESULT_SUCCESS);
488 rb.Push(size.free()); 488 rb.Push(size.get_free_size());
489 } 489 }
490 490
491 void GetTotalSpaceSize(Kernel::HLERequestContext& ctx) { 491 void GetTotalSpaceSize(Kernel::HLERequestContext& ctx) {
@@ -493,7 +493,7 @@ public:
493 493
494 IPC::ResponseBuilder rb{ctx, 4}; 494 IPC::ResponseBuilder rb{ctx, 4};
495 rb.Push(RESULT_SUCCESS); 495 rb.Push(RESULT_SUCCESS);
496 rb.Push(size.total()); 496 rb.Push(size.get_total_size());
497 } 497 }
498 498
499private: 499private: