@ -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 ) ;
}