Use IPC:MakeHeader instead of hardcoded raw values for IPC command tables. (#6453)

* Use IPC:MakeHeader instead of hardcoded values for IPC command tables.

* Use u32 instead of unsigned int in MakeHeader function

Co-authored-by: SachinVin <26602104+SachinVin@users.noreply.github.com>

* Fix clang format

---------

Co-authored-by: SachinVin <26602104+SachinVin@users.noreply.github.com>
This commit is contained in:
PabloMK7 2023-04-28 07:31:03 +02:00 committed by GitHub
parent 9bd8c9290b
commit 63bc0b59bb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
74 changed files with 1983 additions and 1896 deletions

View file

@ -891,117 +891,119 @@ ResultVal<u16> FS_USER::GetSpecialContentIndexFromTMD(MediaType media_type, u64
FS_USER::FS_USER(Core::System& system)
: ServiceFramework("fs:USER", 30), system(system), archives(system.ArchiveManager()) {
static const FunctionInfo functions[] = {
{0x000100C6, nullptr, "Dummy1"},
{0x040100C4, nullptr, "Control"},
{0x08010002, &FS_USER::Initialize, "Initialize"},
{0x080201C2, &FS_USER::OpenFile, "OpenFile"},
{0x08030204, &FS_USER::OpenFileDirectly, "OpenFileDirectly"},
{0x08040142, &FS_USER::DeleteFile, "DeleteFile"},
{0x08050244, &FS_USER::RenameFile, "RenameFile"},
{0x08060142, &FS_USER::DeleteDirectory, "DeleteDirectory"},
{0x08070142, &FS_USER::DeleteDirectoryRecursively, "DeleteDirectoryRecursively"},
{0x08080202, &FS_USER::CreateFile, "CreateFile"},
{0x08090182, &FS_USER::CreateDirectory, "CreateDirectory"},
{0x080A0244, &FS_USER::RenameDirectory, "RenameDirectory"},
{0x080B0102, &FS_USER::OpenDirectory, "OpenDirectory"},
{0x080C00C2, &FS_USER::OpenArchive, "OpenArchive"},
{0x080D0144, nullptr, "ControlArchive"},
{0x080E0080, &FS_USER::CloseArchive, "CloseArchive"},
{0x080F0180, &FS_USER::FormatThisUserSaveData, "FormatThisUserSaveData"},
{0x08100200, &FS_USER::CreateLegacySystemSaveData, "CreateLegacySystemSaveData"},
{0x08110040, nullptr, "DeleteSystemSaveData"},
{0x08120080, &FS_USER::GetFreeBytes, "GetFreeBytes"},
{0x08130000, nullptr, "GetCardType"},
{0x08140000, &FS_USER::GetSdmcArchiveResource, "GetSdmcArchiveResource"},
{0x08150000, &FS_USER::GetNandArchiveResource, "GetNandArchiveResource"},
{0x08160000, nullptr, "GetSdmcFatfsError"},
{0x08170000, &FS_USER::IsSdmcDetected, "IsSdmcDetected"},
{0x08180000, &FS_USER::IsSdmcWriteable, "IsSdmcWritable"},
{0x08190042, nullptr, "GetSdmcCid"},
{0x081A0042, nullptr, "GetNandCid"},
{0x081B0000, nullptr, "GetSdmcSpeedInfo"},
{0x081C0000, nullptr, "GetNandSpeedInfo"},
{0x081D0042, nullptr, "GetSdmcLog"},
{0x081E0042, nullptr, "GetNandLog"},
{0x081F0000, nullptr, "ClearSdmcLog"},
{0x08200000, nullptr, "ClearNandLog"},
{0x08210000, &FS_USER::CardSlotIsInserted, "CardSlotIsInserted"},
{0x08220000, nullptr, "CardSlotPowerOn"},
{0x08230000, nullptr, "CardSlotPowerOff"},
{0x08240000, nullptr, "CardSlotGetCardIFPowerStatus"},
{0x08250040, nullptr, "CardNorDirectCommand"},
{0x08260080, nullptr, "CardNorDirectCommandWithAddress"},
{0x08270082, nullptr, "CardNorDirectRead"},
{0x082800C2, nullptr, "CardNorDirectReadWithAddress"},
{0x08290082, nullptr, "CardNorDirectWrite"},
{0x082A00C2, nullptr, "CardNorDirectWriteWithAddress"},
{0x082B00C2, nullptr, "CardNorDirectRead_4xIO"},
{0x082C0082, nullptr, "CardNorDirectCpuWriteWithoutVerify"},
{0x082D0040, nullptr, "CardNorDirectSectorEraseWithoutVerify"},
{0x082E0040, nullptr, "GetProductInfo"},
{0x082F0040, &FS_USER::GetProgramLaunchInfo, "GetProgramLaunchInfo"},
{0x08300182, &FS_USER::ObsoletedCreateExtSaveData, "Obsoleted_3_0_CreateExtSaveData"},
{0x08310180, nullptr, "CreateSharedExtSaveData"},
{0x08320102, nullptr, "ReadExtSaveDataIcon"},
{0x08330082, nullptr, "EnumerateExtSaveData"},
{0x08340082, nullptr, "EnumerateSharedExtSaveData"},
{0x08350080, &FS_USER::ObsoletedDeleteExtSaveData, "Obsoleted_3_0_DeleteExtSaveData"},
{0x08360080, nullptr, "DeleteSharedExtSaveData"},
{0x08370040, nullptr, "SetCardSpiBaudRate"},
{0x08380040, nullptr, "SetCardSpiBusMode"},
{0x08390000, nullptr, "SendInitializeInfoTo9"},
{0x083A0100, &FS_USER::GetSpecialContentIndex, "GetSpecialContentIndex"},
{0x083B00C2, nullptr, "GetLegacyRomHeader"},
{0x083C00C2, nullptr, "GetLegacyBannerData"},
{0x083D0100, nullptr, "CheckAuthorityToAccessExtSaveData"},
{0x083E00C2, nullptr, "QueryTotalQuotaSize"},
{0x083F00C0, nullptr, "GetExtDataBlockSize"},
{0x08400040, nullptr, "AbnegateAccessRight"},
{0x08410000, nullptr, "DeleteSdmcRoot"},
{0x08420040, nullptr, "DeleteAllExtSaveDataOnNand"},
{0x08430000, nullptr, "InitializeCtrFileSystem"},
{0x08440000, nullptr, "CreateSeed"},
{0x084500C2, &FS_USER::GetFormatInfo, "GetFormatInfo"},
{0x08460102, nullptr, "GetLegacyRomHeader2"},
{0x08470180, nullptr, "FormatCtrCardUserSaveData"},
{0x08480042, nullptr, "GetSdmcCtrRootPath"},
{0x08490040, &FS_USER::GetArchiveResource, "GetArchiveResource"},
{0x084A0002, nullptr, "ExportIntegrityVerificationSeed"},
{0x084B0002, nullptr, "ImportIntegrityVerificationSeed"},
{0x084C0242, &FS_USER::FormatSaveData, "FormatSaveData"},
{0x084D0102, nullptr, "GetLegacySubBannerData"},
{0x084E0342, nullptr, "UpdateSha256Context"},
{0x084F0102, nullptr, "ReadSpecialFile"},
{0x08500040, nullptr, "GetSpecialFileSize"},
{0x08510242, &FS_USER::CreateExtSaveData, "CreateExtSaveData"},
{0x08520100, &FS_USER::DeleteExtSaveData, "DeleteExtSaveData"},
{0x08530142, nullptr, "ReadExtSaveDataIcon"},
{0x085400C0, nullptr, "GetExtDataBlockSize"},
{0x08550102, nullptr, "EnumerateExtSaveData"},
{0x08560240, &FS_USER::CreateSystemSaveData, "CreateSystemSaveData"},
{0x08570080, &FS_USER::DeleteSystemSaveData, "DeleteSystemSaveData"},
{0x08580000, nullptr, "StartDeviceMoveAsSource"},
{0x08590200, nullptr, "StartDeviceMoveAsDestination"},
{0x085A00C0, nullptr, "SetArchivePriority"},
{0x085B0080, nullptr, "GetArchivePriority"},
{0x085C00C0, nullptr, "SetCtrCardLatencyParameter"},
{0x085D01C0, nullptr, "SetFsCompatibilityInfo"},
{0x085E0040, nullptr, "ResetCardCompatibilityParameter"},
{0x085F0040, nullptr, "SwitchCleanupInvalidSaveData"},
{0x08600042, nullptr, "EnumerateSystemSaveData"},
{0x08610042, &FS_USER::InitializeWithSdkVersion, "InitializeWithSdkVersion"},
{0x08620040, &FS_USER::SetPriority, "SetPriority"},
{0x08630000, &FS_USER::GetPriority, "GetPriority"},
{0x08640000, nullptr, "GetNandInfo"},
{0x08650140, &FS_USER::SetSaveDataSecureValue, "SetSaveDataSecureValue"},
{0x086600C0, &FS_USER::GetSaveDataSecureValue, "GetSaveDataSecureValue"},
{0x086700C4, nullptr, "ControlSecureSave"},
{0x08680000, nullptr, "GetMediaType"},
{0x08690000, nullptr, "GetNandEraseCount"},
{0x086A0082, nullptr, "ReadNandReport"},
{0x087A0180, &FS_USER::AddSeed, "AddSeed"},
{0x087D0000, &FS_USER::GetNumSeeds, "GetNumSeeds"},
{0x088600C0, nullptr, "CheckUpdatedDat"},
// clang-format off
{IPC::MakeHeader(0x0001, 3, 6), nullptr, "Dummy1"},
{IPC::MakeHeader(0x0401, 3, 4), nullptr, "Control"},
{IPC::MakeHeader(0x0801, 0, 2), &FS_USER::Initialize, "Initialize"},
{IPC::MakeHeader(0x0802, 7, 2), &FS_USER::OpenFile, "OpenFile"},
{IPC::MakeHeader(0x0803, 8, 4), &FS_USER::OpenFileDirectly, "OpenFileDirectly"},
{IPC::MakeHeader(0x0804, 5, 2), &FS_USER::DeleteFile, "DeleteFile"},
{IPC::MakeHeader(0x0805, 9, 4), &FS_USER::RenameFile, "RenameFile"},
{IPC::MakeHeader(0x0806, 5, 2), &FS_USER::DeleteDirectory, "DeleteDirectory"},
{IPC::MakeHeader(0x0807, 5, 2), &FS_USER::DeleteDirectoryRecursively, "DeleteDirectoryRecursively"},
{IPC::MakeHeader(0x0808, 8, 2), &FS_USER::CreateFile, "CreateFile"},
{IPC::MakeHeader(0x0809, 6, 2), &FS_USER::CreateDirectory, "CreateDirectory"},
{IPC::MakeHeader(0x080A, 9, 4), &FS_USER::RenameDirectory, "RenameDirectory"},
{IPC::MakeHeader(0x080B, 4, 2), &FS_USER::OpenDirectory, "OpenDirectory"},
{IPC::MakeHeader(0x080C, 3, 2), &FS_USER::OpenArchive, "OpenArchive"},
{IPC::MakeHeader(0x080D, 5, 4), nullptr, "ControlArchive"},
{IPC::MakeHeader(0x080E, 2, 0), &FS_USER::CloseArchive, "CloseArchive"},
{IPC::MakeHeader(0x080F, 6, 0), &FS_USER::FormatThisUserSaveData, "FormatThisUserSaveData"},
{IPC::MakeHeader(0x0810, 8, 0), &FS_USER::CreateLegacySystemSaveData, "CreateLegacySystemSaveData"},
{IPC::MakeHeader(0x0811, 1, 0), nullptr, "DeleteSystemSaveData"},
{IPC::MakeHeader(0x0812, 2, 0), &FS_USER::GetFreeBytes, "GetFreeBytes"},
{IPC::MakeHeader(0x0813, 0, 0), nullptr, "GetCardType"},
{IPC::MakeHeader(0x0814, 0, 0), &FS_USER::GetSdmcArchiveResource, "GetSdmcArchiveResource"},
{IPC::MakeHeader(0x0815, 0, 0), &FS_USER::GetNandArchiveResource, "GetNandArchiveResource"},
{IPC::MakeHeader(0x0816, 0, 0), nullptr, "GetSdmcFatfsError"},
{IPC::MakeHeader(0x0817, 0, 0), &FS_USER::IsSdmcDetected, "IsSdmcDetected"},
{IPC::MakeHeader(0x0818, 0, 0), &FS_USER::IsSdmcWriteable, "IsSdmcWritable"},
{IPC::MakeHeader(0x0819, 1, 2), nullptr, "GetSdmcCid"},
{IPC::MakeHeader(0x081A, 1, 2), nullptr, "GetNandCid"},
{IPC::MakeHeader(0x081B, 0, 0), nullptr, "GetSdmcSpeedInfo"},
{IPC::MakeHeader(0x081C, 0, 0), nullptr, "GetNandSpeedInfo"},
{IPC::MakeHeader(0x081D, 1, 2), nullptr, "GetSdmcLog"},
{IPC::MakeHeader(0x081E, 1, 2), nullptr, "GetNandLog"},
{IPC::MakeHeader(0x081F, 0, 0), nullptr, "ClearSdmcLog"},
{IPC::MakeHeader(0x0820, 0, 0), nullptr, "ClearNandLog"},
{IPC::MakeHeader(0x0821, 0, 0), &FS_USER::CardSlotIsInserted, "CardSlotIsInserted"},
{IPC::MakeHeader(0x0822, 0, 0), nullptr, "CardSlotPowerOn"},
{IPC::MakeHeader(0x0823, 0, 0), nullptr, "CardSlotPowerOff"},
{IPC::MakeHeader(0x0824, 0, 0), nullptr, "CardSlotGetCardIFPowerStatus"},
{IPC::MakeHeader(0x0825, 1, 0), nullptr, "CardNorDirectCommand"},
{IPC::MakeHeader(0x0826, 2, 0), nullptr, "CardNorDirectCommandWithAddress"},
{IPC::MakeHeader(0x0827, 2, 2), nullptr, "CardNorDirectRead"},
{IPC::MakeHeader(0x0828, 3, 2), nullptr, "CardNorDirectReadWithAddress"},
{IPC::MakeHeader(0x0829, 2, 2), nullptr, "CardNorDirectWrite"},
{IPC::MakeHeader(0x082A, 3, 2), nullptr, "CardNorDirectWriteWithAddress"},
{IPC::MakeHeader(0x082B, 3, 2), nullptr, "CardNorDirectRead_4xIO"},
{IPC::MakeHeader(0x082C, 2, 2), nullptr, "CardNorDirectCpuWriteWithoutVerify"},
{IPC::MakeHeader(0x082D, 1, 0), nullptr, "CardNorDirectSectorEraseWithoutVerify"},
{IPC::MakeHeader(0x082E, 1, 0), nullptr, "GetProductInfo"},
{IPC::MakeHeader(0x082F, 1, 0), &FS_USER::GetProgramLaunchInfo, "GetProgramLaunchInfo"},
{IPC::MakeHeader(0x0830, 6, 2), &FS_USER::ObsoletedCreateExtSaveData, "Obsoleted_3_0_CreateExtSaveData"},
{IPC::MakeHeader(0x0831, 6, 0), nullptr, "CreateSharedExtSaveData"},
{IPC::MakeHeader(0x0832, 4, 2), nullptr, "ReadExtSaveDataIcon"},
{IPC::MakeHeader(0x0833, 2, 2), nullptr, "EnumerateExtSaveData"},
{IPC::MakeHeader(0x0834, 2, 2), nullptr, "EnumerateSharedExtSaveData"},
{IPC::MakeHeader(0x0835, 2, 0), &FS_USER::ObsoletedDeleteExtSaveData, "Obsoleted_3_0_DeleteExtSaveData"},
{IPC::MakeHeader(0x0836, 2, 0), nullptr, "DeleteSharedExtSaveData"},
{IPC::MakeHeader(0x0837, 1, 0), nullptr, "SetCardSpiBaudRate"},
{IPC::MakeHeader(0x0838, 1, 0), nullptr, "SetCardSpiBusMode"},
{IPC::MakeHeader(0x0839, 0, 0), nullptr, "SendInitializeInfoTo9"},
{IPC::MakeHeader(0x083A, 4, 0), &FS_USER::GetSpecialContentIndex, "GetSpecialContentIndex"},
{IPC::MakeHeader(0x083B, 3, 2), nullptr, "GetLegacyRomHeader"},
{IPC::MakeHeader(0x083C, 3, 2), nullptr, "GetLegacyBannerData"},
{IPC::MakeHeader(0x083D, 4, 0), nullptr, "CheckAuthorityToAccessExtSaveData"},
{IPC::MakeHeader(0x083E, 3, 2), nullptr, "QueryTotalQuotaSize"},
{IPC::MakeHeader(0x083F, 3, 0), nullptr, "GetExtDataBlockSize"},
{IPC::MakeHeader(0x0840, 1, 0), nullptr, "AbnegateAccessRight"},
{IPC::MakeHeader(0x0841, 0, 0), nullptr, "DeleteSdmcRoot"},
{IPC::MakeHeader(0x0842, 1, 0), nullptr, "DeleteAllExtSaveDataOnNand"},
{IPC::MakeHeader(0x0843, 0, 0), nullptr, "InitializeCtrFileSystem"},
{IPC::MakeHeader(0x0844, 0, 0), nullptr, "CreateSeed"},
{IPC::MakeHeader(0x0845, 3, 2), &FS_USER::GetFormatInfo, "GetFormatInfo"},
{IPC::MakeHeader(0x0846, 4, 2), nullptr, "GetLegacyRomHeader2"},
{IPC::MakeHeader(0x0847, 6, 0), nullptr, "FormatCtrCardUserSaveData"},
{IPC::MakeHeader(0x0848, 1, 2), nullptr, "GetSdmcCtrRootPath"},
{IPC::MakeHeader(0x0849, 1, 0), &FS_USER::GetArchiveResource, "GetArchiveResource"},
{IPC::MakeHeader(0x084A, 0, 2), nullptr, "ExportIntegrityVerificationSeed"},
{IPC::MakeHeader(0x084B, 0, 2), nullptr, "ImportIntegrityVerificationSeed"},
{IPC::MakeHeader(0x084C, 9, 2), &FS_USER::FormatSaveData, "FormatSaveData"},
{IPC::MakeHeader(0x084D, 4, 2), nullptr, "GetLegacySubBannerData"},
{IPC::MakeHeader(0x084E, 13, 2), nullptr, "UpdateSha256Context"},
{IPC::MakeHeader(0x084F, 4, 2), nullptr, "ReadSpecialFile"},
{IPC::MakeHeader(0x0850, 1, 0), nullptr, "GetSpecialFileSize"},
{IPC::MakeHeader(0x0851, 9, 2), &FS_USER::CreateExtSaveData, "CreateExtSaveData"},
{IPC::MakeHeader(0x0852, 4, 0), &FS_USER::DeleteExtSaveData, "DeleteExtSaveData"},
{IPC::MakeHeader(0x0853, 5, 2), nullptr, "ReadExtSaveDataIcon"},
{IPC::MakeHeader(0x0854, 3, 0), nullptr, "GetExtDataBlockSize"},
{IPC::MakeHeader(0x0855, 4, 2), nullptr, "EnumerateExtSaveData"},
{IPC::MakeHeader(0x0856, 9, 0), &FS_USER::CreateSystemSaveData, "CreateSystemSaveData"},
{IPC::MakeHeader(0x0857, 2, 0), &FS_USER::DeleteSystemSaveData, "DeleteSystemSaveData"},
{IPC::MakeHeader(0x0858, 0, 0), nullptr, "StartDeviceMoveAsSource"},
{IPC::MakeHeader(0x0859, 8, 0), nullptr, "StartDeviceMoveAsDestination"},
{IPC::MakeHeader(0x085A, 3, 0), nullptr, "SetArchivePriority"},
{IPC::MakeHeader(0x085B, 2, 0), nullptr, "GetArchivePriority"},
{IPC::MakeHeader(0x085C, 3, 0), nullptr, "SetCtrCardLatencyParameter"},
{IPC::MakeHeader(0x085D, 7, 0), nullptr, "SetFsCompatibilityInfo"},
{IPC::MakeHeader(0x085E, 1, 0), nullptr, "ResetCardCompatibilityParameter"},
{IPC::MakeHeader(0x085F, 1, 0), nullptr, "SwitchCleanupInvalidSaveData"},
{IPC::MakeHeader(0x0860, 1, 2), nullptr, "EnumerateSystemSaveData"},
{IPC::MakeHeader(0x0861, 1, 2), &FS_USER::InitializeWithSdkVersion, "InitializeWithSdkVersion"},
{IPC::MakeHeader(0x0862, 1, 0), &FS_USER::SetPriority, "SetPriority"},
{IPC::MakeHeader(0x0863, 0, 0), &FS_USER::GetPriority, "GetPriority"},
{IPC::MakeHeader(0x0864, 0, 0), nullptr, "GetNandInfo"},
{IPC::MakeHeader(0x0865, 5, 0), &FS_USER::SetSaveDataSecureValue, "SetSaveDataSecureValue"},
{IPC::MakeHeader(0x0866, 3, 0), &FS_USER::GetSaveDataSecureValue, "GetSaveDataSecureValue"},
{IPC::MakeHeader(0x0867, 3, 4), nullptr, "ControlSecureSave"},
{IPC::MakeHeader(0x0868, 0, 0), nullptr, "GetMediaType"},
{IPC::MakeHeader(0x0869, 0, 0), nullptr, "GetNandEraseCount"},
{IPC::MakeHeader(0x086A, 2, 2), nullptr, "ReadNandReport"},
{IPC::MakeHeader(0x087A, 6, 0), &FS_USER::AddSeed, "AddSeed"},
{IPC::MakeHeader(0x087D, 0, 0), &FS_USER::GetNumSeeds, "GetNumSeeds"},
{IPC::MakeHeader(0x0886, 3, 0), nullptr, "CheckUpdatedDat"},
// clang-format on
};
RegisterHandlers(functions);
}