mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	service: Mark variables as [[maybe_unused]] where applicable (#5318)
Quite a few service functions are stubbed but still pop all their arguments, which can lead to unused variable warnings. We can mark the unused arguments with [[maybe_unused]] to silence these warnings until a full implementation of these functions are made.
This commit is contained in:
		
							parent
							
								
									6e48149ee1
								
							
						
					
					
						commit
						e9819b61a6
					
				
					 12 changed files with 103 additions and 102 deletions
				
			
		|  | @ -103,7 +103,7 @@ void Module::Interface::GetWifiStatus(Kernel::HLERequestContext& ctx) { | |||
| 
 | ||||
| void Module::Interface::GetInfraPriority(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x27, 0, 2); | ||||
|     const std::vector<u8>& ac_config = rp.PopStaticBuffer(); | ||||
|     [[maybe_unused]] const std::vector<u8>& ac_config = rp.PopStaticBuffer(); | ||||
| 
 | ||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|  |  | |||
|  | @ -1093,7 +1093,7 @@ void Module::Interface::BeginImportProgramTemporarily(Kernel::HLERequestContext& | |||
| 
 | ||||
| void Module::Interface::EndImportProgram(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x0405, 0, 2); // 0x04050002
 | ||||
|     auto cia = rp.PopObject<Kernel::ClientSession>(); | ||||
|     [[maybe_unused]] const auto cia = rp.PopObject<Kernel::ClientSession>(); | ||||
| 
 | ||||
|     am->ScanForAllTitles(); | ||||
| 
 | ||||
|  | @ -1104,7 +1104,7 @@ void Module::Interface::EndImportProgram(Kernel::HLERequestContext& ctx) { | |||
| 
 | ||||
| void Module::Interface::EndImportProgramWithoutCommit(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x0406, 0, 2); // 0x04060002
 | ||||
|     auto cia = rp.PopObject<Kernel::ClientSession>(); | ||||
|     [[maybe_unused]] const auto cia = rp.PopObject<Kernel::ClientSession>(); | ||||
| 
 | ||||
|     // Note: This function is basically a no-op for us since we don't use title.db or ticket.db
 | ||||
|     // files to keep track of installed titles.
 | ||||
|  | @ -1117,10 +1117,10 @@ void Module::Interface::EndImportProgramWithoutCommit(Kernel::HLERequestContext& | |||
| 
 | ||||
| void Module::Interface::CommitImportPrograms(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x0407, 3, 2); // 0x040700C2
 | ||||
|     auto media_type = static_cast<Service::FS::MediaType>(rp.Pop<u8>()); | ||||
|     u32 title_count = rp.Pop<u32>(); | ||||
|     u8 database = rp.Pop<u8>(); | ||||
|     auto buffer = rp.PopMappedBuffer(); | ||||
|     [[maybe_unused]] const auto media_type = static_cast<FS::MediaType>(rp.Pop<u8>()); | ||||
|     [[maybe_unused]] const u32 title_count = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const u8 database = rp.Pop<u8>(); | ||||
|     const auto buffer = rp.PopMappedBuffer(); | ||||
| 
 | ||||
|     // Note: This function is basically a no-op for us since we don't use title.db or ticket.db
 | ||||
|     // files to keep track of installed titles.
 | ||||
|  | @ -1204,7 +1204,7 @@ ResultVal<std::unique_ptr<AMFileWrapper>> GetFileFromSession( | |||
| 
 | ||||
| void Module::Interface::GetProgramInfoFromCia(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x0408, 1, 2); // 0x04080042
 | ||||
|     auto media_type = static_cast<Service::FS::MediaType>(rp.Pop<u8>()); | ||||
|     [[maybe_unused]] const auto media_type = static_cast<FS::MediaType>(rp.Pop<u8>()); | ||||
|     auto cia = rp.PopObject<Kernel::ClientSession>(); | ||||
| 
 | ||||
|     auto file_res = GetFileFromSession(cia); | ||||
|  | @ -1360,7 +1360,7 @@ void Module::Interface::GetCoreVersionFromCia(Kernel::HLERequestContext& ctx) { | |||
| 
 | ||||
| void Module::Interface::GetRequiredSizeFromCia(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x040D, 1, 2); // 0x040D0042
 | ||||
|     auto media_type = static_cast<Service::FS::MediaType>(rp.Pop<u8>()); | ||||
|     [[maybe_unused]] const auto media_type = static_cast<FS::MediaType>(rp.Pop<u8>()); | ||||
|     auto cia = rp.PopObject<Kernel::ClientSession>(); | ||||
| 
 | ||||
|     auto file_res = GetFileFromSession(cia); | ||||
|  |  | |||
|  | @ -449,11 +449,11 @@ void Module::APTInterface::PrepareToDoApplicationJump(Kernel::HLERequestContext& | |||
| 
 | ||||
| void Module::APTInterface::DoApplicationJump(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x32, 2, 4); // 0x00320084
 | ||||
|     u32 param_size = rp.Pop<u32>(); | ||||
|     u32 hmac_size = rp.Pop<u32>(); | ||||
|     const auto param_size = rp.Pop<u32>(); | ||||
|     const auto hmac_size = rp.Pop<u32>(); | ||||
| 
 | ||||
|     auto param = rp.PopStaticBuffer(); | ||||
|     auto hmac = rp.PopStaticBuffer(); | ||||
|     [[maybe_unused]] const auto param = rp.PopStaticBuffer(); | ||||
|     [[maybe_unused]] const auto hmac = rp.PopStaticBuffer(); | ||||
| 
 | ||||
|     LOG_WARNING(Service_APT, "(STUBBED) called param_size={:08X}, hmac_size={:08X}", param_size, | ||||
|                 hmac_size); | ||||
|  | @ -502,11 +502,11 @@ void Module::APTInterface::PrepareToStartApplication(Kernel::HLERequestContext& | |||
| 
 | ||||
| void Module::APTInterface::StartApplication(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x1B, 3, 4); // 0x001B00C4
 | ||||
|     u32 buffer1_size = rp.Pop<u32>(); | ||||
|     u32 buffer2_size = rp.Pop<u32>(); | ||||
|     u32 flag = rp.Pop<u32>(); | ||||
|     std::vector<u8> buffer1 = rp.PopStaticBuffer(); | ||||
|     std::vector<u8> buffer2 = rp.PopStaticBuffer(); | ||||
|     const auto buffer1_size = rp.Pop<u32>(); | ||||
|     const auto buffer2_size = rp.Pop<u32>(); | ||||
|     const auto flag = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const std::vector<u8> buffer1 = rp.PopStaticBuffer(); | ||||
|     [[maybe_unused]] const std::vector<u8> buffer2 = rp.PopStaticBuffer(); | ||||
| 
 | ||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||
|     rb.Push(RESULT_SUCCESS); // No error
 | ||||
|  | @ -520,10 +520,10 @@ void Module::APTInterface::AppletUtility(Kernel::HLERequestContext& ctx) { | |||
|     IPC::RequestParser rp(ctx, 0x4B, 3, 2); // 0x004B00C2
 | ||||
| 
 | ||||
|     // These are from 3dbrew - I'm not really sure what they're used for.
 | ||||
|     u32 utility_command = rp.Pop<u32>(); | ||||
|     u32 input_size = rp.Pop<u32>(); | ||||
|     u32 output_size = rp.Pop<u32>(); | ||||
|     std::vector<u8> input = rp.PopStaticBuffer(); | ||||
|     const auto utility_command = rp.Pop<u32>(); | ||||
|     const auto input_size = rp.Pop<u32>(); | ||||
|     const auto output_size = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const std::vector<u8> input = rp.PopStaticBuffer(); | ||||
| 
 | ||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||
|     rb.Push(RESULT_SUCCESS); // No error
 | ||||
|  | @ -611,21 +611,21 @@ void Module::APTInterface::StartLibraryApplet(Kernel::HLERequestContext& ctx) { | |||
|     IPC::RequestParser rp(ctx, 0x1E, 2, 4); // 0x1E0084
 | ||||
|     AppletId applet_id = rp.PopEnum<AppletId>(); | ||||
| 
 | ||||
|     std::size_t buffer_size = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const std::size_t buffer_size = rp.Pop<u32>(); | ||||
|     std::shared_ptr<Kernel::Object> object = rp.PopGenericObject(); | ||||
|     std::vector<u8> buffer = rp.PopStaticBuffer(); | ||||
|     const std::vector<u8> buffer = rp.PopStaticBuffer(); | ||||
| 
 | ||||
|     LOG_DEBUG(Service_APT, "called, applet_id={:08X}", static_cast<u32>(applet_id)); | ||||
| 
 | ||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||
|     rb.Push(apt->applet_manager->StartLibraryApplet(applet_id, object, buffer)); | ||||
|     rb.Push(apt->applet_manager->StartLibraryApplet(applet_id, std::move(object), buffer)); | ||||
| } | ||||
| 
 | ||||
| void Module::APTInterface::CloseApplication(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x27, 1, 4); | ||||
|     u32 parameters_size = rp.Pop<u32>(); | ||||
|     std::shared_ptr<Kernel::Object> object = rp.PopGenericObject(); | ||||
|     std::vector<u8> buffer = rp.PopStaticBuffer(); | ||||
|     [[maybe_unused]] const u32 parameters_size = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const std::shared_ptr<Kernel::Object> object = rp.PopGenericObject(); | ||||
|     [[maybe_unused]] const std::vector<u8> buffer = rp.PopStaticBuffer(); | ||||
| 
 | ||||
|     LOG_DEBUG(Service_APT, "called"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -58,7 +58,7 @@ void Module::Interface::GetStorageInfo(Kernel::HLERequestContext& ctx) { | |||
| 
 | ||||
| void Module::Interface::RegisterPrivateRootCa(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x05, 1, 2); | ||||
|     const u32 size = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const u32 size = rp.Pop<u32>(); | ||||
|     auto& buffer = rp.PopMappedBuffer(); | ||||
| 
 | ||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); | ||||
|  | @ -96,7 +96,7 @@ void Module::Interface::GetNewArrivalFlag(Kernel::HLERequestContext& ctx) { | |||
| 
 | ||||
| void Module::Interface::RegisterNewArrivalEvent(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x08, 0, 2); | ||||
|     const auto event = rp.PopObject<Kernel::Event>(); | ||||
|     [[maybe_unused]] const auto event = rp.PopObject<Kernel::Event>(); | ||||
| 
 | ||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|  | @ -282,7 +282,7 @@ void Module::Interface::SendProperty(Kernel::HLERequestContext& ctx) { | |||
| void Module::Interface::SendPropertyHandle(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x15, 1, 2); | ||||
|     const u16 property_id = rp.Pop<u16>(); | ||||
|     const std::shared_ptr<Kernel::Object> object = rp.PopGenericObject(); | ||||
|     [[maybe_unused]] const std::shared_ptr<Kernel::Object> object = rp.PopGenericObject(); | ||||
| 
 | ||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|  |  | |||
|  | @ -371,7 +371,7 @@ void Module::Interface::Write(Kernel::HLERequestContext& ctx) { | |||
|                                      buffer); | ||||
|         } | ||||
| 
 | ||||
|         const u32 bytes_written = static_cast<u32>( | ||||
|         [[maybe_unused]] const u32 bytes_written = static_cast<u32>( | ||||
|             session_data->file->Write(0, buffer.size(), true, buffer.data()).Unwrap()); | ||||
|         session_data->file->Close(); | ||||
| 
 | ||||
|  | @ -433,7 +433,7 @@ void Module::Interface::WriteMessage(Kernel::HLERequestContext& ctx) { | |||
|                   msg_header.sender_id, msg_header.sender_id2, msg_header.send_count, | ||||
|                   msg_header.forward_count, msg_header.user_data); | ||||
| 
 | ||||
|         const u32 bytes_written = | ||||
|         [[maybe_unused]] const u32 bytes_written = | ||||
|             static_cast<u32>(message->Write(0, buffer_size, true, buffer.data()).Unwrap()); | ||||
|         message->Close(); | ||||
| 
 | ||||
|  | @ -520,7 +520,7 @@ void Module::Interface::WriteMessageWithHMAC(Kernel::HLERequestContext& ctx) { | |||
|         hmac.CalculateDigest(hmac_digest.data(), message_body.data(), msg_header.body_size); | ||||
|         std::memcpy(buffer.data() + hmac_offset, hmac_digest.data(), hmac_size); | ||||
| 
 | ||||
|         const u32 bytes_written = | ||||
|         [[maybe_unused]] const u32 bytes_written = | ||||
|             static_cast<u32>(message->Write(0, buffer_size, true, buffer.data()).Unwrap()); | ||||
|         message->Close(); | ||||
| 
 | ||||
|  | @ -763,7 +763,7 @@ void Module::Interface::OpenAndWrite(Kernel::HLERequestContext& ctx) { | |||
|                 cecd->CheckAndUpdateFile(path_type, ncch_program_id, buffer); | ||||
|             } | ||||
| 
 | ||||
|             const u32 bytes_written = | ||||
|             [[maybe_unused]] const u32 bytes_written = | ||||
|                 static_cast<u32>(file->Write(0, buffer.size(), true, buffer.data()).Unwrap()); | ||||
|             file->Close(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -41,7 +41,7 @@ void Module::serialize(Archive& ar, const unsigned int) { | |||
| SERIALIZE_IMPL(Module) | ||||
| 
 | ||||
| /// The maximum number of block entries that can exist in the config file
 | ||||
| static const u32 CONFIG_FILE_MAX_BLOCK_ENTRIES = 1479; | ||||
| constexpr u32 CONFIG_FILE_MAX_BLOCK_ENTRIES = 1479; | ||||
| 
 | ||||
| namespace { | ||||
| 
 | ||||
|  | @ -104,23 +104,23 @@ struct ConsoleCountryInfo { | |||
| static_assert(sizeof(ConsoleCountryInfo) == 4, "ConsoleCountryInfo must be exactly 4 bytes"); | ||||
| } // namespace
 | ||||
| 
 | ||||
| static const EULAVersion MAX_EULA_VERSION = {0x7F, 0x7F}; | ||||
| static const ConsoleModelInfo CONSOLE_MODEL_OLD = {NINTENDO_3DS_XL, {0, 0, 0}}; | ||||
| static const ConsoleModelInfo CONSOLE_MODEL_NEW = {NEW_NINTENDO_3DS_XL, {0, 0, 0}}; | ||||
| static const u8 CONSOLE_LANGUAGE = LANGUAGE_EN; | ||||
| static const UsernameBlock CONSOLE_USERNAME_BLOCK = {u"CITRA", 0, 0}; | ||||
| static const BirthdayBlock PROFILE_BIRTHDAY = {3, 25}; // March 25th, 2014
 | ||||
| static const u8 SOUND_OUTPUT_MODE = SOUND_SURROUND; | ||||
| static const u8 UNITED_STATES_COUNTRY_ID = 49; | ||||
| constexpr EULAVersion MAX_EULA_VERSION{0x7F, 0x7F}; | ||||
| constexpr ConsoleModelInfo CONSOLE_MODEL_OLD{NINTENDO_3DS_XL, {0, 0, 0}}; | ||||
| constexpr ConsoleModelInfo CONSOLE_MODEL_NEW{NEW_NINTENDO_3DS_XL, {0, 0, 0}}; | ||||
| constexpr u8 CONSOLE_LANGUAGE = LANGUAGE_EN; | ||||
| constexpr UsernameBlock CONSOLE_USERNAME_BLOCK{u"CITRA", 0, 0}; | ||||
| constexpr BirthdayBlock PROFILE_BIRTHDAY{3, 25}; // March 25th, 2014
 | ||||
| constexpr u8 SOUND_OUTPUT_MODE = SOUND_SURROUND; | ||||
| constexpr u8 UNITED_STATES_COUNTRY_ID = 49; | ||||
| /// TODO(Subv): Find what the other bytes are
 | ||||
| static const ConsoleCountryInfo COUNTRY_INFO = {{0, 0, 0}, UNITED_STATES_COUNTRY_ID}; | ||||
| constexpr ConsoleCountryInfo COUNTRY_INFO{{0, 0, 0}, UNITED_STATES_COUNTRY_ID}; | ||||
| 
 | ||||
| /**
 | ||||
|  * TODO(Subv): Find out what this actually is, these values fix some NaN uniforms in some games, | ||||
|  * for example Nintendo Zone | ||||
|  * Thanks Normmatt for providing this information | ||||
|  */ | ||||
| static const std::array<float, 8> STEREO_CAMERA_SETTINGS = { | ||||
| constexpr std::array<float, 8> STEREO_CAMERA_SETTINGS = { | ||||
|     62.0f, 289.0f, 76.80000305175781f, 46.08000183105469f, | ||||
|     10.0f, 5.0f,   55.58000183105469f, 21.56999969482422f, | ||||
| }; | ||||
|  |  | |||
|  | @ -220,15 +220,15 @@ void FS_USER::CreateFile(Kernel::HLERequestContext& ctx) { | |||
|     IPC::RequestParser rp(ctx, 0x808, 8, 2); | ||||
| 
 | ||||
|     rp.Skip(1, false); // TransactionId
 | ||||
|     ArchiveHandle archive_handle = rp.PopRaw<ArchiveHandle>(); | ||||
|     auto filename_type = rp.PopEnum<FileSys::LowPathType>(); | ||||
|     u32 filename_size = rp.Pop<u32>(); | ||||
|     u32 attributes = rp.Pop<u32>(); | ||||
|     u64 file_size = rp.Pop<u64>(); | ||||
|     const auto archive_handle = rp.PopRaw<ArchiveHandle>(); | ||||
|     const auto filename_type = rp.PopEnum<FileSys::LowPathType>(); | ||||
|     const auto filename_size = rp.Pop<u32>(); | ||||
|     const auto attributes = rp.Pop<u32>(); | ||||
|     const auto file_size = rp.Pop<u64>(); | ||||
|     std::vector<u8> filename = rp.PopStaticBuffer(); | ||||
|     ASSERT(filename.size() == filename_size); | ||||
| 
 | ||||
|     FileSys::Path file_path(filename_type, filename); | ||||
|     const FileSys::Path file_path(filename_type, std::move(filename)); | ||||
| 
 | ||||
|     LOG_DEBUG(Service_FS, "type={} attributes={} size={:x} data={}", | ||||
|               static_cast<u32>(filename_type), attributes, file_size, file_path.DebugStr()); | ||||
|  | @ -240,13 +240,13 @@ void FS_USER::CreateFile(Kernel::HLERequestContext& ctx) { | |||
| void FS_USER::CreateDirectory(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x809, 6, 2); | ||||
|     rp.Skip(1, false); // TransactionId
 | ||||
|     ArchiveHandle archive_handle = rp.PopRaw<ArchiveHandle>(); | ||||
|     auto dirname_type = rp.PopEnum<FileSys::LowPathType>(); | ||||
|     u32 dirname_size = rp.Pop<u32>(); | ||||
|     u32 attributes = rp.Pop<u32>(); | ||||
|     const auto archive_handle = rp.PopRaw<ArchiveHandle>(); | ||||
|     const auto dirname_type = rp.PopEnum<FileSys::LowPathType>(); | ||||
|     const auto dirname_size = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto attributes = rp.Pop<u32>(); | ||||
|     std::vector<u8> dirname = rp.PopStaticBuffer(); | ||||
|     ASSERT(dirname.size() == dirname_size); | ||||
|     FileSys::Path dir_path(dirname_type, dirname); | ||||
|     const FileSys::Path dir_path(dirname_type, std::move(dirname)); | ||||
| 
 | ||||
|     LOG_DEBUG(Service_FS, "type={} size={} data={}", static_cast<u32>(dirname_type), dirname_size, | ||||
|               dir_path.DebugStr()); | ||||
|  | @ -366,18 +366,18 @@ void FS_USER::FormatSaveData(Kernel::HLERequestContext& ctx) { | |||
|     LOG_WARNING(Service_FS, "(STUBBED)"); | ||||
| 
 | ||||
|     IPC::RequestParser rp(ctx, 0x84C, 9, 2); | ||||
|     auto archive_id = rp.PopEnum<FS::ArchiveIdCode>(); | ||||
|     auto archivename_type = rp.PopEnum<FileSys::LowPathType>(); | ||||
|     u32 archivename_size = rp.Pop<u32>(); | ||||
|     u32 block_size = rp.Pop<u32>(); | ||||
|     u32 number_directories = rp.Pop<u32>(); | ||||
|     u32 number_files = rp.Pop<u32>(); | ||||
|     u32 directory_buckets = rp.Pop<u32>(); | ||||
|     u32 file_buckets = rp.Pop<u32>(); | ||||
|     bool duplicate_data = rp.Pop<bool>(); | ||||
|     const auto archive_id = rp.PopEnum<ArchiveIdCode>(); | ||||
|     const auto archivename_type = rp.PopEnum<FileSys::LowPathType>(); | ||||
|     const auto archivename_size = rp.Pop<u32>(); | ||||
|     const auto block_size = rp.Pop<u32>(); | ||||
|     const auto number_directories = rp.Pop<u32>(); | ||||
|     const auto number_files = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto directory_buckets = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto file_buckets = rp.Pop<u32>(); | ||||
|     const bool duplicate_data = rp.Pop<bool>(); | ||||
|     std::vector<u8> archivename = rp.PopStaticBuffer(); | ||||
|     ASSERT(archivename.size() == archivename_size); | ||||
|     FileSys::Path archive_path(archivename_type, archivename); | ||||
|     const FileSys::Path archive_path(archivename_type, std::move(archivename)); | ||||
| 
 | ||||
|     LOG_DEBUG(Service_FS, "archive_path={}", archive_path.DebugStr()); | ||||
| 
 | ||||
|  | @ -409,12 +409,12 @@ void FS_USER::FormatSaveData(Kernel::HLERequestContext& ctx) { | |||
| 
 | ||||
| void FS_USER::FormatThisUserSaveData(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x80F, 6, 0); | ||||
|     u32 block_size = rp.Pop<u32>(); | ||||
|     u32 number_directories = rp.Pop<u32>(); | ||||
|     u32 number_files = rp.Pop<u32>(); | ||||
|     u32 directory_buckets = rp.Pop<u32>(); | ||||
|     u32 file_buckets = rp.Pop<u32>(); | ||||
|     bool duplicate_data = rp.Pop<bool>(); | ||||
|     const auto block_size = rp.Pop<u32>(); | ||||
|     const auto number_directories = rp.Pop<u32>(); | ||||
|     const auto number_files = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto directory_buckets = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto file_buckets = rp.Pop<u32>(); | ||||
|     const auto duplicate_data = rp.Pop<bool>(); | ||||
| 
 | ||||
|     FileSys::ArchiveFormatInfo format_info; | ||||
|     format_info.duplicate_data = duplicate_data; | ||||
|  |  | |||
|  | @ -421,7 +421,7 @@ void HTTP_C::CloseContext(Kernel::HLERequestContext& ctx) { | |||
| void HTTP_C::AddRequestHeader(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x11, 3, 4); | ||||
|     const u32 context_handle = rp.Pop<u32>(); | ||||
|     const u32 name_size = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const u32 name_size = rp.Pop<u32>(); | ||||
|     const u32 value_size = rp.Pop<u32>(); | ||||
|     const std::vector<u8> name_buffer = rp.PopStaticBuffer(); | ||||
|     Kernel::MappedBuffer& value_buffer = rp.PopMappedBuffer(); | ||||
|  | @ -497,7 +497,7 @@ void HTTP_C::AddRequestHeader(Kernel::HLERequestContext& ctx) { | |||
| void HTTP_C::AddPostDataAscii(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x12, 3, 4); | ||||
|     const u32 context_handle = rp.Pop<u32>(); | ||||
|     const u32 name_size = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const u32 name_size = rp.Pop<u32>(); | ||||
|     const u32 value_size = rp.Pop<u32>(); | ||||
|     const std::vector<u8> name_buffer = rp.PopStaticBuffer(); | ||||
|     Kernel::MappedBuffer& value_buffer = rp.PopMappedBuffer(); | ||||
|  |  | |||
|  | @ -1219,8 +1219,8 @@ void NWM_UDS::ConnectToNetwork(Kernel::HLERequestContext& ctx, u16 command_id, | |||
| void NWM_UDS::ConnectToNetwork(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x1E, 2, 4); | ||||
| 
 | ||||
|     u8 connection_type = rp.Pop<u8>(); | ||||
|     u32 passphrase_size = rp.Pop<u32>(); | ||||
|     const auto connection_type = rp.Pop<u8>(); | ||||
|     [[maybe_unused]] const auto passphrase_size = rp.Pop<u32>(); | ||||
| 
 | ||||
|     const std::vector<u8> network_info_buffer = rp.PopStaticBuffer(); | ||||
|     ASSERT(network_info_buffer.size() == sizeof(NetworkInfo)); | ||||
|  | @ -1240,8 +1240,8 @@ void NWM_UDS::ConnectToNetworkDeprecated(Kernel::HLERequestContext& ctx) { | |||
|     // info
 | ||||
|     const auto network_info_buffer = rp.PopRaw<std::array<u8, 0x3C>>(); | ||||
| 
 | ||||
|     u8 connection_type = rp.Pop<u8>(); | ||||
|     u32 passphrase_size = rp.Pop<u32>(); | ||||
|     const auto connection_type = rp.Pop<u8>(); | ||||
|     [[maybe_unused]] const auto passphrase_size = rp.Pop<u32>(); | ||||
| 
 | ||||
|     std::vector<u8> passphrase = rp.PopStaticBuffer(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -42,8 +42,8 @@ constexpr std::array<u8, 10> KeyTypes{{ | |||
| 
 | ||||
| void PS_PS::EncryptDecryptAes(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x4, 8, 4); | ||||
|     u32 src_size = rp.Pop<u32>(); | ||||
|     u32 dest_size = rp.Pop<u32>(); | ||||
|     auto src_size = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto dest_size = rp.Pop<u32>(); | ||||
| 
 | ||||
|     using CryptoPP::AES; | ||||
|     std::array<u8, AES::BLOCKSIZE> iv; | ||||
|  |  | |||
|  | @ -50,17 +50,17 @@ constexpr int MAX_PENDING_NOTIFICATIONS = 16; | |||
| void SRV::RegisterClient(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x1, 0, 2); | ||||
| 
 | ||||
|     u32 pid_descriptor = rp.Pop<u32>(); | ||||
|     const auto pid_descriptor = rp.Pop<u32>(); | ||||
|     if (pid_descriptor != IPC::CallingPidDesc()) { | ||||
|         IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||
|         rb.Push(IPC::ERR_INVALID_BUFFER_DESCRIPTOR); | ||||
|         return; | ||||
|     } | ||||
|     u32 caller_pid = rp.Pop<u32>(); | ||||
|     const auto caller_pid = rp.Pop<u32>(); | ||||
| 
 | ||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     LOG_WARNING(Service_SRV, "(STUBBED) called"); | ||||
|     LOG_WARNING(Service_SRV, "(STUBBED) called. Caller PID={}", caller_pid); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  |  | |||
|  | @ -504,8 +504,8 @@ void SOC_U::Accept(Kernel::HLERequestContext& ctx) { | |||
|     // preventing graceful shutdown when closing the emulator, this can be fixed by always
 | ||||
|     // performing nonblocking operations and spinlock until the data is available
 | ||||
|     IPC::RequestParser rp(ctx, 0x04, 2, 2); | ||||
|     u32 socket_handle = rp.Pop<u32>(); | ||||
|     socklen_t max_addr_len = static_cast<socklen_t>(rp.Pop<u32>()); | ||||
|     const auto socket_handle = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto max_addr_len = static_cast<socklen_t>(rp.Pop<u32>()); | ||||
|     rp.PopPID(); | ||||
|     sockaddr addr; | ||||
|     socklen_t addr_len = sizeof(addr); | ||||
|  | @ -724,8 +724,8 @@ void SOC_U::Poll(Kernel::HLERequestContext& ctx) { | |||
| 
 | ||||
| void SOC_U::GetSockName(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x17, 2, 2); | ||||
|     u32 socket_handle = rp.Pop<u32>(); | ||||
|     u32 max_addr_len = rp.Pop<u32>(); | ||||
|     const auto socket_handle = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto max_addr_len = rp.Pop<u32>(); | ||||
|     rp.PopPID(); | ||||
| 
 | ||||
|     sockaddr dest_addr; | ||||
|  | @ -761,25 +761,26 @@ void SOC_U::Shutdown(Kernel::HLERequestContext& ctx) { | |||
| 
 | ||||
| void SOC_U::GetPeerName(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x18, 2, 2); | ||||
|     u32 socket_handle = rp.Pop<u32>(); | ||||
|     u32 max_addr_len = rp.Pop<u32>(); | ||||
|     const auto socket_handle = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto max_addr_len = rp.Pop<u32>(); | ||||
|     rp.PopPID(); | ||||
| 
 | ||||
|     sockaddr dest_addr; | ||||
|     socklen_t dest_addr_len = sizeof(dest_addr); | ||||
|     int ret = ::getpeername(socket_handle, &dest_addr, &dest_addr_len); | ||||
|     const int ret = ::getpeername(socket_handle, &dest_addr, &dest_addr_len); | ||||
| 
 | ||||
|     CTRSockAddr ctr_dest_addr = CTRSockAddr::FromPlatform(dest_addr); | ||||
|     std::vector<u8> dest_addr_buff(sizeof(ctr_dest_addr)); | ||||
|     std::memcpy(dest_addr_buff.data(), &ctr_dest_addr, sizeof(ctr_dest_addr)); | ||||
| 
 | ||||
|     int result = 0; | ||||
|     if (ret != 0) | ||||
|         ret = TranslateError(GET_ERRNO); | ||||
|     if (ret != 0) { | ||||
|         result = TranslateError(GET_ERRNO); | ||||
|     } | ||||
| 
 | ||||
|     IPC::RequestBuilder rb = rp.MakeBuilder(2, 2); | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push(ret); | ||||
|     rb.Push(result); | ||||
|     rb.PushStaticBuffer(std::move(dest_addr_buff), 0); | ||||
| } | ||||
| 
 | ||||
|  | @ -788,8 +789,8 @@ void SOC_U::Connect(Kernel::HLERequestContext& ctx) { | |||
|     // preventing graceful shutdown when closing the emulator, this can be fixed by always
 | ||||
|     // performing nonblocking operations and spinlock until the data is available
 | ||||
|     IPC::RequestParser rp(ctx, 0x06, 2, 4); | ||||
|     u32 socket_handle = rp.Pop<u32>(); | ||||
|     u32 input_addr_len = rp.Pop<u32>(); | ||||
|     const auto socket_handle = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto input_addr_len = rp.Pop<u32>(); | ||||
|     rp.PopPID(); | ||||
|     auto input_addr_buf = rp.PopStaticBuffer(); | ||||
| 
 | ||||
|  | @ -809,7 +810,7 @@ void SOC_U::Connect(Kernel::HLERequestContext& ctx) { | |||
| void SOC_U::InitializeSockets(Kernel::HLERequestContext& ctx) { | ||||
|     // TODO(Subv): Implement
 | ||||
|     IPC::RequestParser rp(ctx, 0x01, 1, 4); | ||||
|     u32 memory_block_size = rp.Pop<u32>(); | ||||
|     [[maybe_unused]] const auto memory_block_size = rp.Pop<u32>(); | ||||
|     rp.PopPID(); | ||||
|     rp.PopObject<Kernel::SharedMemory>(); | ||||
| 
 | ||||
|  | @ -861,12 +862,12 @@ void SOC_U::GetSockOpt(Kernel::HLERequestContext& ctx) { | |||
| 
 | ||||
| void SOC_U::SetSockOpt(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp(ctx, 0x12, 4, 4); | ||||
|     u32 socket_handle = rp.Pop<u32>(); | ||||
|     u32 level = rp.Pop<u32>(); | ||||
|     s32 optname = rp.Pop<s32>(); | ||||
|     socklen_t optlen = static_cast<socklen_t>(rp.Pop<u32>()); | ||||
|     const auto socket_handle = rp.Pop<u32>(); | ||||
|     const auto level = rp.Pop<u32>(); | ||||
|     const auto optname = rp.Pop<s32>(); | ||||
|     [[maybe_unused]] const auto optlen = static_cast<socklen_t>(rp.Pop<u32>()); | ||||
|     rp.PopPID(); | ||||
|     auto optval = rp.PopStaticBuffer(); | ||||
|     const auto optval = rp.PopStaticBuffer(); | ||||
| 
 | ||||
|     s32 err = 0; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue