fs: Implement missing filesystem functions and interfaces

- Add IDeviceOperator interface with 49 functions for SD card, MMC, and game card operations
- Add IEventNotifier interface for filesystem event notifications
- Add ISaveDataTransferManager and related transfer interfaces (exporter/importer)
- Add IWiper interface for BIS partition wiping
- Enhance FSP_SRV with OpenDeviceOperator, OpenSdCardDetectionEventNotifier, OpenSaveDataTransferManager, and other missing functions
- Enhance FSP_LDR with OpenCodeFileSystem, IsArchivedProgram, and SetCurrentProcess implementations
- Enhance FSP_PR with RegisterProgram, UnregisterProgram, and verification functions
- Fix ServiceContext usage for proper event creation and management
- Fix function parameter alignment issues for CMIF serialization
- Update build system to include new source files
- Update copyright headers to 2025 citron

All functions are implemented with appropriate logging and parameter validation based on Nintendo Switch filesystem services documentation.

Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
Zephyron
2025-06-30 19:24:23 +10:00
parent 7f5661440a
commit 90f265837d
19 changed files with 1011 additions and 17 deletions

View File

@@ -631,18 +631,30 @@ add_library(core STATIC
hle/service/fgm/fgm.h
hle/service/filesystem/filesystem.cpp
hle/service/filesystem/filesystem.h
hle/service/filesystem/fsp/fs_i_device_operator.cpp
hle/service/filesystem/fsp/fs_i_device_operator.h
hle/service/filesystem/fsp/fs_i_directory.cpp
hle/service/filesystem/fsp/fs_i_directory.h
hle/service/filesystem/fsp/fs_i_event_notifier.cpp
hle/service/filesystem/fsp/fs_i_event_notifier.h
hle/service/filesystem/fsp/fs_i_file.cpp
hle/service/filesystem/fsp/fs_i_file.h
hle/service/filesystem/fsp/fs_i_filesystem.cpp
hle/service/filesystem/fsp/fs_i_filesystem.h
hle/service/filesystem/fsp/fs_i_multi_commit_manager.cpp
hle/service/filesystem/fsp/fs_i_multi_commit_manager.h
hle/service/filesystem/fsp/fs_i_save_data_exporter.cpp
hle/service/filesystem/fsp/fs_i_save_data_exporter.h
hle/service/filesystem/fsp/fs_i_save_data_importer.cpp
hle/service/filesystem/fsp/fs_i_save_data_importer.h
hle/service/filesystem/fsp/fs_i_save_data_info_reader.cpp
hle/service/filesystem/fsp/fs_i_save_data_info_reader.h
hle/service/filesystem/fsp/fs_i_save_data_transfer_manager.cpp
hle/service/filesystem/fsp/fs_i_save_data_transfer_manager.h
hle/service/filesystem/fsp/fs_i_storage.cpp
hle/service/filesystem/fsp/fs_i_storage.h
hle/service/filesystem/fsp/fs_i_wiper.cpp
hle/service/filesystem/fsp/fs_i_wiper.h
hle/service/filesystem/fsp/fsp_ldr.cpp
hle/service/filesystem/fsp/fsp_ldr.h
hle/service/filesystem/fsp/fsp_pr.cpp