diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h index 7773e753c..724be2434 100644 --- a/src/core/hle/ipc_helpers.h +++ b/src/core/hle/ipc_helpers.h @@ -210,14 +210,8 @@ inline void RequestBuilder::PushMappedBuffer(const Kernel::MappedBuffer& mapped_ class RequestParser : public RequestHelperBase { public: - RequestParser(Kernel::HLERequestContext& context, Header desired_header) - : RequestHelperBase(context, desired_header) {} - - RequestParser(Kernel::HLERequestContext& context, u16 command_id, unsigned normal_params_size, - unsigned translate_params_size) - : RequestParser(context, - Header{MakeHeader(command_id, normal_params_size, translate_params_size)}) { - } + RequestParser(Kernel::HLERequestContext& context) + : RequestHelperBase(context, context.CommandHeader()) {} RequestBuilder MakeBuilder(u32 normal_params_size, u32 translate_params_size, bool validateHeader = true) { diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h index 47d98af2c..3c287946a 100644 --- a/src/core/hle/kernel/hle_ipc.h +++ b/src/core/hle/kernel/hle_ipc.h @@ -207,6 +207,11 @@ public: return cmd_buf.data(); } + /// Returns the command header from the IPC command buffer. + IPC::Header CommandHeader() const { + return {cmd_buf[0]}; + } + /** * Returns the session through which this request was made. This can be used as a map key to * access per-client data on services. diff --git a/src/core/hle/kernel/ipc_debugger/recorder.cpp b/src/core/hle/kernel/ipc_debugger/recorder.cpp index 546b85034..5c2bfd2ee 100644 --- a/src/core/hle/kernel/ipc_debugger/recorder.cpp +++ b/src/core/hle/kernel/ipc_debugger/recorder.cpp @@ -100,7 +100,7 @@ void Recorder::SetRequestInfo(const std::shared_ptr& client_thre record.function_name = std::dynamic_pointer_cast( client_session->parent->port->GetServerPort()->hle_handler) - ->GetFunctionName(record.untranslated_request_cmdbuf[0]); + ->GetFunctionName({record.untranslated_request_cmdbuf[0]}); } client_session_map.erase(thread_id); diff --git a/src/core/hle/service/ac/ac.cpp b/src/core/hle/service/ac/ac.cpp index 13014f143..3293eb611 100644 --- a/src/core/hle/service/ac/ac.cpp +++ b/src/core/hle/service/ac/ac.cpp @@ -21,7 +21,7 @@ namespace Service::AC { void Module::Interface::CreateDefaultConfig(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1, 0, 0); + IPC::RequestParser rp(ctx); std::vector buffer(sizeof(ACConfig)); std::memcpy(buffer.data(), &ac->default_config, buffer.size()); @@ -34,7 +34,7 @@ void Module::Interface::CreateDefaultConfig(Kernel::HLERequestContext& ctx) { } void Module::Interface::ConnectAsync(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x4, 0, 6); + IPC::RequestParser rp(ctx); rp.Skip(2, false); // ProcessId descriptor ac->connect_event = rp.PopObject(); @@ -53,7 +53,7 @@ void Module::Interface::ConnectAsync(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetConnectResult(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x5, 0, 2); + IPC::RequestParser rp(ctx); rp.Skip(2, false); // ProcessId descriptor IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -61,7 +61,7 @@ void Module::Interface::GetConnectResult(Kernel::HLERequestContext& ctx) { } void Module::Interface::CloseAsync(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x8, 0, 4); + IPC::RequestParser rp(ctx); rp.Skip(2, false); // ProcessId descriptor ac->close_event = rp.PopObject(); @@ -82,7 +82,7 @@ void Module::Interface::CloseAsync(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetCloseResult(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 0, 2); + IPC::RequestParser rp(ctx); rp.Skip(2, false); // ProcessId descriptor IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -92,7 +92,7 @@ void Module::Interface::GetCloseResult(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetWifiStatus(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xD, 0, 0); + IPC::RequestParser rp(ctx); bool can_reach_internet = false; std::shared_ptr socu_module = SOC::GetService(Core::System::GetInstance()); @@ -109,7 +109,7 @@ void Module::Interface::GetWifiStatus(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetInfraPriority(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x27, 0, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] const std::vector& ac_config = rp.PopStaticBuffer(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -120,7 +120,7 @@ void Module::Interface::GetInfraPriority(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetRequestEulaVersion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2D, 2, 2); + IPC::RequestParser rp(ctx); u32 major = rp.Pop(); u32 minor = rp.Pop(); @@ -137,7 +137,7 @@ void Module::Interface::SetRequestEulaVersion(Kernel::HLERequestContext& ctx) { } void Module::Interface::RegisterDisconnectEvent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x30, 0, 4); + IPC::RequestParser rp(ctx); rp.Skip(2, false); // ProcessId descriptor ac->disconnect_event = rp.PopObject(); @@ -152,7 +152,7 @@ void Module::Interface::RegisterDisconnectEvent(Kernel::HLERequestContext& ctx) } void Module::Interface::IsConnected(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x3E, 1, 2); + IPC::RequestParser rp(ctx); u32 unk = rp.Pop(); u32 unk_descriptor = rp.Pop(); u32 unk_param = rp.Pop(); @@ -166,7 +166,7 @@ void Module::Interface::IsConnected(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetClientVersion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x40, 1, 2); + IPC::RequestParser rp(ctx); u32 version = rp.Pop(); rp.Skip(2, false); // ProcessId descriptor diff --git a/src/core/hle/service/ac/ac_i.cpp b/src/core/hle/service/ac/ac_i.cpp index 52e974091..84a643e8b 100644 --- a/src/core/hle/service/ac/ac_i.cpp +++ b/src/core/hle/service/ac/ac_i.cpp @@ -10,26 +10,26 @@ namespace Service::AC { AC_I::AC_I(std::shared_ptr ac) : Module::Interface(std::move(ac), "ac:i", 10) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 0), &AC_I::CreateDefaultConfig, "CreateDefaultConfig"}, - {IPC::MakeHeader(0x0004, 0, 6), &AC_I::ConnectAsync, "ConnectAsync"}, - {IPC::MakeHeader(0x0005, 0, 2), &AC_I::GetConnectResult, "GetConnectResult"}, - {IPC::MakeHeader(0x0007, 0, 2), nullptr, "CancelConnectAsync"}, - {IPC::MakeHeader(0x0008, 0, 4), &AC_I::CloseAsync, "CloseAsync"}, - {IPC::MakeHeader(0x0009, 0, 2), &AC_I::GetCloseResult, "GetCloseResult"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetLastErrorCode"}, - {IPC::MakeHeader(0x000C, 0, 0), nullptr, "GetStatus"}, - {IPC::MakeHeader(0x000D, 0, 0), &AC_I::GetWifiStatus, "GetWifiStatus"}, - {IPC::MakeHeader(0x000E, 1, 2), nullptr, "GetCurrentAPInfo"}, - {IPC::MakeHeader(0x0010, 1, 2), nullptr, "GetCurrentNZoneInfo"}, - {IPC::MakeHeader(0x0011, 1, 2), nullptr, "GetNZoneApNumService"}, - {IPC::MakeHeader(0x001D, 1, 2), nullptr, "ScanAPs"}, - {IPC::MakeHeader(0x0024, 1, 2), nullptr, "AddDenyApType"}, - {IPC::MakeHeader(0x0027, 0, 2), &AC_I::GetInfraPriority, "GetInfraPriority"}, - {IPC::MakeHeader(0x002D, 2, 2), &AC_I::SetRequestEulaVersion, "SetRequestEulaVersion"}, - {IPC::MakeHeader(0x0030, 0, 4), &AC_I::RegisterDisconnectEvent, "RegisterDisconnectEvent"}, - {IPC::MakeHeader(0x003C, 1, 2), nullptr, "GetAPSSIDList"}, - {IPC::MakeHeader(0x003E, 1, 2), &AC_I::IsConnected, "IsConnected"}, - {IPC::MakeHeader(0x0040, 1, 2), &AC_I::SetClientVersion, "SetClientVersion"}, + {0x0001, &AC_I::CreateDefaultConfig, "CreateDefaultConfig"}, + {0x0004, &AC_I::ConnectAsync, "ConnectAsync"}, + {0x0005, &AC_I::GetConnectResult, "GetConnectResult"}, + {0x0007, nullptr, "CancelConnectAsync"}, + {0x0008, &AC_I::CloseAsync, "CloseAsync"}, + {0x0009, &AC_I::GetCloseResult, "GetCloseResult"}, + {0x000A, nullptr, "GetLastErrorCode"}, + {0x000C, nullptr, "GetStatus"}, + {0x000D, &AC_I::GetWifiStatus, "GetWifiStatus"}, + {0x000E, nullptr, "GetCurrentAPInfo"}, + {0x0010, nullptr, "GetCurrentNZoneInfo"}, + {0x0011, nullptr, "GetNZoneApNumService"}, + {0x001D, nullptr, "ScanAPs"}, + {0x0024, nullptr, "AddDenyApType"}, + {0x0027, &AC_I::GetInfraPriority, "GetInfraPriority"}, + {0x002D, &AC_I::SetRequestEulaVersion, "SetRequestEulaVersion"}, + {0x0030, &AC_I::RegisterDisconnectEvent, "RegisterDisconnectEvent"}, + {0x003C, nullptr, "GetAPSSIDList"}, + {0x003E, &AC_I::IsConnected, "IsConnected"}, + {0x0040, &AC_I::SetClientVersion, "SetClientVersion"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/ac/ac_u.cpp b/src/core/hle/service/ac/ac_u.cpp index cf1191edc..d6d0a6867 100644 --- a/src/core/hle/service/ac/ac_u.cpp +++ b/src/core/hle/service/ac/ac_u.cpp @@ -10,26 +10,26 @@ namespace Service::AC { AC_U::AC_U(std::shared_ptr ac) : Module::Interface(std::move(ac), "ac:u", 10) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 0), &AC_U::CreateDefaultConfig, "CreateDefaultConfig"}, - {IPC::MakeHeader(0x0004, 0, 6), &AC_U::ConnectAsync, "ConnectAsync"}, - {IPC::MakeHeader(0x0005, 0, 2), &AC_U::GetConnectResult, "GetConnectResult"}, - {IPC::MakeHeader(0x0007, 0, 2), nullptr, "CancelConnectAsync"}, - {IPC::MakeHeader(0x0008, 0, 4), &AC_U::CloseAsync, "CloseAsync"}, - {IPC::MakeHeader(0x0009, 0, 2), &AC_U::GetCloseResult, "GetCloseResult"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetLastErrorCode"}, - {IPC::MakeHeader(0x000C, 0, 0), nullptr, "GetStatus"}, - {IPC::MakeHeader(0x000D, 0, 0), &AC_U::GetWifiStatus, "GetWifiStatus"}, - {IPC::MakeHeader(0x000E, 1, 2), nullptr, "GetCurrentAPInfo"}, - {IPC::MakeHeader(0x0010, 1, 2), nullptr, "GetCurrentNZoneInfo"}, - {IPC::MakeHeader(0x0011, 1, 2), nullptr, "GetNZoneApNumService"}, - {IPC::MakeHeader(0x001D, 1, 2), nullptr, "ScanAPs"}, - {IPC::MakeHeader(0x0024, 1, 2), nullptr, "AddDenyApType"}, - {IPC::MakeHeader(0x0027, 0, 2), &AC_U::GetInfraPriority, "GetInfraPriority"}, - {IPC::MakeHeader(0x002D, 2, 2), &AC_U::SetRequestEulaVersion, "SetRequestEulaVersion"}, - {IPC::MakeHeader(0x0030, 0, 4), &AC_U::RegisterDisconnectEvent, "RegisterDisconnectEvent"}, - {IPC::MakeHeader(0x003C, 1, 2), nullptr, "GetAPSSIDList"}, - {IPC::MakeHeader(0x003E, 1, 2), &AC_U::IsConnected, "IsConnected"}, - {IPC::MakeHeader(0x0040, 1, 2), &AC_U::SetClientVersion, "SetClientVersion"}, + {0x0001, &AC_U::CreateDefaultConfig, "CreateDefaultConfig"}, + {0x0004, &AC_U::ConnectAsync, "ConnectAsync"}, + {0x0005, &AC_U::GetConnectResult, "GetConnectResult"}, + {0x0007, nullptr, "CancelConnectAsync"}, + {0x0008, &AC_U::CloseAsync, "CloseAsync"}, + {0x0009, &AC_U::GetCloseResult, "GetCloseResult"}, + {0x000A, nullptr, "GetLastErrorCode"}, + {0x000C, nullptr, "GetStatus"}, + {0x000D, &AC_U::GetWifiStatus, "GetWifiStatus"}, + {0x000E, nullptr, "GetCurrentAPInfo"}, + {0x0010, nullptr, "GetCurrentNZoneInfo"}, + {0x0011, nullptr, "GetNZoneApNumService"}, + {0x001D, nullptr, "ScanAPs"}, + {0x0024, nullptr, "AddDenyApType"}, + {0x0027, &AC_U::GetInfraPriority, "GetInfraPriority"}, + {0x002D, &AC_U::SetRequestEulaVersion, "SetRequestEulaVersion"}, + {0x0030, &AC_U::RegisterDisconnectEvent, "RegisterDisconnectEvent"}, + {0x003C, nullptr, "GetAPSSIDList"}, + {0x003E, &AC_U::IsConnected, "IsConnected"}, + {0x0040, &AC_U::SetClientVersion, "SetClientVersion"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/act/act.cpp b/src/core/hle/service/act/act.cpp index 9a42d733e..cd9de87fe 100644 --- a/src/core/hle/service/act/act.cpp +++ b/src/core/hle/service/act/act.cpp @@ -16,7 +16,7 @@ Module::Interface::Interface(std::shared_ptr act, const char* name) Module::Interface::~Interface() = default; void Module::Interface::Initialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1, 2, 4); // 0x10084 + IPC::RequestParser rp(ctx); const auto sdk_version = rp.Pop(); const auto shared_memory_size = rp.Pop(); const auto caller_pid = rp.PopPID(); @@ -31,7 +31,7 @@ void Module::Interface::Initialize(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetAccountDataBlock(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x6, 3, 2); // 0x600C2 + IPC::RequestParser rp(ctx); const auto unknown = rp.Pop(); const auto size = rp.Pop(); const auto block_id = rp.Pop(); diff --git a/src/core/hle/service/act/act_a.cpp b/src/core/hle/service/act/act_a.cpp index e75ef0908..41d8da4a4 100644 --- a/src/core/hle/service/act/act_a.cpp +++ b/src/core/hle/service/act/act_a.cpp @@ -11,16 +11,16 @@ ACT_A::ACT_A(std::shared_ptr act) : Module::Interface(std::move(act), "a const FunctionInfo functions[] = { // act:u shared commands // clang-format off - {IPC::MakeHeader(0x0001, 2, 4), &ACT_A::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0002, 1, 0), nullptr, "GetErrorCode"}, - {IPC::MakeHeader(0x0006, 3, 2), &ACT_A::GetAccountDataBlock, "GetAccountDataBlock"}, - {IPC::MakeHeader(0x000B, 1, 2), nullptr, "AcquireEulaList"}, - {IPC::MakeHeader(0x000D, 1, 0), nullptr, "GenerateUuid"}, + {0x0001, &ACT_A::Initialize, "Initialize"}, + {0x0002, nullptr, "GetErrorCode"}, + {0x0006, &ACT_A::GetAccountDataBlock, "GetAccountDataBlock"}, + {0x000B, nullptr, "AcquireEulaList"}, + {0x000D, nullptr, "GenerateUuid"}, // act:a - {IPC::MakeHeader(0x0413, 3, 2), nullptr, "UpdateMiiImage"}, - {IPC::MakeHeader(0x041B, 5, 2), nullptr, "AgreeEula"}, - {IPC::MakeHeader(0x0421, 1, 2), nullptr, "UploadMii"}, - {IPC::MakeHeader(0x0423, 2, 2), nullptr, "ValidateMailAddress"}, + {0x0413, nullptr, "UpdateMiiImage"}, + {0x041B, nullptr, "AgreeEula"}, + {0x0421, nullptr, "UploadMii"}, + {0x0423, nullptr, "ValidateMailAddress"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/act/act_u.cpp b/src/core/hle/service/act/act_u.cpp index 42ca849f3..d28c3b07f 100644 --- a/src/core/hle/service/act/act_u.cpp +++ b/src/core/hle/service/act/act_u.cpp @@ -10,11 +10,11 @@ namespace Service::ACT { ACT_U::ACT_U(std::shared_ptr act) : Module::Interface(std::move(act), "act:u") { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 2, 4), &ACT_U::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0002, 1, 0), nullptr, "GetErrorCode"}, - {IPC::MakeHeader(0x0006, 3, 2), &ACT_U::GetAccountDataBlock, "GetAccountDataBlock"}, - {IPC::MakeHeader(0x000B, 1, 2), nullptr, "AcquireEulaList"}, - {IPC::MakeHeader(0x000D, 1, 0), nullptr, "GenerateUuid"}, + {0x0001, &ACT_U::Initialize, "Initialize"}, + {0x0002, nullptr, "GetErrorCode"}, + {0x0006, &ACT_U::GetAccountDataBlock, "GetAccountDataBlock"}, + {0x000B, nullptr, "AcquireEulaList"}, + {0x000D, nullptr, "GenerateUuid"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index 124253578..70e4ac7c8 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp @@ -684,7 +684,7 @@ Module::Interface::Interface(std::shared_ptr am, const char* name, u32 m Module::Interface::~Interface() = default; void Module::Interface::GetNumPrograms(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0001, 1, 0); // 0x00010040 + IPC::RequestParser rp(ctx); u32 media_type = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -693,7 +693,7 @@ void Module::Interface::GetNumPrograms(Kernel::HLERequestContext& ctx) { } void Module::Interface::FindDLCContentInfos(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1002, 4, 4); // 0x10020104 + IPC::RequestParser rp(ctx); auto media_type = static_cast(rp.Pop()); u64 title_id = rp.Pop(); @@ -758,7 +758,7 @@ void Module::Interface::FindDLCContentInfos(Kernel::HLERequestContext& ctx) { } void Module::Interface::ListDLCContentInfos(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1003, 5, 2); // 0x10030142 + IPC::RequestParser rp(ctx); u32 content_count = rp.Pop(); auto media_type = static_cast(rp.Pop()); @@ -811,7 +811,7 @@ void Module::Interface::ListDLCContentInfos(Kernel::HLERequestContext& ctx) { } void Module::Interface::DeleteContents(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1004, 4, 2); // 0x10040102 + IPC::RequestParser rp(ctx); u8 media_type = rp.Pop(); u64 title_id = rp.Pop(); u32 content_count = rp.Pop(); @@ -825,7 +825,7 @@ void Module::Interface::DeleteContents(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetProgramList(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0002, 2, 2); // 0x00020082 + IPC::RequestParser rp(ctx); u32 count = rp.Pop(); u8 media_type = rp.Pop(); @@ -879,7 +879,7 @@ ResultCode GetTitleInfoFromList(std::span title_id_list, } void Module::Interface::GetProgramInfos(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0003, 2, 4); // 0x00030084 + IPC::RequestParser rp(ctx); auto media_type = static_cast(rp.Pop()); u32 title_count = rp.Pop(); @@ -898,7 +898,7 @@ void Module::Interface::GetProgramInfos(Kernel::HLERequestContext& ctx) { } void Module::Interface::DeleteUserProgram(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0004, 3, 0); + IPC::RequestParser rp(ctx); auto media_type = rp.PopEnum(); u64 title_id = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -926,7 +926,7 @@ void Module::Interface::DeleteUserProgram(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetProductCode(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0005, 3, 0); + IPC::RequestParser rp(ctx); FS::MediaType media_type = rp.PopEnum(); u64 title_id = rp.Pop(); std::string path = GetTitleContentPath(media_type, title_id); @@ -952,7 +952,7 @@ void Module::Interface::GetProductCode(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetDLCTitleInfos(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1005, 2, 4); // 0x10050084 + IPC::RequestParser rp(ctx); auto media_type = static_cast(rp.Pop()); u32 title_count = rp.Pop(); @@ -985,7 +985,7 @@ void Module::Interface::GetDLCTitleInfos(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetPatchTitleInfos(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x100D, 2, 4); // 0x100D0084 + IPC::RequestParser rp(ctx); auto media_type = static_cast(rp.Pop()); u32 title_count = rp.Pop(); @@ -1018,7 +1018,7 @@ void Module::Interface::GetPatchTitleInfos(Kernel::HLERequestContext& ctx) { } void Module::Interface::ListDataTitleTicketInfos(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1007, 4, 2); // 0x10070102 + IPC::RequestParser rp(ctx); u32 ticket_count = rp.Pop(); u64 title_id = rp.Pop(); u32 start_index = rp.Pop(); @@ -1046,7 +1046,7 @@ void Module::Interface::ListDataTitleTicketInfos(Kernel::HLERequestContext& ctx) } void Module::Interface::GetDLCContentInfoCount(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1001, 3, 0); // 0x100100C0 + IPC::RequestParser rp(ctx); auto media_type = static_cast(rp.Pop()); u64 title_id = rp.Pop(); @@ -1076,7 +1076,7 @@ void Module::Interface::GetDLCContentInfoCount(Kernel::HLERequestContext& ctx) { } void Module::Interface::DeleteTicket(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0007, 2, 0); // 0x00070080 + IPC::RequestParser rp(ctx); u64 title_id = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -1085,7 +1085,7 @@ void Module::Interface::DeleteTicket(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNumTickets(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0008, 0, 0); // 0x00080000 + IPC::RequestParser rp(ctx); u32 ticket_count = 0; for (const auto& title_list : am->am_title_list) { @@ -1099,7 +1099,7 @@ void Module::Interface::GetNumTickets(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTicketList(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0009, 2, 2); // 0x00090082 + IPC::RequestParser rp(ctx); u32 ticket_list_count = rp.Pop(); u32 ticket_index = rp.Pop(); auto& ticket_tids_out = rp.PopMappedBuffer(); @@ -1122,7 +1122,7 @@ void Module::Interface::GetTicketList(Kernel::HLERequestContext& ctx) { } void Module::Interface::NeedsCleanup(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0013, 1, 0); // 0x00130040 + IPC::RequestParser rp(ctx); const auto media_type = rp.Pop(); LOG_DEBUG(Service_AM, "(STUBBED) media_type=0x{:02x}", media_type); @@ -1133,7 +1133,7 @@ void Module::Interface::NeedsCleanup(Kernel::HLERequestContext& ctx) { } void Module::Interface::QueryAvailableTitleDatabase(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0019, 1, 0); // 0x190040 + IPC::RequestParser rp(ctx); u8 media_type = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -1144,7 +1144,7 @@ void Module::Interface::QueryAvailableTitleDatabase(Kernel::HLERequestContext& c } void Module::Interface::CheckContentRights(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0025, 3, 0); // 0x2500C0 + IPC::RequestParser rp(ctx); u64 tid = rp.Pop(); u16 content_index = rp.Pop(); @@ -1161,7 +1161,7 @@ void Module::Interface::CheckContentRights(Kernel::HLERequestContext& ctx) { } void Module::Interface::CheckContentRightsIgnorePlatform(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x002D, 3, 0); // 0x2D00C0 + IPC::RequestParser rp(ctx); u64 tid = rp.Pop(); u16 content_index = rp.Pop(); @@ -1177,7 +1177,7 @@ void Module::Interface::CheckContentRightsIgnorePlatform(Kernel::HLERequestConte } void Module::Interface::BeginImportProgram(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0402, 1, 0); // 0x04020040 + IPC::RequestParser rp(ctx); auto media_type = static_cast(rp.Pop()); if (am->cia_installing) { @@ -1203,7 +1203,7 @@ void Module::Interface::BeginImportProgram(Kernel::HLERequestContext& ctx) { } void Module::Interface::BeginImportProgramTemporarily(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0403, 0, 0); // 0x04030000 + IPC::RequestParser rp(ctx); if (am->cia_installing) { IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -1230,7 +1230,7 @@ void Module::Interface::BeginImportProgramTemporarily(Kernel::HLERequestContext& } void Module::Interface::EndImportProgram(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0405, 0, 2); // 0x04050002 + IPC::RequestParser rp(ctx); [[maybe_unused]] const auto cia = rp.PopObject(); am->ScanForAllTitles(); @@ -1241,7 +1241,7 @@ void Module::Interface::EndImportProgram(Kernel::HLERequestContext& ctx) { } void Module::Interface::EndImportProgramWithoutCommit(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0406, 0, 2); // 0x04060002 + IPC::RequestParser rp(ctx); [[maybe_unused]] const auto cia = rp.PopObject(); // Note: This function is basically a no-op for us since we don't use title.db or ticket.db @@ -1254,7 +1254,7 @@ void Module::Interface::EndImportProgramWithoutCommit(Kernel::HLERequestContext& } void Module::Interface::CommitImportPrograms(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0407, 3, 2); // 0x040700C2 + IPC::RequestParser rp(ctx); [[maybe_unused]] const auto media_type = static_cast(rp.Pop()); [[maybe_unused]] const u32 title_count = rp.Pop(); [[maybe_unused]] const u8 database = rp.Pop(); @@ -1341,7 +1341,7 @@ ResultVal> GetFileFromSession( } void Module::Interface::GetProgramInfoFromCia(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0408, 1, 2); // 0x04080042 + IPC::RequestParser rp(ctx); [[maybe_unused]] const auto media_type = static_cast(rp.Pop()); auto cia = rp.PopObject(); @@ -1378,7 +1378,7 @@ void Module::Interface::GetProgramInfoFromCia(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetSystemMenuDataFromCia(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0409, 0, 4); // 0x04090004 + IPC::RequestParser rp(ctx); auto cia = rp.PopObject(); auto& output_buffer = rp.PopMappedBuffer(); @@ -1422,7 +1422,7 @@ void Module::Interface::GetSystemMenuDataFromCia(Kernel::HLERequestContext& ctx) } void Module::Interface::GetDependencyListFromCia(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x040A, 0, 2); // 0x040A0002 + IPC::RequestParser rp(ctx); auto cia = rp.PopObject(); auto file_res = GetFileFromSession(cia); @@ -1449,7 +1449,7 @@ void Module::Interface::GetDependencyListFromCia(Kernel::HLERequestContext& ctx) } void Module::Interface::GetTransferSizeFromCia(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x040B, 0, 2); // 0x040B0002 + IPC::RequestParser rp(ctx); auto cia = rp.PopObject(); auto file_res = GetFileFromSession(cia); @@ -1473,7 +1473,7 @@ void Module::Interface::GetTransferSizeFromCia(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetCoreVersionFromCia(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x040C, 0, 2); // 0x040C0002 + IPC::RequestParser rp(ctx); auto cia = rp.PopObject(); auto file_res = GetFileFromSession(cia); @@ -1497,7 +1497,7 @@ void Module::Interface::GetCoreVersionFromCia(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetRequiredSizeFromCia(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x040D, 1, 2); // 0x040D0042 + IPC::RequestParser rp(ctx); [[maybe_unused]] const auto media_type = static_cast(rp.Pop()); auto cia = rp.PopObject(); @@ -1525,7 +1525,7 @@ void Module::Interface::GetRequiredSizeFromCia(Kernel::HLERequestContext& ctx) { } void Module::Interface::DeleteProgram(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0410, 3, 0); + IPC::RequestParser rp(ctx); auto media_type = rp.PopEnum(); u64 title_id = rp.Pop(); LOG_INFO(Service_AM, "Deleting title 0x{:016x}", title_id); @@ -1545,7 +1545,7 @@ void Module::Interface::DeleteProgram(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetSystemUpdaterMutex(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x412, 0, 0); // 0x04120000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); rb.Push(RESULT_SUCCESS); @@ -1553,7 +1553,7 @@ void Module::Interface::GetSystemUpdaterMutex(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetMetaSizeFromCia(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0413, 0, 2); // 0x04130002 + IPC::RequestParser rp(ctx); auto cia = rp.PopObject(); auto file_res = GetFileFromSession(cia); @@ -1578,7 +1578,7 @@ void Module::Interface::GetMetaSizeFromCia(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetMetaDataFromCia(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0414, 1, 4); // 0x04140044 + IPC::RequestParser rp(ctx); u32 output_size = rp.Pop(); auto cia = rp.PopObject(); diff --git a/src/core/hle/service/am/am_app.cpp b/src/core/hle/service/am/am_app.cpp index b15834f05..27f3f6e61 100644 --- a/src/core/hle/service/am/am_app.cpp +++ b/src/core/hle/service/am/am_app.cpp @@ -10,19 +10,19 @@ namespace Service::AM { AM_APP::AM_APP(std::shared_ptr am) : Module::Interface(std::move(am), "am:app", 5) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x1001, 3, 0), &AM_APP::GetDLCContentInfoCount, "GetDLCContentInfoCount"}, - {IPC::MakeHeader(0x1002, 4, 4), &AM_APP::FindDLCContentInfos, "FindDLCContentInfos"}, - {IPC::MakeHeader(0x1003, 5, 2), &AM_APP::ListDLCContentInfos, "ListDLCContentInfos"}, - {IPC::MakeHeader(0x1004, 4, 2), &AM_APP::DeleteContents, "DeleteContents"}, - {IPC::MakeHeader(0x1005, 2, 4), &AM_APP::GetDLCTitleInfos, "GetDLCTitleInfos"}, - {IPC::MakeHeader(0x1006, 2, 0), nullptr, "GetNumDataTitleTickets"}, - {IPC::MakeHeader(0x1007, 4, 2), &AM_APP::ListDataTitleTicketInfos, "ListDataTitleTicketInfos"}, - {IPC::MakeHeader(0x1008, 7, 2), nullptr, "GetItemRights"}, - {IPC::MakeHeader(0x1009, 3, 0), nullptr, "IsDataTitleInUse"}, - {IPC::MakeHeader(0x100A, 0, 0), nullptr, "IsExternalTitleDatabaseInitialized"}, - {IPC::MakeHeader(0x100B, 3, 0), nullptr, "GetNumExistingContentInfos"}, - {IPC::MakeHeader(0x100C, 5, 2), nullptr, "ListExistingContentInfos"}, - {IPC::MakeHeader(0x100D, 2, 4), &AM_APP::GetPatchTitleInfos, "GetPatchTitleInfos"}, + {0x1001, &AM_APP::GetDLCContentInfoCount, "GetDLCContentInfoCount"}, + {0x1002, &AM_APP::FindDLCContentInfos, "FindDLCContentInfos"}, + {0x1003, &AM_APP::ListDLCContentInfos, "ListDLCContentInfos"}, + {0x1004, &AM_APP::DeleteContents, "DeleteContents"}, + {0x1005, &AM_APP::GetDLCTitleInfos, "GetDLCTitleInfos"}, + {0x1006, nullptr, "GetNumDataTitleTickets"}, + {0x1007, &AM_APP::ListDataTitleTicketInfos, "ListDataTitleTicketInfos"}, + {0x1008, nullptr, "GetItemRights"}, + {0x1009, nullptr, "IsDataTitleInUse"}, + {0x100A, nullptr, "IsExternalTitleDatabaseInitialized"}, + {0x100B, nullptr, "GetNumExistingContentInfos"}, + {0x100C, nullptr, "ListExistingContentInfos"}, + {0x100D, &AM_APP::GetPatchTitleInfos, "GetPatchTitleInfos"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/am/am_net.cpp b/src/core/hle/service/am/am_net.cpp index bb4c68f09..506579dc3 100644 --- a/src/core/hle/service/am/am_net.cpp +++ b/src/core/hle/service/am/am_net.cpp @@ -10,116 +10,116 @@ namespace Service::AM { AM_NET::AM_NET(std::shared_ptr am) : Module::Interface(std::move(am), "am:net", 5) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &AM_NET::GetNumPrograms, "GetNumPrograms"}, - {IPC::MakeHeader(0x0002, 2, 2), &AM_NET::GetProgramList, "GetProgramList"}, - {IPC::MakeHeader(0x0003, 2, 4), &AM_NET::GetProgramInfos, "GetProgramInfos"}, - {IPC::MakeHeader(0x0004, 3, 0), &AM_NET::DeleteUserProgram, "DeleteUserProgram"}, - {IPC::MakeHeader(0x0005, 3, 0), &AM_NET::GetProductCode, "GetProductCode"}, - {IPC::MakeHeader(0x0006, 3, 0), nullptr, "GetStorageId"}, - {IPC::MakeHeader(0x0007, 2, 0), &AM_NET::DeleteTicket, "DeleteTicket"}, - {IPC::MakeHeader(0x0008, 0, 0), &AM_NET::GetNumTickets, "GetNumTickets"}, - {IPC::MakeHeader(0x0009, 2, 2), &AM_NET::GetTicketList, "GetTicketList"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetDeviceID"}, - {IPC::MakeHeader(0x000B, 1, 0), nullptr, "GetNumImportTitleContexts"}, - {IPC::MakeHeader(0x000C, 2, 2), nullptr, "GetImportTitleContextList"}, - {IPC::MakeHeader(0x000D, 2, 4), nullptr, "GetImportTitleContexts"}, - {IPC::MakeHeader(0x000E, 3, 0), nullptr, "DeleteImportTitleContext"}, - {IPC::MakeHeader(0x000F, 3, 0), nullptr, "GetNumImportContentContexts"}, - {IPC::MakeHeader(0x0010, 4, 2), nullptr, "GetImportContentContextList"}, - {IPC::MakeHeader(0x0011, 4, 4), nullptr, "GetImportContentContexts"}, - {IPC::MakeHeader(0x0012, 4, 2), nullptr, "DeleteImportContentContexts"}, - {IPC::MakeHeader(0x0013, 1, 0), &AM_NET::NeedsCleanup, "NeedsCleanup"}, - {IPC::MakeHeader(0x0014, 1, 0), nullptr, "DoCleanup"}, - {IPC::MakeHeader(0x0015, 1, 0), nullptr, "DeleteAllImportContexts"}, - {IPC::MakeHeader(0x0016, 0, 0), nullptr, "DeleteAllTemporaryPrograms"}, - {IPC::MakeHeader(0x0017, 1, 4), nullptr, "ImportTwlBackupLegacy"}, - {IPC::MakeHeader(0x0018, 2, 0), nullptr, "InitializeTitleDatabase"}, - {IPC::MakeHeader(0x0019, 1, 0), nullptr, "QueryAvailableTitleDatabase"}, - {IPC::MakeHeader(0x001A, 3, 0), nullptr, "CalcTwlBackupSize"}, - {IPC::MakeHeader(0x001B, 5, 4), nullptr, "ExportTwlBackup"}, - {IPC::MakeHeader(0x001C, 2, 4), nullptr, "ImportTwlBackup"}, - {IPC::MakeHeader(0x001D, 0, 0), nullptr, "DeleteAllTwlUserPrograms"}, - {IPC::MakeHeader(0x001E, 3, 8), nullptr, "ReadTwlBackupInfo"}, - {IPC::MakeHeader(0x001F, 1, 0), nullptr, "DeleteAllExpiredUserPrograms"}, - {IPC::MakeHeader(0x0020, 0, 0), nullptr, "GetTwlArchiveResourceInfo"}, - {IPC::MakeHeader(0x0021, 1, 2), nullptr, "GetPersonalizedTicketInfoList"}, - {IPC::MakeHeader(0x0022, 2, 0), nullptr, "DeleteAllImportContextsFiltered"}, - {IPC::MakeHeader(0x0023, 2, 0), nullptr, "GetNumImportTitleContextsFiltered"}, - {IPC::MakeHeader(0x0024, 3, 2), nullptr, "GetImportTitleContextListFiltered"}, - {IPC::MakeHeader(0x0025, 3, 0), nullptr, "CheckContentRights"}, - {IPC::MakeHeader(0x0026, 1, 4), nullptr, "GetTicketLimitInfos"}, - {IPC::MakeHeader(0x0027, 1, 4), nullptr, "GetDemoLaunchInfos"}, - {IPC::MakeHeader(0x0028, 4, 8), nullptr, "ReadTwlBackupInfoEx"}, - {IPC::MakeHeader(0x0029, 2, 2), nullptr, "DeleteUserProgramsAtomically"}, - {IPC::MakeHeader(0x002A, 3, 0), nullptr, "GetNumExistingContentInfosSystem"}, - {IPC::MakeHeader(0x002B, 5, 2), nullptr, "ListExistingContentInfosSystem"}, - {IPC::MakeHeader(0x002C, 2, 4), nullptr, "GetProgramInfosIgnorePlatform"}, - {IPC::MakeHeader(0x002D, 3, 0), nullptr, "CheckContentRightsIgnorePlatform"}, - {IPC::MakeHeader(0x0401, 2, 0), nullptr, "UpdateFirmwareTo"}, - {IPC::MakeHeader(0x0402, 1, 0), &AM_NET::BeginImportProgram, "BeginImportProgram"}, - {IPC::MakeHeader(0x0403, 0, 0), nullptr, "BeginImportProgramTemporarily"}, - {IPC::MakeHeader(0x0404, 0, 2), nullptr, "CancelImportProgram"}, - {IPC::MakeHeader(0x0405, 0, 2), &AM_NET::EndImportProgram, "EndImportProgram"}, - {IPC::MakeHeader(0x0406, 0, 2), nullptr, "EndImportProgramWithoutCommit"}, - {IPC::MakeHeader(0x0407, 3, 2), nullptr, "CommitImportPrograms"}, - {IPC::MakeHeader(0x0408, 1, 2), &AM_NET::GetProgramInfoFromCia, "GetProgramInfoFromCia"}, - {IPC::MakeHeader(0x0409, 0, 4), &AM_NET::GetSystemMenuDataFromCia, "GetSystemMenuDataFromCia"}, - {IPC::MakeHeader(0x040A, 0, 2), &AM_NET::GetDependencyListFromCia, "GetDependencyListFromCia"}, - {IPC::MakeHeader(0x040B, 0, 2), &AM_NET::GetTransferSizeFromCia, "GetTransferSizeFromCia"}, - {IPC::MakeHeader(0x040C, 0, 2), &AM_NET::GetCoreVersionFromCia, "GetCoreVersionFromCia"}, - {IPC::MakeHeader(0x040D, 1, 2), &AM_NET::GetRequiredSizeFromCia, "GetRequiredSizeFromCia"}, - {IPC::MakeHeader(0x040E, 3, 2), nullptr, "CommitImportProgramsAndUpdateFirmwareAuto"}, - {IPC::MakeHeader(0x040F, 0, 0), nullptr, "UpdateFirmwareAuto"}, - {IPC::MakeHeader(0x0410, 3, 0), &AM_NET::DeleteProgram, "DeleteProgram"}, - {IPC::MakeHeader(0x0411, 1, 4), nullptr, "GetTwlProgramListForReboot"}, - {IPC::MakeHeader(0x0412, 0, 0), nullptr, "GetSystemUpdaterMutex"}, - {IPC::MakeHeader(0x0413, 0, 2), &AM_NET::GetMetaSizeFromCia, "GetMetaSizeFromCia"}, - {IPC::MakeHeader(0x0414, 1, 4), &AM_NET::GetMetaDataFromCia, "GetMetaDataFromCia"}, - {IPC::MakeHeader(0x0415, 2, 0), nullptr, "CheckDemoLaunchRights"}, - {IPC::MakeHeader(0x0416, 3, 0), nullptr, "GetInternalTitleLocationInfo"}, - {IPC::MakeHeader(0x0417, 3, 0), nullptr, "PerpetuateAgbSaveData"}, - {IPC::MakeHeader(0x0418, 1, 0), nullptr, "BeginImportProgramForOverWrite"}, - {IPC::MakeHeader(0x0419, 0, 0), nullptr, "BeginImportSystemProgram"}, - {IPC::MakeHeader(0x0801, 0, 0), nullptr, "BeginImportTicket"}, - {IPC::MakeHeader(0x0802, 0, 2), nullptr, "CancelImportTicket"}, - {IPC::MakeHeader(0x0803, 0, 2), nullptr, "EndImportTicket"}, - {IPC::MakeHeader(0x0804, 4, 0), nullptr, "BeginImportTitle"}, - {IPC::MakeHeader(0x0805, 0, 0), nullptr, "StopImportTitle"}, - {IPC::MakeHeader(0x0806, 3, 0), nullptr, "ResumeImportTitle"}, - {IPC::MakeHeader(0x0807, 0, 0), nullptr, "CancelImportTitle"}, - {IPC::MakeHeader(0x0808, 0, 0), nullptr, "EndImportTitle"}, - {IPC::MakeHeader(0x0809, 3, 2), nullptr, "CommitImportTitles"}, - {IPC::MakeHeader(0x080A, 0, 0), nullptr, "BeginImportTmd"}, - {IPC::MakeHeader(0x080B, 0, 2), nullptr, "CancelImportTmd"}, - {IPC::MakeHeader(0x080C, 1, 2), nullptr, "EndImportTmd"}, - {IPC::MakeHeader(0x080D, 1, 2), nullptr, "CreateImportContentContexts"}, - {IPC::MakeHeader(0x080E, 1, 0), nullptr, "BeginImportContent"}, - {IPC::MakeHeader(0x080F, 0, 2), nullptr, "StopImportContent"}, - {IPC::MakeHeader(0x0810, 1, 0), nullptr, "ResumeImportContent"}, - {IPC::MakeHeader(0x0811, 0, 2), nullptr, "CancelImportContent"}, - {IPC::MakeHeader(0x0812, 0, 2), nullptr, "EndImportContent"}, - {IPC::MakeHeader(0x0813, 0, 0), nullptr, "GetNumCurrentImportContentContexts"}, - {IPC::MakeHeader(0x0814, 1, 2), nullptr, "GetCurrentImportContentContextList"}, - {IPC::MakeHeader(0x0815, 1, 4), nullptr, "GetCurrentImportContentContexts"}, - {IPC::MakeHeader(0x0816, 5, 6), nullptr, "Sign"}, - {IPC::MakeHeader(0x0817, 5, 6), nullptr, "Verify"}, - {IPC::MakeHeader(0x0818, 1, 2), nullptr, "GetDeviceCert"}, - {IPC::MakeHeader(0x0819, 4, 8), nullptr, "ImportCertificates"}, - {IPC::MakeHeader(0x081A, 1, 2), nullptr, "ImportCertificate"}, - {IPC::MakeHeader(0x081B, 3, 2), nullptr, "CommitImportTitlesAndUpdateFirmwareAuto"}, - {IPC::MakeHeader(0x081C, 4, 0), nullptr, "DeleteTicketId"}, - {IPC::MakeHeader(0x081D, 2, 0), nullptr, "GetNumTicketIds"}, - {IPC::MakeHeader(0x081E, 4, 2), nullptr, "GetTicketIdList"}, - {IPC::MakeHeader(0x081F, 2, 0), nullptr, "GetNumTicketsOfProgram"}, - {IPC::MakeHeader(0x0820, 4, 2), nullptr, "ListTicketInfos"}, - {IPC::MakeHeader(0x0821, 5, 2), nullptr, "GetRightsOnlyTicketData"}, - {IPC::MakeHeader(0x0822, 0, 0), nullptr, "GetNumCurrentContentInfos"}, - {IPC::MakeHeader(0x0823, 1, 4), nullptr, "FindCurrentContentInfos"}, - {IPC::MakeHeader(0x0824, 2, 2), nullptr, "ListCurrentContentInfos"}, - {IPC::MakeHeader(0x0825, 4, 2), nullptr, "CalculateContextRequiredSize"}, - {IPC::MakeHeader(0x0826, 1, 2), nullptr, "UpdateImportContentContexts"}, - {IPC::MakeHeader(0x0827, 0, 0), nullptr, "DeleteAllDemoLaunchInfos"}, - {IPC::MakeHeader(0x0828, 3, 0), nullptr, "BeginImportTitleForOverWrite"}, + {0x0001, &AM_NET::GetNumPrograms, "GetNumPrograms"}, + {0x0002, &AM_NET::GetProgramList, "GetProgramList"}, + {0x0003, &AM_NET::GetProgramInfos, "GetProgramInfos"}, + {0x0004, &AM_NET::DeleteUserProgram, "DeleteUserProgram"}, + {0x0005, &AM_NET::GetProductCode, "GetProductCode"}, + {0x0006, nullptr, "GetStorageId"}, + {0x0007, &AM_NET::DeleteTicket, "DeleteTicket"}, + {0x0008, &AM_NET::GetNumTickets, "GetNumTickets"}, + {0x0009, &AM_NET::GetTicketList, "GetTicketList"}, + {0x000A, nullptr, "GetDeviceID"}, + {0x000B, nullptr, "GetNumImportTitleContexts"}, + {0x000C, nullptr, "GetImportTitleContextList"}, + {0x000D, nullptr, "GetImportTitleContexts"}, + {0x000E, nullptr, "DeleteImportTitleContext"}, + {0x000F, nullptr, "GetNumImportContentContexts"}, + {0x0010, nullptr, "GetImportContentContextList"}, + {0x0011, nullptr, "GetImportContentContexts"}, + {0x0012, nullptr, "DeleteImportContentContexts"}, + {0x0013, &AM_NET::NeedsCleanup, "NeedsCleanup"}, + {0x0014, nullptr, "DoCleanup"}, + {0x0015, nullptr, "DeleteAllImportContexts"}, + {0x0016, nullptr, "DeleteAllTemporaryPrograms"}, + {0x0017, nullptr, "ImportTwlBackupLegacy"}, + {0x0018, nullptr, "InitializeTitleDatabase"}, + {0x0019, nullptr, "QueryAvailableTitleDatabase"}, + {0x001A, nullptr, "CalcTwlBackupSize"}, + {0x001B, nullptr, "ExportTwlBackup"}, + {0x001C, nullptr, "ImportTwlBackup"}, + {0x001D, nullptr, "DeleteAllTwlUserPrograms"}, + {0x001E, nullptr, "ReadTwlBackupInfo"}, + {0x001F, nullptr, "DeleteAllExpiredUserPrograms"}, + {0x0020, nullptr, "GetTwlArchiveResourceInfo"}, + {0x0021, nullptr, "GetPersonalizedTicketInfoList"}, + {0x0022, nullptr, "DeleteAllImportContextsFiltered"}, + {0x0023, nullptr, "GetNumImportTitleContextsFiltered"}, + {0x0024, nullptr, "GetImportTitleContextListFiltered"}, + {0x0025, nullptr, "CheckContentRights"}, + {0x0026, nullptr, "GetTicketLimitInfos"}, + {0x0027, nullptr, "GetDemoLaunchInfos"}, + {0x0028, nullptr, "ReadTwlBackupInfoEx"}, + {0x0029, nullptr, "DeleteUserProgramsAtomically"}, + {0x002A, nullptr, "GetNumExistingContentInfosSystem"}, + {0x002B, nullptr, "ListExistingContentInfosSystem"}, + {0x002C, nullptr, "GetProgramInfosIgnorePlatform"}, + {0x002D, nullptr, "CheckContentRightsIgnorePlatform"}, + {0x0401, nullptr, "UpdateFirmwareTo"}, + {0x0402, &AM_NET::BeginImportProgram, "BeginImportProgram"}, + {0x0403, nullptr, "BeginImportProgramTemporarily"}, + {0x0404, nullptr, "CancelImportProgram"}, + {0x0405, &AM_NET::EndImportProgram, "EndImportProgram"}, + {0x0406, nullptr, "EndImportProgramWithoutCommit"}, + {0x0407, nullptr, "CommitImportPrograms"}, + {0x0408, &AM_NET::GetProgramInfoFromCia, "GetProgramInfoFromCia"}, + {0x0409, &AM_NET::GetSystemMenuDataFromCia, "GetSystemMenuDataFromCia"}, + {0x040A, &AM_NET::GetDependencyListFromCia, "GetDependencyListFromCia"}, + {0x040B, &AM_NET::GetTransferSizeFromCia, "GetTransferSizeFromCia"}, + {0x040C, &AM_NET::GetCoreVersionFromCia, "GetCoreVersionFromCia"}, + {0x040D, &AM_NET::GetRequiredSizeFromCia, "GetRequiredSizeFromCia"}, + {0x040E, nullptr, "CommitImportProgramsAndUpdateFirmwareAuto"}, + {0x040F, nullptr, "UpdateFirmwareAuto"}, + {0x0410, &AM_NET::DeleteProgram, "DeleteProgram"}, + {0x0411, nullptr, "GetTwlProgramListForReboot"}, + {0x0412, nullptr, "GetSystemUpdaterMutex"}, + {0x0413, &AM_NET::GetMetaSizeFromCia, "GetMetaSizeFromCia"}, + {0x0414, &AM_NET::GetMetaDataFromCia, "GetMetaDataFromCia"}, + {0x0415, nullptr, "CheckDemoLaunchRights"}, + {0x0416, nullptr, "GetInternalTitleLocationInfo"}, + {0x0417, nullptr, "PerpetuateAgbSaveData"}, + {0x0418, nullptr, "BeginImportProgramForOverWrite"}, + {0x0419, nullptr, "BeginImportSystemProgram"}, + {0x0801, nullptr, "BeginImportTicket"}, + {0x0802, nullptr, "CancelImportTicket"}, + {0x0803, nullptr, "EndImportTicket"}, + {0x0804, nullptr, "BeginImportTitle"}, + {0x0805, nullptr, "StopImportTitle"}, + {0x0806, nullptr, "ResumeImportTitle"}, + {0x0807, nullptr, "CancelImportTitle"}, + {0x0808, nullptr, "EndImportTitle"}, + {0x0809, nullptr, "CommitImportTitles"}, + {0x080A, nullptr, "BeginImportTmd"}, + {0x080B, nullptr, "CancelImportTmd"}, + {0x080C, nullptr, "EndImportTmd"}, + {0x080D, nullptr, "CreateImportContentContexts"}, + {0x080E, nullptr, "BeginImportContent"}, + {0x080F, nullptr, "StopImportContent"}, + {0x0810, nullptr, "ResumeImportContent"}, + {0x0811, nullptr, "CancelImportContent"}, + {0x0812, nullptr, "EndImportContent"}, + {0x0813, nullptr, "GetNumCurrentImportContentContexts"}, + {0x0814, nullptr, "GetCurrentImportContentContextList"}, + {0x0815, nullptr, "GetCurrentImportContentContexts"}, + {0x0816, nullptr, "Sign"}, + {0x0817, nullptr, "Verify"}, + {0x0818, nullptr, "GetDeviceCert"}, + {0x0819, nullptr, "ImportCertificates"}, + {0x081A, nullptr, "ImportCertificate"}, + {0x081B, nullptr, "CommitImportTitlesAndUpdateFirmwareAuto"}, + {0x081C, nullptr, "DeleteTicketId"}, + {0x081D, nullptr, "GetNumTicketIds"}, + {0x081E, nullptr, "GetTicketIdList"}, + {0x081F, nullptr, "GetNumTicketsOfProgram"}, + {0x0820, nullptr, "ListTicketInfos"}, + {0x0821, nullptr, "GetRightsOnlyTicketData"}, + {0x0822, nullptr, "GetNumCurrentContentInfos"}, + {0x0823, nullptr, "FindCurrentContentInfos"}, + {0x0824, nullptr, "ListCurrentContentInfos"}, + {0x0825, nullptr, "CalculateContextRequiredSize"}, + {0x0826, nullptr, "UpdateImportContentContexts"}, + {0x0827, nullptr, "DeleteAllDemoLaunchInfos"}, + {0x0828, nullptr, "BeginImportTitleForOverWrite"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/am/am_sys.cpp b/src/core/hle/service/am/am_sys.cpp index 248e8d4a5..c0b394f0b 100644 --- a/src/core/hle/service/am/am_sys.cpp +++ b/src/core/hle/service/am/am_sys.cpp @@ -10,64 +10,64 @@ namespace Service::AM { AM_SYS::AM_SYS(std::shared_ptr am) : Module::Interface(std::move(am), "am:sys", 5) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &AM_SYS::GetNumPrograms, "GetNumPrograms"}, - {IPC::MakeHeader(0x0002, 2, 2), &AM_SYS::GetProgramList, "GetProgramList"}, - {IPC::MakeHeader(0x0003, 2, 4), &AM_SYS::GetProgramInfos, "GetProgramInfos"}, - {IPC::MakeHeader(0x0004, 3, 0), &AM_SYS::DeleteUserProgram, "DeleteUserProgram"}, - {IPC::MakeHeader(0x0005, 3, 0), &AM_SYS::GetProductCode, "GetProductCode"}, - {IPC::MakeHeader(0x0006, 3, 0), nullptr, "GetStorageId"}, - {IPC::MakeHeader(0x0007, 2, 0), &AM_SYS::DeleteTicket, "DeleteTicket"}, - {IPC::MakeHeader(0x0008, 0, 0), &AM_SYS::GetNumTickets, "GetNumTickets"}, - {IPC::MakeHeader(0x0009, 2, 2), &AM_SYS::GetTicketList, "GetTicketList"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetDeviceID"}, - {IPC::MakeHeader(0x000B, 1, 0), nullptr, "GetNumImportTitleContexts"}, - {IPC::MakeHeader(0x000C, 2, 2), nullptr, "GetImportTitleContextList"}, - {IPC::MakeHeader(0x000D, 2, 4), nullptr, "GetImportTitleContexts"}, - {IPC::MakeHeader(0x000E, 3, 0), nullptr, "DeleteImportTitleContext"}, - {IPC::MakeHeader(0x000F, 3, 0), nullptr, "GetNumImportContentContexts"}, - {IPC::MakeHeader(0x0010, 4, 2), nullptr, "GetImportContentContextList"}, - {IPC::MakeHeader(0x0011, 4, 4), nullptr, "GetImportContentContexts"}, - {IPC::MakeHeader(0x0012, 4, 2), nullptr, "DeleteImportContentContexts"}, - {IPC::MakeHeader(0x0013, 1, 0), &AM_SYS::NeedsCleanup, "NeedsCleanup"}, - {IPC::MakeHeader(0x0014, 1, 0), nullptr, "DoCleanup"}, - {IPC::MakeHeader(0x0015, 1, 0), nullptr, "DeleteAllImportContexts"}, - {IPC::MakeHeader(0x0016, 0, 0), nullptr, "DeleteAllTemporaryPrograms"}, - {IPC::MakeHeader(0x0017, 1, 4), nullptr, "ImportTwlBackupLegacy"}, - {IPC::MakeHeader(0x0018, 2, 0), nullptr, "InitializeTitleDatabase"}, - {IPC::MakeHeader(0x0019, 1, 0), &AM_SYS::QueryAvailableTitleDatabase, "QueryAvailableTitleDatabase"}, - {IPC::MakeHeader(0x001A, 3, 0), nullptr, "CalcTwlBackupSize"}, - {IPC::MakeHeader(0x001B, 5, 4), nullptr, "ExportTwlBackup"}, - {IPC::MakeHeader(0x001C, 2, 4), nullptr, "ImportTwlBackup"}, - {IPC::MakeHeader(0x001D, 0, 0), nullptr, "DeleteAllTwlUserPrograms"}, - {IPC::MakeHeader(0x001E, 3, 8), nullptr, "ReadTwlBackupInfo"}, - {IPC::MakeHeader(0x001F, 1, 0), nullptr, "DeleteAllExpiredUserPrograms"}, - {IPC::MakeHeader(0x0020, 0, 0), nullptr, "GetTwlArchiveResourceInfo"}, - {IPC::MakeHeader(0x0021, 1, 2), nullptr, "GetPersonalizedTicketInfoList"}, - {IPC::MakeHeader(0x0022, 2, 0), nullptr, "DeleteAllImportContextsFiltered"}, - {IPC::MakeHeader(0x0023, 2, 0), nullptr, "GetNumImportTitleContextsFiltered"}, - {IPC::MakeHeader(0x0024, 3, 2), nullptr, "GetImportTitleContextListFiltered"}, - {IPC::MakeHeader(0x0025, 3, 0), &AM_SYS::CheckContentRights, "CheckContentRights"}, - {IPC::MakeHeader(0x0026, 1, 4), nullptr, "GetTicketLimitInfos"}, - {IPC::MakeHeader(0x0027, 1, 4), nullptr, "GetDemoLaunchInfos"}, - {IPC::MakeHeader(0x0028, 4, 8), nullptr, "ReadTwlBackupInfoEx"}, - {IPC::MakeHeader(0x0029, 2, 2), nullptr, "DeleteUserProgramsAtomically"}, - {IPC::MakeHeader(0x002A, 3, 0), nullptr, "GetNumExistingContentInfosSystem"}, - {IPC::MakeHeader(0x002B, 5, 2), nullptr, "ListExistingContentInfosSystem"}, - {IPC::MakeHeader(0x002C, 2, 4), nullptr, "GetProgramInfosIgnorePlatform"}, - {IPC::MakeHeader(0x002D, 3, 0), &AM_SYS::CheckContentRightsIgnorePlatform, "CheckContentRightsIgnorePlatform"}, - {IPC::MakeHeader(0x1001, 3, 0), &AM_SYS::GetDLCContentInfoCount, "GetDLCContentInfoCount"}, - {IPC::MakeHeader(0x1002, 4, 4), &AM_SYS::FindDLCContentInfos, "FindDLCContentInfos"}, - {IPC::MakeHeader(0x1003, 5, 2), &AM_SYS::ListDLCContentInfos, "ListDLCContentInfos"}, - {IPC::MakeHeader(0x1004, 4, 2), &AM_SYS::DeleteContents, "DeleteContents"}, - {IPC::MakeHeader(0x1005, 2, 4), &AM_SYS::GetDLCTitleInfos, "GetDLCTitleInfos"}, - {IPC::MakeHeader(0x1006, 2, 0), nullptr, "GetNumDataTitleTickets"}, - {IPC::MakeHeader(0x1007, 4, 2), &AM_SYS::ListDataTitleTicketInfos, "ListDataTitleTicketInfos"}, - {IPC::MakeHeader(0x1008, 7, 2), nullptr, "GetItemRights"}, - {IPC::MakeHeader(0x1009, 3, 0), nullptr, "IsDataTitleInUse"}, - {IPC::MakeHeader(0x100A, 0, 0), nullptr, "IsExternalTitleDatabaseInitialized"}, - {IPC::MakeHeader(0x100B, 3, 0), nullptr, "GetNumExistingContentInfos"}, - {IPC::MakeHeader(0x100C, 5, 2), nullptr, "ListExistingContentInfos"}, - {IPC::MakeHeader(0x100D, 2, 4), &AM_SYS::GetPatchTitleInfos, "GetPatchTitleInfos"}, + {0x0001, &AM_SYS::GetNumPrograms, "GetNumPrograms"}, + {0x0002, &AM_SYS::GetProgramList, "GetProgramList"}, + {0x0003, &AM_SYS::GetProgramInfos, "GetProgramInfos"}, + {0x0004, &AM_SYS::DeleteUserProgram, "DeleteUserProgram"}, + {0x0005, &AM_SYS::GetProductCode, "GetProductCode"}, + {0x0006, nullptr, "GetStorageId"}, + {0x0007, &AM_SYS::DeleteTicket, "DeleteTicket"}, + {0x0008, &AM_SYS::GetNumTickets, "GetNumTickets"}, + {0x0009, &AM_SYS::GetTicketList, "GetTicketList"}, + {0x000A, nullptr, "GetDeviceID"}, + {0x000B, nullptr, "GetNumImportTitleContexts"}, + {0x000C, nullptr, "GetImportTitleContextList"}, + {0x000D, nullptr, "GetImportTitleContexts"}, + {0x000E, nullptr, "DeleteImportTitleContext"}, + {0x000F, nullptr, "GetNumImportContentContexts"}, + {0x0010, nullptr, "GetImportContentContextList"}, + {0x0011, nullptr, "GetImportContentContexts"}, + {0x0012, nullptr, "DeleteImportContentContexts"}, + {0x0013, &AM_SYS::NeedsCleanup, "NeedsCleanup"}, + {0x0014, nullptr, "DoCleanup"}, + {0x0015, nullptr, "DeleteAllImportContexts"}, + {0x0016, nullptr, "DeleteAllTemporaryPrograms"}, + {0x0017, nullptr, "ImportTwlBackupLegacy"}, + {0x0018, nullptr, "InitializeTitleDatabase"}, + {0x0019, &AM_SYS::QueryAvailableTitleDatabase, "QueryAvailableTitleDatabase"}, + {0x001A, nullptr, "CalcTwlBackupSize"}, + {0x001B, nullptr, "ExportTwlBackup"}, + {0x001C, nullptr, "ImportTwlBackup"}, + {0x001D, nullptr, "DeleteAllTwlUserPrograms"}, + {0x001E, nullptr, "ReadTwlBackupInfo"}, + {0x001F, nullptr, "DeleteAllExpiredUserPrograms"}, + {0x0020, nullptr, "GetTwlArchiveResourceInfo"}, + {0x0021, nullptr, "GetPersonalizedTicketInfoList"}, + {0x0022, nullptr, "DeleteAllImportContextsFiltered"}, + {0x0023, nullptr, "GetNumImportTitleContextsFiltered"}, + {0x0024, nullptr, "GetImportTitleContextListFiltered"}, + {0x0025, &AM_SYS::CheckContentRights, "CheckContentRights"}, + {0x0026, nullptr, "GetTicketLimitInfos"}, + {0x0027, nullptr, "GetDemoLaunchInfos"}, + {0x0028, nullptr, "ReadTwlBackupInfoEx"}, + {0x0029, nullptr, "DeleteUserProgramsAtomically"}, + {0x002A, nullptr, "GetNumExistingContentInfosSystem"}, + {0x002B, nullptr, "ListExistingContentInfosSystem"}, + {0x002C, nullptr, "GetProgramInfosIgnorePlatform"}, + {0x002D, &AM_SYS::CheckContentRightsIgnorePlatform, "CheckContentRightsIgnorePlatform"}, + {0x1001, &AM_SYS::GetDLCContentInfoCount, "GetDLCContentInfoCount"}, + {0x1002, &AM_SYS::FindDLCContentInfos, "FindDLCContentInfos"}, + {0x1003, &AM_SYS::ListDLCContentInfos, "ListDLCContentInfos"}, + {0x1004, &AM_SYS::DeleteContents, "DeleteContents"}, + {0x1005, &AM_SYS::GetDLCTitleInfos, "GetDLCTitleInfos"}, + {0x1006, nullptr, "GetNumDataTitleTickets"}, + {0x1007, &AM_SYS::ListDataTitleTicketInfos, "ListDataTitleTicketInfos"}, + {0x1008, nullptr, "GetItemRights"}, + {0x1009, nullptr, "IsDataTitleInUse"}, + {0x100A, nullptr, "IsExternalTitleDatabaseInitialized"}, + {0x100B, nullptr, "GetNumExistingContentInfos"}, + {0x100C, nullptr, "ListExistingContentInfos"}, + {0x100D, &AM_SYS::GetPatchTitleInfos, "GetPatchTitleInfos"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/am/am_u.cpp b/src/core/hle/service/am/am_u.cpp index a60408aee..b1d8450a5 100644 --- a/src/core/hle/service/am/am_u.cpp +++ b/src/core/hle/service/am/am_u.cpp @@ -10,76 +10,76 @@ namespace Service::AM { AM_U::AM_U(std::shared_ptr am) : Module::Interface(std::move(am), "am:u", 5) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &AM_U::GetNumPrograms, "GetNumPrograms"}, - {IPC::MakeHeader(0x0002, 2, 2), &AM_U::GetProgramList, "GetProgramList"}, - {IPC::MakeHeader(0x0003, 2, 4), &AM_U::GetProgramInfos, "GetProgramInfos"}, - {IPC::MakeHeader(0x0004, 3, 0), &AM_U::DeleteUserProgram, "DeleteUserProgram"}, - {IPC::MakeHeader(0x0005, 3, 0), &AM_U::GetProductCode, "GetProductCode"}, - {IPC::MakeHeader(0x0006, 3, 0), nullptr, "GetStorageId"}, - {IPC::MakeHeader(0x0007, 2, 0), &AM_U::DeleteTicket, "DeleteTicket"}, - {IPC::MakeHeader(0x0008, 0, 0), &AM_U::GetNumTickets, "GetNumTickets"}, - {IPC::MakeHeader(0x0009, 2, 2), &AM_U::GetTicketList, "GetTicketList"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetDeviceID"}, - {IPC::MakeHeader(0x000B, 1, 0), nullptr, "GetNumImportTitleContexts"}, - {IPC::MakeHeader(0x000C, 2, 2), nullptr, "GetImportTitleContextList"}, - {IPC::MakeHeader(0x000D, 2, 4), nullptr, "GetImportTitleContexts"}, - {IPC::MakeHeader(0x000E, 3, 0), nullptr, "DeleteImportTitleContext"}, - {IPC::MakeHeader(0x000F, 3, 0), nullptr, "GetNumImportContentContexts"}, - {IPC::MakeHeader(0x0010, 4, 2), nullptr, "GetImportContentContextList"}, - {IPC::MakeHeader(0x0011, 4, 4), nullptr, "GetImportContentContexts"}, - {IPC::MakeHeader(0x0012, 4, 2), nullptr, "DeleteImportContentContexts"}, - {IPC::MakeHeader(0x0013, 1, 0), &AM_U::NeedsCleanup, "NeedsCleanup"}, - {IPC::MakeHeader(0x0014, 1, 0), nullptr, "DoCleanup"}, - {IPC::MakeHeader(0x0015, 1, 0), nullptr, "DeleteAllImportContexts"}, - {IPC::MakeHeader(0x0016, 0, 0), nullptr, "DeleteAllTemporaryPrograms"}, - {IPC::MakeHeader(0x0017, 1, 4), nullptr, "ImportTwlBackupLegacy"}, - {IPC::MakeHeader(0x0018, 2, 0), nullptr, "InitializeTitleDatabase"}, - {IPC::MakeHeader(0x0019, 1, 0), nullptr, "QueryAvailableTitleDatabase"}, - {IPC::MakeHeader(0x001A, 3, 0), nullptr, "CalcTwlBackupSize"}, - {IPC::MakeHeader(0x001B, 5, 4), nullptr, "ExportTwlBackup"}, - {IPC::MakeHeader(0x001C, 2, 4), nullptr, "ImportTwlBackup"}, - {IPC::MakeHeader(0x001D, 0, 0), nullptr, "DeleteAllTwlUserPrograms"}, - {IPC::MakeHeader(0x001E, 3, 8), nullptr, "ReadTwlBackupInfo"}, - {IPC::MakeHeader(0x001F, 1, 0), nullptr, "DeleteAllExpiredUserPrograms"}, - {IPC::MakeHeader(0x0020, 0, 0), nullptr, "GetTwlArchiveResourceInfo"}, - {IPC::MakeHeader(0x0021, 1, 2), nullptr, "GetPersonalizedTicketInfoList"}, - {IPC::MakeHeader(0x0022, 2, 0), nullptr, "DeleteAllImportContextsFiltered"}, - {IPC::MakeHeader(0x0023, 2, 0), nullptr, "GetNumImportTitleContextsFiltered"}, - {IPC::MakeHeader(0x0024, 3, 2), nullptr, "GetImportTitleContextListFiltered"}, - {IPC::MakeHeader(0x0025, 3, 0), nullptr, "CheckContentRights"}, - {IPC::MakeHeader(0x0026, 1, 4), nullptr, "GetTicketLimitInfos"}, - {IPC::MakeHeader(0x0027, 1, 4), nullptr, "GetDemoLaunchInfos"}, - {IPC::MakeHeader(0x0028, 4, 8), nullptr, "ReadTwlBackupInfoEx"}, - {IPC::MakeHeader(0x0029, 2, 2), nullptr, "DeleteUserProgramsAtomically"}, - {IPC::MakeHeader(0x002A, 3, 0), nullptr, "GetNumExistingContentInfosSystem"}, - {IPC::MakeHeader(0x002B, 5, 2), nullptr, "ListExistingContentInfosSystem"}, - {IPC::MakeHeader(0x002C, 2, 4), nullptr, "GetProgramInfosIgnorePlatform"}, - {IPC::MakeHeader(0x002D, 3, 0), nullptr, "CheckContentRightsIgnorePlatform"}, - {IPC::MakeHeader(0x0401, 2, 0), nullptr, "UpdateFirmwareTo"}, - {IPC::MakeHeader(0x0402, 1, 0), &AM_U::BeginImportProgram, "BeginImportProgram"}, - {IPC::MakeHeader(0x0403, 0, 0), &AM_U::BeginImportProgramTemporarily, "BeginImportProgramTemporarily"}, - {IPC::MakeHeader(0x0404, 0, 2), nullptr, "CancelImportProgram"}, - {IPC::MakeHeader(0x0405, 0, 2), &AM_U::EndImportProgram, "EndImportProgram"}, - {IPC::MakeHeader(0x0406, 0, 2), &AM_U::EndImportProgramWithoutCommit, "EndImportProgramWithoutCommit"}, - {IPC::MakeHeader(0x0407, 3, 2), &AM_U::CommitImportPrograms, "CommitImportPrograms"}, - {IPC::MakeHeader(0x0408, 1, 2), &AM_U::GetProgramInfoFromCia, "GetProgramInfoFromCia"}, - {IPC::MakeHeader(0x0409, 0, 4), &AM_U::GetSystemMenuDataFromCia, "GetSystemMenuDataFromCia"}, - {IPC::MakeHeader(0x040A, 0, 2), &AM_U::GetDependencyListFromCia, "GetDependencyListFromCia"}, - {IPC::MakeHeader(0x040B, 0, 2), &AM_U::GetTransferSizeFromCia, "GetTransferSizeFromCia"}, - {IPC::MakeHeader(0x040C, 0, 2), &AM_U::GetCoreVersionFromCia, "GetCoreVersionFromCia"}, - {IPC::MakeHeader(0x040D, 1, 2), &AM_U::GetRequiredSizeFromCia, "GetRequiredSizeFromCia"}, - {IPC::MakeHeader(0x040E, 3, 2), nullptr, "CommitImportProgramsAndUpdateFirmwareAuto"}, - {IPC::MakeHeader(0x040F, 0, 0), nullptr, "UpdateFirmwareAuto"}, - {IPC::MakeHeader(0x0410, 3, 0), &AM_U::DeleteProgram, "DeleteProgram"}, - {IPC::MakeHeader(0x0411, 1, 4), nullptr, "GetTwlProgramListForReboot"}, - {IPC::MakeHeader(0x0412, 0, 0), &AM_U::GetSystemUpdaterMutex, "GetSystemUpdaterMutex"}, - {IPC::MakeHeader(0x0413, 0, 2), &AM_U::GetMetaSizeFromCia, "GetMetaSizeFromCia"}, - {IPC::MakeHeader(0x0414, 1, 4), &AM_U::GetMetaDataFromCia, "GetMetaDataFromCia"}, - {IPC::MakeHeader(0x0415, 2, 0), nullptr, "CheckDemoLaunchRights"}, - {IPC::MakeHeader(0x0416, 3, 0), nullptr, "GetInternalTitleLocationInfo"}, - {IPC::MakeHeader(0x0417, 3, 0), nullptr, "PerpetuateAgbSaveData"}, - {IPC::MakeHeader(0x0418, 1, 0), nullptr, "BeginImportProgramForOverWrite"}, - {IPC::MakeHeader(0x0419, 0, 0), nullptr, "BeginImportSystemProgram"}, + {0x0001, &AM_U::GetNumPrograms, "GetNumPrograms"}, + {0x0002, &AM_U::GetProgramList, "GetProgramList"}, + {0x0003, &AM_U::GetProgramInfos, "GetProgramInfos"}, + {0x0004, &AM_U::DeleteUserProgram, "DeleteUserProgram"}, + {0x0005, &AM_U::GetProductCode, "GetProductCode"}, + {0x0006, nullptr, "GetStorageId"}, + {0x0007, &AM_U::DeleteTicket, "DeleteTicket"}, + {0x0008, &AM_U::GetNumTickets, "GetNumTickets"}, + {0x0009, &AM_U::GetTicketList, "GetTicketList"}, + {0x000A, nullptr, "GetDeviceID"}, + {0x000B, nullptr, "GetNumImportTitleContexts"}, + {0x000C, nullptr, "GetImportTitleContextList"}, + {0x000D, nullptr, "GetImportTitleContexts"}, + {0x000E, nullptr, "DeleteImportTitleContext"}, + {0x000F, nullptr, "GetNumImportContentContexts"}, + {0x0010, nullptr, "GetImportContentContextList"}, + {0x0011, nullptr, "GetImportContentContexts"}, + {0x0012, nullptr, "DeleteImportContentContexts"}, + {0x0013, &AM_U::NeedsCleanup, "NeedsCleanup"}, + {0x0014, nullptr, "DoCleanup"}, + {0x0015, nullptr, "DeleteAllImportContexts"}, + {0x0016, nullptr, "DeleteAllTemporaryPrograms"}, + {0x0017, nullptr, "ImportTwlBackupLegacy"}, + {0x0018, nullptr, "InitializeTitleDatabase"}, + {0x0019, nullptr, "QueryAvailableTitleDatabase"}, + {0x001A, nullptr, "CalcTwlBackupSize"}, + {0x001B, nullptr, "ExportTwlBackup"}, + {0x001C, nullptr, "ImportTwlBackup"}, + {0x001D, nullptr, "DeleteAllTwlUserPrograms"}, + {0x001E, nullptr, "ReadTwlBackupInfo"}, + {0x001F, nullptr, "DeleteAllExpiredUserPrograms"}, + {0x0020, nullptr, "GetTwlArchiveResourceInfo"}, + {0x0021, nullptr, "GetPersonalizedTicketInfoList"}, + {0x0022, nullptr, "DeleteAllImportContextsFiltered"}, + {0x0023, nullptr, "GetNumImportTitleContextsFiltered"}, + {0x0024, nullptr, "GetImportTitleContextListFiltered"}, + {0x0025, nullptr, "CheckContentRights"}, + {0x0026, nullptr, "GetTicketLimitInfos"}, + {0x0027, nullptr, "GetDemoLaunchInfos"}, + {0x0028, nullptr, "ReadTwlBackupInfoEx"}, + {0x0029, nullptr, "DeleteUserProgramsAtomically"}, + {0x002A, nullptr, "GetNumExistingContentInfosSystem"}, + {0x002B, nullptr, "ListExistingContentInfosSystem"}, + {0x002C, nullptr, "GetProgramInfosIgnorePlatform"}, + {0x002D, nullptr, "CheckContentRightsIgnorePlatform"}, + {0x0401, nullptr, "UpdateFirmwareTo"}, + {0x0402, &AM_U::BeginImportProgram, "BeginImportProgram"}, + {0x0403, &AM_U::BeginImportProgramTemporarily, "BeginImportProgramTemporarily"}, + {0x0404, nullptr, "CancelImportProgram"}, + {0x0405, &AM_U::EndImportProgram, "EndImportProgram"}, + {0x0406, &AM_U::EndImportProgramWithoutCommit, "EndImportProgramWithoutCommit"}, + {0x0407, &AM_U::CommitImportPrograms, "CommitImportPrograms"}, + {0x0408, &AM_U::GetProgramInfoFromCia, "GetProgramInfoFromCia"}, + {0x0409, &AM_U::GetSystemMenuDataFromCia, "GetSystemMenuDataFromCia"}, + {0x040A, &AM_U::GetDependencyListFromCia, "GetDependencyListFromCia"}, + {0x040B, &AM_U::GetTransferSizeFromCia, "GetTransferSizeFromCia"}, + {0x040C, &AM_U::GetCoreVersionFromCia, "GetCoreVersionFromCia"}, + {0x040D, &AM_U::GetRequiredSizeFromCia, "GetRequiredSizeFromCia"}, + {0x040E, nullptr, "CommitImportProgramsAndUpdateFirmwareAuto"}, + {0x040F, nullptr, "UpdateFirmwareAuto"}, + {0x0410, &AM_U::DeleteProgram, "DeleteProgram"}, + {0x0411, nullptr, "GetTwlProgramListForReboot"}, + {0x0412, &AM_U::GetSystemUpdaterMutex, "GetSystemUpdaterMutex"}, + {0x0413, &AM_U::GetMetaSizeFromCia, "GetMetaSizeFromCia"}, + {0x0414, &AM_U::GetMetaDataFromCia, "GetMetaDataFromCia"}, + {0x0415, nullptr, "CheckDemoLaunchRights"}, + {0x0416, nullptr, "GetInternalTitleLocationInfo"}, + {0x0417, nullptr, "PerpetuateAgbSaveData"}, + {0x0418, nullptr, "BeginImportProgramForOverWrite"}, + {0x0419, nullptr, "BeginImportSystemProgram"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/apt/apt.cpp b/src/core/hle/service/apt/apt.cpp index 8db5598ce..44f6c58e8 100644 --- a/src/core/hle/service/apt/apt.cpp +++ b/src/core/hle/service/apt/apt.cpp @@ -61,7 +61,7 @@ std::shared_ptr Module::NSInterface::GetModule() const { } void Module::NSInterface::SetWirelessRebootInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 1, 2); // 0x00060042 + IPC::RequestParser rp(ctx); const auto size = rp.Pop(); const auto buffer = rp.PopStaticBuffer(); @@ -74,7 +74,7 @@ void Module::NSInterface::SetWirelessRebootInfo(Kernel::HLERequestContext& ctx) } void Module::NSInterface::ShutdownAsync(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xE, 0, 0); // 0xE0000 + IPC::RequestParser rp(ctx); LOG_INFO(Service_APT, "called"); @@ -85,7 +85,7 @@ void Module::NSInterface::ShutdownAsync(Kernel::HLERequestContext& ctx) { } void Module::NSInterface::RebootSystem(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 6, 0); // 0x100180 + IPC::RequestParser rp(ctx); const auto launch_title = rp.Pop() != 0; const auto title_id = rp.Pop(); const auto media_type = static_cast(rp.Pop()); @@ -104,7 +104,7 @@ void Module::NSInterface::RebootSystem(Kernel::HLERequestContext& ctx) { } void Module::NSInterface::RebootSystemClean(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 0, 0); // 0x160000 + IPC::RequestParser rp(ctx); LOG_INFO(Service_APT, "called"); @@ -115,7 +115,7 @@ void Module::NSInterface::RebootSystemClean(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::Initialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2, 2, 0); // 0x20080 + IPC::RequestParser rp(ctx); const auto app_id = rp.PopEnum(); const auto attributes = rp.Pop(); @@ -266,7 +266,7 @@ bool Module::LoadLegacySharedFont() { } void Module::APTInterface::GetSharedFont(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x44, 0, 0); // 0x00440000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 2); // Log in telemetry if the game uses the shared font @@ -318,7 +318,7 @@ void Module::APTInterface::GetSharedFont(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::GetWirelessRebootInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x45, 1, 0); // 0x00450040 + IPC::RequestParser rp(ctx); const auto size = rp.Pop(); LOG_WARNING(Service_APT, "called size={:08X}", size); @@ -329,7 +329,7 @@ void Module::APTInterface::GetWirelessRebootInfo(Kernel::HLERequestContext& ctx) } void Module::APTInterface::NotifyToWait(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x43, 1, 0); // 0x430040 + IPC::RequestParser rp(ctx); const auto app_id = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -339,7 +339,7 @@ void Module::APTInterface::NotifyToWait(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::GetLockHandle(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1, 1, 0); // 0x10040 + IPC::RequestParser rp(ctx); // Bits [0:2] are the applet type (System, Library, etc) // Bit 5 tells the application that there's a pending APT parameter, @@ -362,7 +362,7 @@ void Module::APTInterface::GetLockHandle(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::Enable(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x3, 1, 0); // 0x30040 + IPC::RequestParser rp(ctx); const auto attributes = rp.Pop(); LOG_DEBUG(Service_APT, "called attributes={:#010X}", attributes); @@ -372,7 +372,7 @@ void Module::APTInterface::Enable(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::GetAppletManInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x5, 1, 0); // 0x50040 + IPC::RequestParser rp(ctx); auto applet_pos = rp.PopEnum(); LOG_DEBUG(Service_APT, "called, applet_pos={:08X}", applet_pos); @@ -392,7 +392,7 @@ void Module::APTInterface::GetAppletManInfo(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::IsRegistered(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 1, 0); // 0x90040 + IPC::RequestParser rp(ctx); const auto app_id = rp.PopEnum(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -403,7 +403,7 @@ void Module::APTInterface::IsRegistered(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::InquireNotification(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xB, 1, 0); // 0xB0040 + IPC::RequestParser rp(ctx); const auto app_id = rp.PopEnum(); LOG_DEBUG(Service_APT, "called app_id={:#010X}", app_id); @@ -420,7 +420,7 @@ void Module::APTInterface::InquireNotification(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::SendParameter(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xC, 4, 4); // 0xC0104 + IPC::RequestParser rp(ctx); const auto src_app_id = rp.PopEnum(); const auto dst_app_id = rp.PopEnum(); const auto signal_type = rp.PopEnum(); @@ -444,7 +444,7 @@ void Module::APTInterface::SendParameter(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::ReceiveParameter(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xD, 2, 0); // 0xD0080 + IPC::RequestParser rp(ctx); const auto app_id = rp.PopEnum(); const auto buffer_size = rp.Pop(); @@ -470,7 +470,7 @@ void Module::APTInterface::ReceiveParameter(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::GlanceParameter(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xE, 2, 0); // 0xE0080 + IPC::RequestParser rp(ctx); const auto app_id = rp.PopEnum(); const u32 buffer_size = rp.Pop(); @@ -496,7 +496,7 @@ void Module::APTInterface::GlanceParameter(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::CancelParameter(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xF, 4, 0); // 0xF0100 + IPC::RequestParser rp(ctx); const auto check_sender = rp.Pop(); const auto sender_appid = rp.PopEnum(); const auto check_receiver = rp.Pop(); @@ -514,7 +514,7 @@ void Module::APTInterface::CancelParameter(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::PrepareToDoApplicationJump(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x31, 4, 0); // 0x00310100 + IPC::RequestParser rp(ctx); auto flags = rp.PopEnum(); u64 title_id = rp.Pop(); u8 media_type = rp.Pop(); @@ -530,7 +530,7 @@ void Module::APTInterface::PrepareToDoApplicationJump(Kernel::HLERequestContext& } void Module::APTInterface::DoApplicationJump(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x32, 2, 4); // 0x00320084 + IPC::RequestParser rp(ctx); const auto param_size = rp.Pop(); const auto hmac_size = rp.Pop(); const auto param = rp.PopStaticBuffer(); @@ -543,7 +543,7 @@ void Module::APTInterface::DoApplicationJump(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::GetProgramIdOnApplicationJump(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x33, 0, 0); // 0x00330000 + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "called"); @@ -558,7 +558,7 @@ void Module::APTInterface::GetProgramIdOnApplicationJump(Kernel::HLERequestConte } void Module::APTInterface::ReceiveDeliverArg(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x35, 2, 0); // 0x00350080 + IPC::RequestParser rp(ctx); const auto param_size = rp.Pop(); const auto hmac_size = rp.Pop(); @@ -577,7 +577,7 @@ void Module::APTInterface::ReceiveDeliverArg(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::PrepareToStartApplication(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x15, 5, 0); // 0x00150140 + IPC::RequestParser rp(ctx); const auto title_id = rp.Pop(); const auto media_type = static_cast(rp.Pop()); rp.Skip(1, false); // Padding @@ -591,7 +591,7 @@ void Module::APTInterface::PrepareToStartApplication(Kernel::HLERequestContext& } void Module::APTInterface::StartApplication(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1B, 3, 4); // 0x001B00C4 + IPC::RequestParser rp(ctx); const auto parameter_size = rp.Pop(); const auto hmac_size = rp.Pop(); const auto paused = rp.Pop(); @@ -606,7 +606,7 @@ void Module::APTInterface::StartApplication(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::WakeupApplication(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1C, 0, 0); // 0x001C0000 + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "called"); @@ -615,7 +615,7 @@ void Module::APTInterface::WakeupApplication(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::CancelApplication(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1D, 0, 0); // 0x001D0000 + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "called"); @@ -624,7 +624,7 @@ void Module::APTInterface::CancelApplication(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::AppletUtility(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x4B, 3, 2); // 0x004B00C2 + IPC::RequestParser rp(ctx); // These are from 3dbrew - I'm not really sure what they're used for. const auto utility_command = rp.Pop(); @@ -651,7 +651,7 @@ void Module::APTInterface::AppletUtility(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::SetAppCpuTimeLimit(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x4F, 2, 0); // 0x4F0080 + IPC::RequestParser rp(ctx); const auto must_be_one = rp.Pop(); const auto value = rp.Pop(); @@ -667,7 +667,7 @@ void Module::APTInterface::SetAppCpuTimeLimit(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::GetAppCpuTimeLimit(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x50, 1, 0); // 0x500040 + IPC::RequestParser rp(ctx); const auto must_be_one = rp.Pop(); LOG_WARNING(Service_APT, "(STUBBED) called, must_be_one={}", must_be_one); @@ -681,7 +681,7 @@ void Module::APTInterface::GetAppCpuTimeLimit(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::PrepareToStartLibraryApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x18, 1, 0); // 0x180040 + IPC::RequestParser rp(ctx); const auto applet_id = rp.PopEnum(); LOG_DEBUG(Service_APT, "called, applet_id={:08X}", applet_id); @@ -691,7 +691,7 @@ void Module::APTInterface::PrepareToStartLibraryApplet(Kernel::HLERequestContext } void Module::APTInterface::PrepareToStartSystemApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x19, 1, 0); // 0x190040 + IPC::RequestParser rp(ctx); const auto applet_id = rp.PopEnum(); LOG_DEBUG(Service_APT, "called, applet_id={:08X}", applet_id); @@ -701,7 +701,7 @@ void Module::APTInterface::PrepareToStartSystemApplet(Kernel::HLERequestContext& } void Module::APTInterface::PrepareToStartNewestHomeMenu(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1A, 0, 0); // 0x1A0000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); LOG_DEBUG(Service_APT, "called"); @@ -715,7 +715,7 @@ void Module::APTInterface::PrepareToStartNewestHomeMenu(Kernel::HLERequestContex } void Module::APTInterface::PreloadLibraryApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 1, 0); // 0x160040 + IPC::RequestParser rp(ctx); const auto applet_id = rp.PopEnum(); LOG_DEBUG(Service_APT, "called, applet_id={:08X}", applet_id); @@ -725,7 +725,7 @@ void Module::APTInterface::PreloadLibraryApplet(Kernel::HLERequestContext& ctx) } void Module::APTInterface::FinishPreloadingLibraryApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 1, 0); // 0x00170040 + IPC::RequestParser rp(ctx); const auto applet_id = rp.PopEnum(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -735,7 +735,7 @@ void Module::APTInterface::FinishPreloadingLibraryApplet(Kernel::HLERequestConte } void Module::APTInterface::StartLibraryApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1E, 2, 4); // 0x1E0084 + IPC::RequestParser rp(ctx); const auto applet_id = rp.PopEnum(); const auto buffer_size = rp.Pop(); const auto object = rp.PopGenericObject(); @@ -748,7 +748,7 @@ void Module::APTInterface::StartLibraryApplet(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::StartSystemApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1F, 2, 4); // 0x1F0084 + IPC::RequestParser rp(ctx); const auto applet_id = rp.PopEnum(); const auto buffer_size = rp.Pop(); const auto object = rp.PopGenericObject(); @@ -761,7 +761,7 @@ void Module::APTInterface::StartSystemApplet(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::OrderToCloseApplication(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x21, 0, 0); + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "called"); @@ -770,7 +770,7 @@ void Module::APTInterface::OrderToCloseApplication(Kernel::HLERequestContext& ct } void Module::APTInterface::PrepareToCloseApplication(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x22, 1, 0); + IPC::RequestParser rp(ctx); const auto return_to_sys = rp.Pop() != 0; LOG_DEBUG(Service_APT, "called return_to_sys={}", return_to_sys); @@ -780,7 +780,7 @@ void Module::APTInterface::PrepareToCloseApplication(Kernel::HLERequestContext& } void Module::APTInterface::CloseApplication(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x27, 1, 4); + IPC::RequestParser rp(ctx); const auto parameter_size = rp.Pop(); const auto object = rp.PopGenericObject(); const auto buffer = rp.PopStaticBuffer(); @@ -792,7 +792,7 @@ void Module::APTInterface::CloseApplication(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::CancelLibraryApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x3B, 1, 0); // 0x003B0040 + IPC::RequestParser rp(ctx); const auto app_exiting = rp.Pop(); LOG_DEBUG(Service_APT, "called app_exiting={}", app_exiting); @@ -802,7 +802,7 @@ void Module::APTInterface::CancelLibraryApplet(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::PrepareToCloseLibraryApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x25, 3, 0); // 0x002500C0 + IPC::RequestParser rp(ctx); const auto not_pause = rp.Pop(); const auto exiting = rp.Pop(); const auto jump_to_home = rp.Pop(); @@ -815,7 +815,7 @@ void Module::APTInterface::PrepareToCloseLibraryApplet(Kernel::HLERequestContext } void Module::APTInterface::PrepareToCloseSystemApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x26, 0, 0); // 0x260000 + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "called"); @@ -824,7 +824,7 @@ void Module::APTInterface::PrepareToCloseSystemApplet(Kernel::HLERequestContext& } void Module::APTInterface::CloseLibraryApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x28, 1, 4); // 0x00280044 + IPC::RequestParser rp(ctx); const auto parameter_size = rp.Pop(); const auto object = rp.PopGenericObject(); const auto buffer = rp.PopStaticBuffer(); @@ -836,7 +836,7 @@ void Module::APTInterface::CloseLibraryApplet(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::CloseSystemApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x29, 1, 4); // 0x00280044 + IPC::RequestParser rp(ctx); const auto parameter_size = rp.Pop(); const auto object = rp.PopGenericObject(); const auto buffer = rp.PopStaticBuffer(); @@ -848,7 +848,7 @@ void Module::APTInterface::CloseSystemApplet(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::OrderToCloseSystemApplet(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2A, 0, 0); // 0x2A0000 + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "called"); @@ -857,7 +857,7 @@ void Module::APTInterface::OrderToCloseSystemApplet(Kernel::HLERequestContext& c } void Module::APTInterface::PrepareToJumpToHomeMenu(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2B, 0, 0); // 0x2B0000 + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "called"); @@ -866,7 +866,7 @@ void Module::APTInterface::PrepareToJumpToHomeMenu(Kernel::HLERequestContext& ct } void Module::APTInterface::JumpToHomeMenu(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2C, 1, 4); // 0x2C0044 + IPC::RequestParser rp(ctx); const auto parameter_size = rp.Pop(); const auto object = rp.PopGenericObject(); const auto buffer = rp.PopStaticBuffer(); @@ -878,7 +878,7 @@ void Module::APTInterface::JumpToHomeMenu(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::PrepareToLeaveHomeMenu(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2D, 0, 0); // 0x2D0000 + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "called"); @@ -887,7 +887,7 @@ void Module::APTInterface::PrepareToLeaveHomeMenu(Kernel::HLERequestContext& ctx } void Module::APTInterface::LeaveHomeMenu(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2E, 1, 4); // 0x2E0044 + IPC::RequestParser rp(ctx); const auto parameter_size = rp.Pop(); const auto object = rp.PopGenericObject(); const auto buffer = rp.PopStaticBuffer(); @@ -899,7 +899,7 @@ void Module::APTInterface::LeaveHomeMenu(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::LoadSysMenuArg(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x36, 1, 0); // 0x00360040 + IPC::RequestParser rp(ctx); const auto size = std::min(std::size_t{rp.Pop()}, SysMenuArgSize); LOG_DEBUG(Service_APT, "called"); @@ -914,7 +914,7 @@ void Module::APTInterface::LoadSysMenuArg(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::StoreSysMenuArg(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x37, 1, 2); // 0x00370042 + IPC::RequestParser rp(ctx); const auto size = std::min(std::size_t{rp.Pop()}, SysMenuArgSize); const auto& buffer = rp.PopStaticBuffer(); @@ -928,7 +928,7 @@ void Module::APTInterface::StoreSysMenuArg(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::SendCaptureBufferInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x40, 1, 2); // 0x00400042 + IPC::RequestParser rp(ctx); [[maybe_unused]] const auto size = rp.Pop(); const auto buffer = rp.PopStaticBuffer(); @@ -941,7 +941,7 @@ void Module::APTInterface::SendCaptureBufferInfo(Kernel::HLERequestContext& ctx) } void Module::APTInterface::ReceiveCaptureBufferInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x41, 1, 0); // 0x00410040 + IPC::RequestParser rp(ctx); const auto size = rp.Pop(); LOG_DEBUG(Service_APT, "called"); @@ -957,7 +957,7 @@ void Module::APTInterface::ReceiveCaptureBufferInfo(Kernel::HLERequestContext& c } void Module::APTInterface::GetCaptureInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x4A, 1, 0); // 0x004A0040 + IPC::RequestParser rp(ctx); const auto size = rp.Pop(); LOG_DEBUG(Service_APT, "called"); @@ -973,7 +973,7 @@ void Module::APTInterface::GetCaptureInfo(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::SetScreenCapPostPermission(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x55, 1, 0); // 0x00550040 + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "called, screen_capture_post_permission={}", apt->screen_capture_post_permission); @@ -985,7 +985,7 @@ void Module::APTInterface::SetScreenCapPostPermission(Kernel::HLERequestContext& } void Module::APTInterface::GetScreenCapPostPermission(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x56, 0, 0); // 0x00560000 + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_APT, "(STUBBED) called, screen_capture_post_permission={}", apt->screen_capture_post_permission); @@ -996,7 +996,7 @@ void Module::APTInterface::GetScreenCapPostPermission(Kernel::HLERequestContext& } void Module::APTInterface::GetAppletInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x6, 1, 0); // 0x60040 + IPC::RequestParser rp(ctx); const auto app_id = rp.PopEnum(); LOG_DEBUG(Service_APT, "called, app_id={:08X}", app_id); @@ -1017,7 +1017,7 @@ void Module::APTInterface::GetAppletInfo(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::GetStartupArgument(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x51, 2, 0); // 0x00510080 + IPC::RequestParser rp(ctx); const auto parameter_size = rp.Pop(); const auto startup_argument_type = static_cast(rp.Pop()); @@ -1058,7 +1058,7 @@ void Module::APTInterface::GetStartupArgument(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::Wrap(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x46, 4, 4); + IPC::RequestParser rp(ctx); const auto output_size = rp.Pop(); const auto input_size = rp.Pop(); const auto nonce_offset = rp.Pop(); @@ -1103,7 +1103,7 @@ void Module::APTInterface::Wrap(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::Unwrap(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x47, 4, 4); + IPC::RequestParser rp(ctx); const auto output_size = rp.Pop(); const auto input_size = rp.Pop(); const auto nonce_offset = rp.Pop(); @@ -1155,7 +1155,7 @@ void Module::APTInterface::Unwrap(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::CheckNew3DSApp(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x101, 0, 0); // 0x01010000 + IPC::RequestParser rp(ctx); LOG_WARNING(Service_APT, "(STUBBED) called"); @@ -1169,7 +1169,7 @@ void Module::APTInterface::CheckNew3DSApp(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::CheckNew3DS(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x102, 0, 0); // 0x01020000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); LOG_WARNING(Service_APT, "(STUBBED) called"); @@ -1178,7 +1178,7 @@ void Module::APTInterface::CheckNew3DS(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::Unknown0x0103(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x103, 0, 0); // 0x01030000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); LOG_WARNING(Service_APT, "(STUBBED) called"); @@ -1188,7 +1188,7 @@ void Module::APTInterface::Unknown0x0103(Kernel::HLERequestContext& ctx) { } void Module::APTInterface::IsTitleAllowed(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x105, 4, 0); // 0x01050100 + IPC::RequestParser rp(ctx); const auto program_id = rp.Pop(); const auto media_type = static_cast(rp.Pop()); rp.Skip(1, false); // Padding diff --git a/src/core/hle/service/apt/apt_a.cpp b/src/core/hle/service/apt/apt_a.cpp index 76782039b..260470c30 100644 --- a/src/core/hle/service/apt/apt_a.cpp +++ b/src/core/hle/service/apt/apt_a.cpp @@ -11,98 +11,98 @@ APT_A::APT_A(std::shared_ptr apt) : Module::APTInterface(std::move(apt), "APT:A", MaxAPTSessions) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &APT_A::GetLockHandle, "GetLockHandle"}, - {IPC::MakeHeader(0x0002, 2, 0), &APT_A::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0003, 1, 0), &APT_A::Enable, "Enable"}, - {IPC::MakeHeader(0x0004, 1, 0), nullptr, "Finalize"}, - {IPC::MakeHeader(0x0005, 1, 0), &APT_A::GetAppletManInfo, "GetAppletManInfo"}, - {IPC::MakeHeader(0x0006, 1, 0), &APT_A::GetAppletInfo, "GetAppletInfo"}, - {IPC::MakeHeader(0x0007, 0, 0), nullptr, "GetLastSignaledAppletId"}, - {IPC::MakeHeader(0x0008, 0, 0), nullptr, "CountRegisteredApplet"}, - {IPC::MakeHeader(0x0009, 1, 0), &APT_A::IsRegistered, "IsRegistered"}, - {IPC::MakeHeader(0x000A, 1, 0), nullptr, "GetAttribute"}, - {IPC::MakeHeader(0x000B, 1, 0), &APT_A::InquireNotification, "InquireNotification"}, - {IPC::MakeHeader(0x000C, 4, 4), &APT_A::SendParameter, "SendParameter"}, - {IPC::MakeHeader(0x000D, 2, 0), &APT_A::ReceiveParameter, "ReceiveParameter"}, - {IPC::MakeHeader(0x000E, 2, 0), &APT_A::GlanceParameter, "GlanceParameter"}, - {IPC::MakeHeader(0x000F, 4, 0), &APT_A::CancelParameter, "CancelParameter"}, - {IPC::MakeHeader(0x0010, 3, 2), nullptr, "DebugFunc"}, - {IPC::MakeHeader(0x0011, 3, 0), nullptr, "MapProgramIdForDebug"}, - {IPC::MakeHeader(0x0012, 1, 0), nullptr, "SetHomeMenuAppletIdForDebug"}, - {IPC::MakeHeader(0x0013, 0, 0), nullptr, "GetPreparationState"}, - {IPC::MakeHeader(0x0014, 1, 0), nullptr, "SetPreparationState"}, - {IPC::MakeHeader(0x0015, 5, 0), &APT_A::PrepareToStartApplication, "PrepareToStartApplication"}, - {IPC::MakeHeader(0x0016, 1, 0), &APT_A::PreloadLibraryApplet, "PreloadLibraryApplet"}, - {IPC::MakeHeader(0x0017, 1, 0), &APT_A::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"}, - {IPC::MakeHeader(0x0018, 1, 0), &APT_A::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"}, - {IPC::MakeHeader(0x0019, 1, 0), &APT_A::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"}, - {IPC::MakeHeader(0x001A, 0, 0), &APT_A::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"}, - {IPC::MakeHeader(0x001B, 3, 4), &APT_A::StartApplication, "StartApplication"}, - {IPC::MakeHeader(0x001C, 0, 0), &APT_A::WakeupApplication, "WakeupApplication"}, - {IPC::MakeHeader(0x001D, 0, 0), nullptr, "CancelApplication"}, - {IPC::MakeHeader(0x001E, 2, 4), &APT_A::StartLibraryApplet, "StartLibraryApplet"}, - {IPC::MakeHeader(0x001F, 2, 4), &APT_A::StartSystemApplet, "StartSystemApplet"}, - {IPC::MakeHeader(0x0020, 1, 4), nullptr, "StartNewestHomeMenu"}, - {IPC::MakeHeader(0x0021, 0, 0), &APT_A::OrderToCloseApplication, "OrderToCloseApplication"}, - {IPC::MakeHeader(0x0022, 1, 0), &APT_A::PrepareToCloseApplication, "PrepareToCloseApplication"}, - {IPC::MakeHeader(0x0023, 1, 0), nullptr, "PrepareToJumpToApplication"}, - {IPC::MakeHeader(0x0024, 1, 4), nullptr, "JumpToApplication"}, - {IPC::MakeHeader(0x0025, 3, 0), &APT_A::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"}, - {IPC::MakeHeader(0x0026, 0, 0), &APT_A::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"}, - {IPC::MakeHeader(0x0027, 1, 4), &APT_A::CloseApplication, "CloseApplication"}, - {IPC::MakeHeader(0x0028, 1, 4), &APT_A::CloseLibraryApplet, "CloseLibraryApplet"}, - {IPC::MakeHeader(0x0029, 1, 4), &APT_A::CloseSystemApplet, "CloseSystemApplet"}, - {IPC::MakeHeader(0x002A, 0, 0), &APT_A::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"}, - {IPC::MakeHeader(0x002B, 0, 0), &APT_A::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"}, - {IPC::MakeHeader(0x002C, 1, 4), &APT_A::JumpToHomeMenu, "JumpToHomeMenu"}, - {IPC::MakeHeader(0x002D, 0, 0), &APT_A::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"}, - {IPC::MakeHeader(0x002E, 1, 4), &APT_A::LeaveHomeMenu, "LeaveHomeMenu"}, - {IPC::MakeHeader(0x002F, 1, 0), nullptr, "PrepareToLeaveResidentApplet"}, - {IPC::MakeHeader(0x0030, 1, 4), nullptr, "LeaveResidentApplet"}, - {IPC::MakeHeader(0x0031, 4, 0), &APT_A::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"}, - {IPC::MakeHeader(0x0032, 2, 4), &APT_A::DoApplicationJump, "DoApplicationJump"}, - {IPC::MakeHeader(0x0033, 0, 0), &APT_A::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"}, - {IPC::MakeHeader(0x0034, 2, 4), nullptr, "SendDeliverArg"}, - {IPC::MakeHeader(0x0035, 2, 0), &APT_A::ReceiveDeliverArg, "ReceiveDeliverArg"}, - {IPC::MakeHeader(0x0036, 1, 0), &APT_A::LoadSysMenuArg, "LoadSysMenuArg"}, - {IPC::MakeHeader(0x0037, 1, 2), &APT_A::StoreSysMenuArg, "StoreSysMenuArg"}, - {IPC::MakeHeader(0x0038, 1, 0), nullptr, "PreloadResidentApplet"}, - {IPC::MakeHeader(0x0039, 1, 0), nullptr, "PrepareToStartResidentApplet"}, - {IPC::MakeHeader(0x003A, 1, 4), nullptr, "StartResidentApplet"}, - {IPC::MakeHeader(0x003B, 1, 0), &APT_A::CancelLibraryApplet, "CancelLibraryApplet"}, - {IPC::MakeHeader(0x003C, 1, 2), nullptr, "SendDspSleep"}, - {IPC::MakeHeader(0x003D, 1, 2), nullptr, "SendDspWakeUp"}, - {IPC::MakeHeader(0x003E, 2, 0), nullptr, "ReplySleepQuery"}, - {IPC::MakeHeader(0x003F, 1, 0), nullptr, "ReplySleepNotificationComplete"}, - {IPC::MakeHeader(0x0040, 1, 2), &APT_A::SendCaptureBufferInfo, "SendCaptureBufferInfo"}, - {IPC::MakeHeader(0x0041, 1, 0), &APT_A::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"}, - {IPC::MakeHeader(0x0042, 2, 0), nullptr, "SleepSystem"}, - {IPC::MakeHeader(0x0043, 1, 0), &APT_A::NotifyToWait, "NotifyToWait"}, - {IPC::MakeHeader(0x0044, 0, 0), &APT_A::GetSharedFont, "GetSharedFont"}, - {IPC::MakeHeader(0x0045, 1, 0), &APT_A::GetWirelessRebootInfo, "GetWirelessRebootInfo"}, - {IPC::MakeHeader(0x0046, 4, 4), &APT_A::Wrap, "Wrap"}, - {IPC::MakeHeader(0x0047, 4, 4), &APT_A::Unwrap, "Unwrap"}, - {IPC::MakeHeader(0x0048, 4, 0), nullptr, "GetProgramInfo"}, - {IPC::MakeHeader(0x0049, 6, 0), nullptr, "Reboot"}, - {IPC::MakeHeader(0x004A, 1, 0), &APT_A::GetCaptureInfo, "GetCaptureInfo"}, - {IPC::MakeHeader(0x004B, 3, 2), &APT_A::AppletUtility, "AppletUtility"}, - {IPC::MakeHeader(0x004C, 0, 0), nullptr, "SetFatalErrDispMode"}, - {IPC::MakeHeader(0x004D, 2, 0), nullptr, "GetAppletProgramInfo"}, - {IPC::MakeHeader(0x004E, 0, 0), nullptr, "HardwareResetAsync"}, - {IPC::MakeHeader(0x004F, 2, 0), &APT_A::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"}, - {IPC::MakeHeader(0x0050, 1, 0), &APT_A::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"}, - {IPC::MakeHeader(0x0051, 2, 0), &APT_A::GetStartupArgument, "GetStartupArgument"}, - {IPC::MakeHeader(0x0052, 4, 4), nullptr, "Wrap1"}, - {IPC::MakeHeader(0x0053, 4, 4), nullptr, "Unwrap1"}, - {IPC::MakeHeader(0x0055, 1, 0), &APT_A::SetScreenCapPostPermission, "SetScreenCapPostPermission"}, - {IPC::MakeHeader(0x0056, 0, 0), &APT_A::GetScreenCapPostPermission, "GetScreenCapPostPermission"}, - {IPC::MakeHeader(0x0057, 1, 4), nullptr, "WakeupApplication2"}, - {IPC::MakeHeader(0x0058, 0, 2), nullptr, "GetProgramID"}, - {IPC::MakeHeader(0x0101, 0, 0), &APT_A::CheckNew3DSApp, "CheckNew3DSApp"}, - {IPC::MakeHeader(0x0102, 0, 0), &APT_A::CheckNew3DS, "CheckNew3DS"}, - {IPC::MakeHeader(0x0103, 0, 0), &APT_A::Unknown0x0103, "Unknown0x0103"}, - {IPC::MakeHeader(0x0104, 0, 0), nullptr, "IsStandardMemoryLayout"}, - {IPC::MakeHeader(0x0105, 4, 0), &APT_A::IsTitleAllowed, "IsTitleAllowed"}, + {0x0001, &APT_A::GetLockHandle, "GetLockHandle"}, + {0x0002, &APT_A::Initialize, "Initialize"}, + {0x0003, &APT_A::Enable, "Enable"}, + {0x0004, nullptr, "Finalize"}, + {0x0005, &APT_A::GetAppletManInfo, "GetAppletManInfo"}, + {0x0006, &APT_A::GetAppletInfo, "GetAppletInfo"}, + {0x0007, nullptr, "GetLastSignaledAppletId"}, + {0x0008, nullptr, "CountRegisteredApplet"}, + {0x0009, &APT_A::IsRegistered, "IsRegistered"}, + {0x000A, nullptr, "GetAttribute"}, + {0x000B, &APT_A::InquireNotification, "InquireNotification"}, + {0x000C, &APT_A::SendParameter, "SendParameter"}, + {0x000D, &APT_A::ReceiveParameter, "ReceiveParameter"}, + {0x000E, &APT_A::GlanceParameter, "GlanceParameter"}, + {0x000F, &APT_A::CancelParameter, "CancelParameter"}, + {0x0010, nullptr, "DebugFunc"}, + {0x0011, nullptr, "MapProgramIdForDebug"}, + {0x0012, nullptr, "SetHomeMenuAppletIdForDebug"}, + {0x0013, nullptr, "GetPreparationState"}, + {0x0014, nullptr, "SetPreparationState"}, + {0x0015, &APT_A::PrepareToStartApplication, "PrepareToStartApplication"}, + {0x0016, &APT_A::PreloadLibraryApplet, "PreloadLibraryApplet"}, + {0x0017, &APT_A::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"}, + {0x0018, &APT_A::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"}, + {0x0019, &APT_A::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"}, + {0x001A, &APT_A::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"}, + {0x001B, &APT_A::StartApplication, "StartApplication"}, + {0x001C, &APT_A::WakeupApplication, "WakeupApplication"}, + {0x001D, nullptr, "CancelApplication"}, + {0x001E, &APT_A::StartLibraryApplet, "StartLibraryApplet"}, + {0x001F, &APT_A::StartSystemApplet, "StartSystemApplet"}, + {0x0020, nullptr, "StartNewestHomeMenu"}, + {0x0021, &APT_A::OrderToCloseApplication, "OrderToCloseApplication"}, + {0x0022, &APT_A::PrepareToCloseApplication, "PrepareToCloseApplication"}, + {0x0023, nullptr, "PrepareToJumpToApplication"}, + {0x0024, nullptr, "JumpToApplication"}, + {0x0025, &APT_A::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"}, + {0x0026, &APT_A::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"}, + {0x0027, &APT_A::CloseApplication, "CloseApplication"}, + {0x0028, &APT_A::CloseLibraryApplet, "CloseLibraryApplet"}, + {0x0029, &APT_A::CloseSystemApplet, "CloseSystemApplet"}, + {0x002A, &APT_A::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"}, + {0x002B, &APT_A::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"}, + {0x002C, &APT_A::JumpToHomeMenu, "JumpToHomeMenu"}, + {0x002D, &APT_A::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"}, + {0x002E, &APT_A::LeaveHomeMenu, "LeaveHomeMenu"}, + {0x002F, nullptr, "PrepareToLeaveResidentApplet"}, + {0x0030, nullptr, "LeaveResidentApplet"}, + {0x0031, &APT_A::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"}, + {0x0032, &APT_A::DoApplicationJump, "DoApplicationJump"}, + {0x0033, &APT_A::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"}, + {0x0034, nullptr, "SendDeliverArg"}, + {0x0035, &APT_A::ReceiveDeliverArg, "ReceiveDeliverArg"}, + {0x0036, &APT_A::LoadSysMenuArg, "LoadSysMenuArg"}, + {0x0037, &APT_A::StoreSysMenuArg, "StoreSysMenuArg"}, + {0x0038, nullptr, "PreloadResidentApplet"}, + {0x0039, nullptr, "PrepareToStartResidentApplet"}, + {0x003A, nullptr, "StartResidentApplet"}, + {0x003B, &APT_A::CancelLibraryApplet, "CancelLibraryApplet"}, + {0x003C, nullptr, "SendDspSleep"}, + {0x003D, nullptr, "SendDspWakeUp"}, + {0x003E, nullptr, "ReplySleepQuery"}, + {0x003F, nullptr, "ReplySleepNotificationComplete"}, + {0x0040, &APT_A::SendCaptureBufferInfo, "SendCaptureBufferInfo"}, + {0x0041, &APT_A::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"}, + {0x0042, nullptr, "SleepSystem"}, + {0x0043, &APT_A::NotifyToWait, "NotifyToWait"}, + {0x0044, &APT_A::GetSharedFont, "GetSharedFont"}, + {0x0045, &APT_A::GetWirelessRebootInfo, "GetWirelessRebootInfo"}, + {0x0046, &APT_A::Wrap, "Wrap"}, + {0x0047, &APT_A::Unwrap, "Unwrap"}, + {0x0048, nullptr, "GetProgramInfo"}, + {0x0049, nullptr, "Reboot"}, + {0x004A, &APT_A::GetCaptureInfo, "GetCaptureInfo"}, + {0x004B, &APT_A::AppletUtility, "AppletUtility"}, + {0x004C, nullptr, "SetFatalErrDispMode"}, + {0x004D, nullptr, "GetAppletProgramInfo"}, + {0x004E, nullptr, "HardwareResetAsync"}, + {0x004F, &APT_A::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"}, + {0x0050, &APT_A::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"}, + {0x0051, &APT_A::GetStartupArgument, "GetStartupArgument"}, + {0x0052, nullptr, "Wrap1"}, + {0x0053, nullptr, "Unwrap1"}, + {0x0055, &APT_A::SetScreenCapPostPermission, "SetScreenCapPostPermission"}, + {0x0056, &APT_A::GetScreenCapPostPermission, "GetScreenCapPostPermission"}, + {0x0057, nullptr, "WakeupApplication2"}, + {0x0058, nullptr, "GetProgramID"}, + {0x0101, &APT_A::CheckNew3DSApp, "CheckNew3DSApp"}, + {0x0102, &APT_A::CheckNew3DS, "CheckNew3DS"}, + {0x0103, &APT_A::Unknown0x0103, "Unknown0x0103"}, + {0x0104, nullptr, "IsStandardMemoryLayout"}, + {0x0105, &APT_A::IsTitleAllowed, "IsTitleAllowed"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/apt/apt_s.cpp b/src/core/hle/service/apt/apt_s.cpp index 745d62450..60718c6cd 100644 --- a/src/core/hle/service/apt/apt_s.cpp +++ b/src/core/hle/service/apt/apt_s.cpp @@ -11,98 +11,98 @@ APT_S::APT_S(std::shared_ptr apt) : Module::APTInterface(std::move(apt), "APT:S", MaxAPTSessions) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &APT_S::GetLockHandle, "GetLockHandle"}, - {IPC::MakeHeader(0x0002, 2, 0), &APT_S::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0003, 1, 0), &APT_S::Enable, "Enable"}, - {IPC::MakeHeader(0x0004, 1, 0), nullptr, "Finalize"}, - {IPC::MakeHeader(0x0005, 1, 0), &APT_S::GetAppletManInfo, "GetAppletManInfo"}, - {IPC::MakeHeader(0x0006, 1, 0), &APT_S::GetAppletInfo, "GetAppletInfo"}, - {IPC::MakeHeader(0x0007, 0, 0), nullptr, "GetLastSignaledAppletId"}, - {IPC::MakeHeader(0x0008, 0, 0), nullptr, "CountRegisteredApplet"}, - {IPC::MakeHeader(0x0009, 1, 0), &APT_S::IsRegistered, "IsRegistered"}, - {IPC::MakeHeader(0x000A, 1, 0), nullptr, "GetAttribute"}, - {IPC::MakeHeader(0x000B, 1, 0), &APT_S::InquireNotification, "InquireNotification"}, - {IPC::MakeHeader(0x000C, 4, 4), &APT_S::SendParameter, "SendParameter"}, - {IPC::MakeHeader(0x000D, 2, 0), &APT_S::ReceiveParameter, "ReceiveParameter"}, - {IPC::MakeHeader(0x000E, 2, 0), &APT_S::GlanceParameter, "GlanceParameter"}, - {IPC::MakeHeader(0x000F, 4, 0), &APT_S::CancelParameter, "CancelParameter"}, - {IPC::MakeHeader(0x0010, 3, 2), nullptr, "DebugFunc"}, - {IPC::MakeHeader(0x0011, 3, 0), nullptr, "MapProgramIdForDebug"}, - {IPC::MakeHeader(0x0012, 1, 0), nullptr, "SetHomeMenuAppletIdForDebug"}, - {IPC::MakeHeader(0x0013, 0, 0), nullptr, "GetPreparationState"}, - {IPC::MakeHeader(0x0014, 1, 0), nullptr, "SetPreparationState"}, - {IPC::MakeHeader(0x0015, 5, 0), &APT_S::PrepareToStartApplication, "PrepareToStartApplication"}, - {IPC::MakeHeader(0x0016, 1, 0), &APT_S::PreloadLibraryApplet, "PreloadLibraryApplet"}, - {IPC::MakeHeader(0x0017, 1, 0), &APT_S::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"}, - {IPC::MakeHeader(0x0018, 1, 0), &APT_S::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"}, - {IPC::MakeHeader(0x0019, 1, 0), &APT_S::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"}, - {IPC::MakeHeader(0x001A, 0, 0), &APT_S::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"}, - {IPC::MakeHeader(0x001B, 3, 4), &APT_S::StartApplication, "StartApplication"}, - {IPC::MakeHeader(0x001C, 0, 0), &APT_S::WakeupApplication, "WakeupApplication"}, - {IPC::MakeHeader(0x001D, 0, 0), nullptr, "CancelApplication"}, - {IPC::MakeHeader(0x001E, 2, 4), &APT_S::StartLibraryApplet, "StartLibraryApplet"}, - {IPC::MakeHeader(0x001F, 2, 4), &APT_S::StartSystemApplet, "StartSystemApplet"}, - {IPC::MakeHeader(0x0020, 1, 4), nullptr, "StartNewestHomeMenu"}, - {IPC::MakeHeader(0x0021, 0, 0), &APT_S::OrderToCloseApplication, "OrderToCloseApplication"}, - {IPC::MakeHeader(0x0022, 1, 0), &APT_S::PrepareToCloseApplication, "PrepareToCloseApplication"}, - {IPC::MakeHeader(0x0023, 1, 0), nullptr, "PrepareToJumpToApplication"}, - {IPC::MakeHeader(0x0024, 1, 4), nullptr, "JumpToApplication"}, - {IPC::MakeHeader(0x0025, 3, 0), &APT_S::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"}, - {IPC::MakeHeader(0x0026, 0, 0), &APT_S::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"}, - {IPC::MakeHeader(0x0027, 1, 4), &APT_S::CloseApplication, "CloseApplication"}, - {IPC::MakeHeader(0x0028, 1, 4), &APT_S::CloseLibraryApplet, "CloseLibraryApplet"}, - {IPC::MakeHeader(0x0029, 1, 4), &APT_S::CloseSystemApplet, "CloseSystemApplet"}, - {IPC::MakeHeader(0x002A, 0, 0), &APT_S::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"}, - {IPC::MakeHeader(0x002B, 0, 0), &APT_S::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"}, - {IPC::MakeHeader(0x002C, 1, 4), &APT_S::JumpToHomeMenu, "JumpToHomeMenu"}, - {IPC::MakeHeader(0x002D, 0, 0), &APT_S::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"}, - {IPC::MakeHeader(0x002E, 1, 4), &APT_S::LeaveHomeMenu, "LeaveHomeMenu"}, - {IPC::MakeHeader(0x002F, 1, 0), nullptr, "PrepareToLeaveResidentApplet"}, - {IPC::MakeHeader(0x0030, 1, 4), nullptr, "LeaveResidentApplet"}, - {IPC::MakeHeader(0x0031, 4, 0), &APT_S::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"}, - {IPC::MakeHeader(0x0032, 2, 4), &APT_S::DoApplicationJump, "DoApplicationJump"}, - {IPC::MakeHeader(0x0033, 0, 0), &APT_S::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"}, - {IPC::MakeHeader(0x0034, 2, 4), nullptr, "SendDeliverArg"}, - {IPC::MakeHeader(0x0035, 2, 0), &APT_S::ReceiveDeliverArg, "ReceiveDeliverArg"}, - {IPC::MakeHeader(0x0036, 1, 0), &APT_S::LoadSysMenuArg, "LoadSysMenuArg"}, - {IPC::MakeHeader(0x0037, 1, 2), &APT_S::StoreSysMenuArg, "StoreSysMenuArg"}, - {IPC::MakeHeader(0x0038, 1, 0), nullptr, "PreloadResidentApplet"}, - {IPC::MakeHeader(0x0039, 1, 0), nullptr, "PrepareToStartResidentApplet"}, - {IPC::MakeHeader(0x003A, 1, 4), nullptr, "StartResidentApplet"}, - {IPC::MakeHeader(0x003B, 1, 0), &APT_S::CancelLibraryApplet, "CancelLibraryApplet"}, - {IPC::MakeHeader(0x003C, 1, 2), nullptr, "SendDspSleep"}, - {IPC::MakeHeader(0x003D, 1, 2), nullptr, "SendDspWakeUp"}, - {IPC::MakeHeader(0x003E, 2, 0), nullptr, "ReplySleepQuery"}, - {IPC::MakeHeader(0x003F, 1, 0), nullptr, "ReplySleepNotificationComplete"}, - {IPC::MakeHeader(0x0040, 1, 2), &APT_S::SendCaptureBufferInfo, "SendCaptureBufferInfo"}, - {IPC::MakeHeader(0x0041, 1, 0), &APT_S::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"}, - {IPC::MakeHeader(0x0042, 2, 0), nullptr, "SleepSystem"}, - {IPC::MakeHeader(0x0043, 1, 0), &APT_S::NotifyToWait, "NotifyToWait"}, - {IPC::MakeHeader(0x0044, 0, 0), &APT_S::GetSharedFont, "GetSharedFont"}, - {IPC::MakeHeader(0x0045, 1, 0), &APT_S::GetWirelessRebootInfo, "GetWirelessRebootInfo"}, - {IPC::MakeHeader(0x0046, 4, 4), &APT_S::Wrap, "Wrap"}, - {IPC::MakeHeader(0x0047, 4, 4), &APT_S::Unwrap, "Unwrap"}, - {IPC::MakeHeader(0x0048, 4, 0), nullptr, "GetProgramInfo"}, - {IPC::MakeHeader(0x0049, 6, 0), nullptr, "Reboot"}, - {IPC::MakeHeader(0x004A, 1, 0), &APT_S::GetCaptureInfo, "GetCaptureInfo"}, - {IPC::MakeHeader(0x004B, 3, 2), &APT_S::AppletUtility, "AppletUtility"}, - {IPC::MakeHeader(0x004C, 0, 0), nullptr, "SetFatalErrDispMode"}, - {IPC::MakeHeader(0x004D, 2, 0), nullptr, "GetAppletProgramInfo"}, - {IPC::MakeHeader(0x004E, 0, 0), nullptr, "HardwareResetAsync"}, - {IPC::MakeHeader(0x004F, 2, 0), &APT_S::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"}, - {IPC::MakeHeader(0x0050, 1, 0), &APT_S::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"}, - {IPC::MakeHeader(0x0051, 2, 0), &APT_S::GetStartupArgument, "GetStartupArgument"}, - {IPC::MakeHeader(0x0052, 4, 4), nullptr, "Wrap1"}, - {IPC::MakeHeader(0x0053, 4, 4), nullptr, "Unwrap1"}, - {IPC::MakeHeader(0x0055, 1, 0), &APT_S::SetScreenCapPostPermission, "SetScreenCapPostPermission"}, - {IPC::MakeHeader(0x0056, 0, 0), &APT_S::GetScreenCapPostPermission, "GetScreenCapPostPermission"}, - {IPC::MakeHeader(0x0057, 1, 4), nullptr, "WakeupApplication2"}, - {IPC::MakeHeader(0x0058, 0, 2), nullptr, "GetProgramID"}, - {IPC::MakeHeader(0x0101, 0, 0), &APT_S::CheckNew3DSApp, "CheckNew3DSApp"}, - {IPC::MakeHeader(0x0102, 0, 0), &APT_S::CheckNew3DS, "CheckNew3DS"}, - {IPC::MakeHeader(0x0103, 0, 0), &APT_S::Unknown0x0103, "Unknown0x0103"}, - {IPC::MakeHeader(0x0104, 0, 0), nullptr, "IsStandardMemoryLayout"}, - {IPC::MakeHeader(0x0105, 4, 0), &APT_S::IsTitleAllowed, "IsTitleAllowed"}, + {0x0001, &APT_S::GetLockHandle, "GetLockHandle"}, + {0x0002, &APT_S::Initialize, "Initialize"}, + {0x0003, &APT_S::Enable, "Enable"}, + {0x0004, nullptr, "Finalize"}, + {0x0005, &APT_S::GetAppletManInfo, "GetAppletManInfo"}, + {0x0006, &APT_S::GetAppletInfo, "GetAppletInfo"}, + {0x0007, nullptr, "GetLastSignaledAppletId"}, + {0x0008, nullptr, "CountRegisteredApplet"}, + {0x0009, &APT_S::IsRegistered, "IsRegistered"}, + {0x000A, nullptr, "GetAttribute"}, + {0x000B, &APT_S::InquireNotification, "InquireNotification"}, + {0x000C, &APT_S::SendParameter, "SendParameter"}, + {0x000D, &APT_S::ReceiveParameter, "ReceiveParameter"}, + {0x000E, &APT_S::GlanceParameter, "GlanceParameter"}, + {0x000F, &APT_S::CancelParameter, "CancelParameter"}, + {0x0010, nullptr, "DebugFunc"}, + {0x0011, nullptr, "MapProgramIdForDebug"}, + {0x0012, nullptr, "SetHomeMenuAppletIdForDebug"}, + {0x0013, nullptr, "GetPreparationState"}, + {0x0014, nullptr, "SetPreparationState"}, + {0x0015, &APT_S::PrepareToStartApplication, "PrepareToStartApplication"}, + {0x0016, &APT_S::PreloadLibraryApplet, "PreloadLibraryApplet"}, + {0x0017, &APT_S::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"}, + {0x0018, &APT_S::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"}, + {0x0019, &APT_S::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"}, + {0x001A, &APT_S::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"}, + {0x001B, &APT_S::StartApplication, "StartApplication"}, + {0x001C, &APT_S::WakeupApplication, "WakeupApplication"}, + {0x001D, nullptr, "CancelApplication"}, + {0x001E, &APT_S::StartLibraryApplet, "StartLibraryApplet"}, + {0x001F, &APT_S::StartSystemApplet, "StartSystemApplet"}, + {0x0020, nullptr, "StartNewestHomeMenu"}, + {0x0021, &APT_S::OrderToCloseApplication, "OrderToCloseApplication"}, + {0x0022, &APT_S::PrepareToCloseApplication, "PrepareToCloseApplication"}, + {0x0023, nullptr, "PrepareToJumpToApplication"}, + {0x0024, nullptr, "JumpToApplication"}, + {0x0025, &APT_S::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"}, + {0x0026, &APT_S::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"}, + {0x0027, &APT_S::CloseApplication, "CloseApplication"}, + {0x0028, &APT_S::CloseLibraryApplet, "CloseLibraryApplet"}, + {0x0029, &APT_S::CloseSystemApplet, "CloseSystemApplet"}, + {0x002A, &APT_S::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"}, + {0x002B, &APT_S::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"}, + {0x002C, &APT_S::JumpToHomeMenu, "JumpToHomeMenu"}, + {0x002D, &APT_S::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"}, + {0x002E, &APT_S::LeaveHomeMenu, "LeaveHomeMenu"}, + {0x002F, nullptr, "PrepareToLeaveResidentApplet"}, + {0x0030, nullptr, "LeaveResidentApplet"}, + {0x0031, &APT_S::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"}, + {0x0032, &APT_S::DoApplicationJump, "DoApplicationJump"}, + {0x0033, &APT_S::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"}, + {0x0034, nullptr, "SendDeliverArg"}, + {0x0035, &APT_S::ReceiveDeliverArg, "ReceiveDeliverArg"}, + {0x0036, &APT_S::LoadSysMenuArg, "LoadSysMenuArg"}, + {0x0037, &APT_S::StoreSysMenuArg, "StoreSysMenuArg"}, + {0x0038, nullptr, "PreloadResidentApplet"}, + {0x0039, nullptr, "PrepareToStartResidentApplet"}, + {0x003A, nullptr, "StartResidentApplet"}, + {0x003B, &APT_S::CancelLibraryApplet, "CancelLibraryApplet"}, + {0x003C, nullptr, "SendDspSleep"}, + {0x003D, nullptr, "SendDspWakeUp"}, + {0x003E, nullptr, "ReplySleepQuery"}, + {0x003F, nullptr, "ReplySleepNotificationComplete"}, + {0x0040, &APT_S::SendCaptureBufferInfo, "SendCaptureBufferInfo"}, + {0x0041, &APT_S::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"}, + {0x0042, nullptr, "SleepSystem"}, + {0x0043, &APT_S::NotifyToWait, "NotifyToWait"}, + {0x0044, &APT_S::GetSharedFont, "GetSharedFont"}, + {0x0045, &APT_S::GetWirelessRebootInfo, "GetWirelessRebootInfo"}, + {0x0046, &APT_S::Wrap, "Wrap"}, + {0x0047, &APT_S::Unwrap, "Unwrap"}, + {0x0048, nullptr, "GetProgramInfo"}, + {0x0049, nullptr, "Reboot"}, + {0x004A, &APT_S::GetCaptureInfo, "GetCaptureInfo"}, + {0x004B, &APT_S::AppletUtility, "AppletUtility"}, + {0x004C, nullptr, "SetFatalErrDispMode"}, + {0x004D, nullptr, "GetAppletProgramInfo"}, + {0x004E, nullptr, "HardwareResetAsync"}, + {0x004F, &APT_S::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"}, + {0x0050, &APT_S::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"}, + {0x0051, &APT_S::GetStartupArgument, "GetStartupArgument"}, + {0x0052, nullptr, "Wrap1"}, + {0x0053, nullptr, "Unwrap1"}, + {0x0055, &APT_S::SetScreenCapPostPermission, "SetScreenCapPostPermission"}, + {0x0056, &APT_S::GetScreenCapPostPermission, "GetScreenCapPostPermission"}, + {0x0057, nullptr, "WakeupApplication2"}, + {0x0058, nullptr, "GetProgramID"}, + {0x0101, &APT_S::CheckNew3DSApp, "CheckNew3DSApp"}, + {0x0102, &APT_S::CheckNew3DS, "CheckNew3DS"}, + {0x0103, &APT_S::Unknown0x0103, "Unknown0x0103"}, + {0x0104, nullptr, "IsStandardMemoryLayout"}, + {0x0105, &APT_S::IsTitleAllowed, "IsTitleAllowed"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/apt/apt_u.cpp b/src/core/hle/service/apt/apt_u.cpp index 8c351ab43..a78ab91b0 100644 --- a/src/core/hle/service/apt/apt_u.cpp +++ b/src/core/hle/service/apt/apt_u.cpp @@ -11,98 +11,98 @@ APT_U::APT_U(std::shared_ptr apt) : Module::APTInterface(std::move(apt), "APT:U", MaxAPTSessions) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &APT_U::GetLockHandle, "GetLockHandle"}, - {IPC::MakeHeader(0x0002, 2, 0), &APT_U::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0003, 1, 0), &APT_U::Enable, "Enable"}, - {IPC::MakeHeader(0x0004, 1, 0), nullptr, "Finalize"}, - {IPC::MakeHeader(0x0005, 1, 0), &APT_U::GetAppletManInfo, "GetAppletManInfo"}, - {IPC::MakeHeader(0x0006, 1, 0), &APT_U::GetAppletInfo, "GetAppletInfo"}, - {IPC::MakeHeader(0x0007, 0, 0), nullptr, "GetLastSignaledAppletId"}, - {IPC::MakeHeader(0x0008, 0, 0), nullptr, "CountRegisteredApplet"}, - {IPC::MakeHeader(0x0009, 1, 0), &APT_U::IsRegistered, "IsRegistered"}, - {IPC::MakeHeader(0x000A, 1, 0), nullptr, "GetAttribute"}, - {IPC::MakeHeader(0x000B, 1, 0), &APT_U::InquireNotification, "InquireNotification"}, - {IPC::MakeHeader(0x000C, 4, 4), &APT_U::SendParameter, "SendParameter"}, - {IPC::MakeHeader(0x000D, 2, 0), &APT_U::ReceiveParameter, "ReceiveParameter"}, - {IPC::MakeHeader(0x000E, 2, 0), &APT_U::GlanceParameter, "GlanceParameter"}, - {IPC::MakeHeader(0x000F, 4, 0), &APT_U::CancelParameter, "CancelParameter"}, - {IPC::MakeHeader(0x0010, 3, 2), nullptr, "DebugFunc"}, - {IPC::MakeHeader(0x0011, 3, 0), nullptr, "MapProgramIdForDebug"}, - {IPC::MakeHeader(0x0012, 1, 0), nullptr, "SetHomeMenuAppletIdForDebug"}, - {IPC::MakeHeader(0x0013, 0, 0), nullptr, "GetPreparationState"}, - {IPC::MakeHeader(0x0014, 1, 0), nullptr, "SetPreparationState"}, - {IPC::MakeHeader(0x0015, 5, 0), &APT_U::PrepareToStartApplication, "PrepareToStartApplication"}, - {IPC::MakeHeader(0x0016, 1, 0), &APT_U::PreloadLibraryApplet, "PreloadLibraryApplet"}, - {IPC::MakeHeader(0x0017, 1, 0), &APT_U::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"}, - {IPC::MakeHeader(0x0018, 1, 0), &APT_U::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"}, - {IPC::MakeHeader(0x0019, 1, 0), &APT_U::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"}, - {IPC::MakeHeader(0x001A, 0, 0), &APT_U::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"}, - {IPC::MakeHeader(0x001B, 3, 4), &APT_U::StartApplication, "StartApplication"}, - {IPC::MakeHeader(0x001C, 0, 0), &APT_U::WakeupApplication, "WakeupApplication"}, - {IPC::MakeHeader(0x001D, 0, 0), nullptr, "CancelApplication"}, - {IPC::MakeHeader(0x001E, 2, 4), &APT_U::StartLibraryApplet, "StartLibraryApplet"}, - {IPC::MakeHeader(0x001F, 2, 4), &APT_U::StartSystemApplet, "StartSystemApplet"}, - {IPC::MakeHeader(0x0020, 1, 4), nullptr, "StartNewestHomeMenu"}, - {IPC::MakeHeader(0x0021, 0, 0), &APT_U::OrderToCloseApplication, "OrderToCloseApplication"}, - {IPC::MakeHeader(0x0022, 1, 0), &APT_U::PrepareToCloseApplication, "PrepareToCloseApplication"}, - {IPC::MakeHeader(0x0023, 1, 0), nullptr, "PrepareToJumpToApplication"}, - {IPC::MakeHeader(0x0024, 1, 4), nullptr, "JumpToApplication"}, - {IPC::MakeHeader(0x0025, 3, 0), &APT_U::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"}, - {IPC::MakeHeader(0x0026, 0, 0), &APT_U::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"}, - {IPC::MakeHeader(0x0027, 1, 4), &APT_U::CloseApplication, "CloseApplication"}, - {IPC::MakeHeader(0x0028, 1, 4), &APT_U::CloseLibraryApplet, "CloseLibraryApplet"}, - {IPC::MakeHeader(0x0029, 1, 4), &APT_U::CloseSystemApplet, "CloseSystemApplet"}, - {IPC::MakeHeader(0x002A, 0, 0), &APT_U::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"}, - {IPC::MakeHeader(0x002B, 0, 0), &APT_U::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"}, - {IPC::MakeHeader(0x002C, 1, 4), &APT_U::JumpToHomeMenu, "JumpToHomeMenu"}, - {IPC::MakeHeader(0x002D, 0, 0), &APT_U::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"}, - {IPC::MakeHeader(0x002E, 1, 4), &APT_U::LeaveHomeMenu, "LeaveHomeMenu"}, - {IPC::MakeHeader(0x002F, 1, 0), nullptr, "PrepareToLeaveResidentApplet"}, - {IPC::MakeHeader(0x0030, 1, 4), nullptr, "LeaveResidentApplet"}, - {IPC::MakeHeader(0x0031, 4, 0), &APT_U::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"}, - {IPC::MakeHeader(0x0032, 2, 4), &APT_U::DoApplicationJump, "DoApplicationJump"}, - {IPC::MakeHeader(0x0033, 0, 0), &APT_U::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"}, - {IPC::MakeHeader(0x0034, 2, 4), nullptr, "SendDeliverArg"}, - {IPC::MakeHeader(0x0035, 2, 0), &APT_U::ReceiveDeliverArg, "ReceiveDeliverArg"}, - {IPC::MakeHeader(0x0036, 1, 0), &APT_U::LoadSysMenuArg, "LoadSysMenuArg"}, - {IPC::MakeHeader(0x0037, 1, 2), &APT_U::StoreSysMenuArg, "StoreSysMenuArg"}, - {IPC::MakeHeader(0x0038, 1, 0), nullptr, "PreloadResidentApplet"}, - {IPC::MakeHeader(0x0039, 1, 0), nullptr, "PrepareToStartResidentApplet"}, - {IPC::MakeHeader(0x003A, 1, 4), nullptr, "StartResidentApplet"}, - {IPC::MakeHeader(0x003B, 1, 0), &APT_U::CancelLibraryApplet, "CancelLibraryApplet"}, - {IPC::MakeHeader(0x003C, 1, 2), nullptr, "SendDspSleep"}, - {IPC::MakeHeader(0x003D, 1, 2), nullptr, "SendDspWakeUp"}, - {IPC::MakeHeader(0x003E, 2, 0), nullptr, "ReplySleepQuery"}, - {IPC::MakeHeader(0x003F, 1, 0), nullptr, "ReplySleepNotificationComplete"}, - {IPC::MakeHeader(0x0040, 1, 2), &APT_U::SendCaptureBufferInfo, "SendCaptureBufferInfo"}, - {IPC::MakeHeader(0x0041, 1, 0), &APT_U::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"}, - {IPC::MakeHeader(0x0042, 2, 0), nullptr, "SleepSystem"}, - {IPC::MakeHeader(0x0043, 1, 0), &APT_U::NotifyToWait, "NotifyToWait"}, - {IPC::MakeHeader(0x0044, 0, 0), &APT_U::GetSharedFont, "GetSharedFont"}, - {IPC::MakeHeader(0x0045, 1, 0), &APT_U::GetWirelessRebootInfo, "GetWirelessRebootInfo"}, - {IPC::MakeHeader(0x0046, 4, 4), &APT_U::Wrap, "Wrap"}, - {IPC::MakeHeader(0x0047, 4, 4), &APT_U::Unwrap, "Unwrap"}, - {IPC::MakeHeader(0x0048, 4, 0), nullptr, "GetProgramInfo"}, - {IPC::MakeHeader(0x0049, 6, 0), nullptr, "Reboot"}, - {IPC::MakeHeader(0x004A, 1, 0), &APT_U::GetCaptureInfo, "GetCaptureInfo"}, - {IPC::MakeHeader(0x004B, 3, 2), &APT_U::AppletUtility, "AppletUtility"}, - {IPC::MakeHeader(0x004C, 0, 0), nullptr, "SetFatalErrDispMode"}, - {IPC::MakeHeader(0x004D, 2, 0), nullptr, "GetAppletProgramInfo"}, - {IPC::MakeHeader(0x004E, 0, 0), nullptr, "HardwareResetAsync"}, - {IPC::MakeHeader(0x004F, 2, 0), &APT_U::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"}, - {IPC::MakeHeader(0x0050, 1, 0), &APT_U::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"}, - {IPC::MakeHeader(0x0051, 2, 0), &APT_U::GetStartupArgument, "GetStartupArgument"}, - {IPC::MakeHeader(0x0052, 4, 4), nullptr, "Wrap1"}, - {IPC::MakeHeader(0x0053, 4, 4), nullptr, "Unwrap1"}, - {IPC::MakeHeader(0x0055, 1, 0), &APT_U::SetScreenCapPostPermission, "SetScreenCapPostPermission"}, - {IPC::MakeHeader(0x0056, 0, 0), &APT_U::GetScreenCapPostPermission, "GetScreenCapPostPermission"}, - {IPC::MakeHeader(0x0057, 1, 4), nullptr, "WakeupApplication2"}, - {IPC::MakeHeader(0x0058, 0, 2), nullptr, "GetProgramID"}, - {IPC::MakeHeader(0x0101, 0, 0), &APT_U::CheckNew3DSApp, "CheckNew3DSApp"}, - {IPC::MakeHeader(0x0102, 0, 0), &APT_U::CheckNew3DS, "CheckNew3DS"}, - {IPC::MakeHeader(0x0103, 0, 0), &APT_U::Unknown0x0103, "Unknown0x0103"}, - {IPC::MakeHeader(0x0104, 0, 0), nullptr, "IsStandardMemoryLayout"}, - {IPC::MakeHeader(0x0105, 4, 0), &APT_U::IsTitleAllowed, "IsTitleAllowed"}, + {0x0001, &APT_U::GetLockHandle, "GetLockHandle"}, + {0x0002, &APT_U::Initialize, "Initialize"}, + {0x0003, &APT_U::Enable, "Enable"}, + {0x0004, nullptr, "Finalize"}, + {0x0005, &APT_U::GetAppletManInfo, "GetAppletManInfo"}, + {0x0006, &APT_U::GetAppletInfo, "GetAppletInfo"}, + {0x0007, nullptr, "GetLastSignaledAppletId"}, + {0x0008, nullptr, "CountRegisteredApplet"}, + {0x0009, &APT_U::IsRegistered, "IsRegistered"}, + {0x000A, nullptr, "GetAttribute"}, + {0x000B, &APT_U::InquireNotification, "InquireNotification"}, + {0x000C, &APT_U::SendParameter, "SendParameter"}, + {0x000D, &APT_U::ReceiveParameter, "ReceiveParameter"}, + {0x000E, &APT_U::GlanceParameter, "GlanceParameter"}, + {0x000F, &APT_U::CancelParameter, "CancelParameter"}, + {0x0010, nullptr, "DebugFunc"}, + {0x0011, nullptr, "MapProgramIdForDebug"}, + {0x0012, nullptr, "SetHomeMenuAppletIdForDebug"}, + {0x0013, nullptr, "GetPreparationState"}, + {0x0014, nullptr, "SetPreparationState"}, + {0x0015, &APT_U::PrepareToStartApplication, "PrepareToStartApplication"}, + {0x0016, &APT_U::PreloadLibraryApplet, "PreloadLibraryApplet"}, + {0x0017, &APT_U::FinishPreloadingLibraryApplet, "FinishPreloadingLibraryApplet"}, + {0x0018, &APT_U::PrepareToStartLibraryApplet, "PrepareToStartLibraryApplet"}, + {0x0019, &APT_U::PrepareToStartSystemApplet, "PrepareToStartSystemApplet"}, + {0x001A, &APT_U::PrepareToStartNewestHomeMenu, "PrepareToStartNewestHomeMenu"}, + {0x001B, &APT_U::StartApplication, "StartApplication"}, + {0x001C, &APT_U::WakeupApplication, "WakeupApplication"}, + {0x001D, nullptr, "CancelApplication"}, + {0x001E, &APT_U::StartLibraryApplet, "StartLibraryApplet"}, + {0x001F, &APT_U::StartSystemApplet, "StartSystemApplet"}, + {0x0020, nullptr, "StartNewestHomeMenu"}, + {0x0021, &APT_U::OrderToCloseApplication, "OrderToCloseApplication"}, + {0x0022, &APT_U::PrepareToCloseApplication, "PrepareToCloseApplication"}, + {0x0023, nullptr, "PrepareToJumpToApplication"}, + {0x0024, nullptr, "JumpToApplication"}, + {0x0025, &APT_U::PrepareToCloseLibraryApplet, "PrepareToCloseLibraryApplet"}, + {0x0026, &APT_U::PrepareToCloseSystemApplet, "PrepareToCloseSystemApplet"}, + {0x0027, &APT_U::CloseApplication, "CloseApplication"}, + {0x0028, &APT_U::CloseLibraryApplet, "CloseLibraryApplet"}, + {0x0029, &APT_U::CloseSystemApplet, "CloseSystemApplet"}, + {0x002A, &APT_U::OrderToCloseSystemApplet, "OrderToCloseSystemApplet"}, + {0x002B, &APT_U::PrepareToJumpToHomeMenu, "PrepareToJumpToHomeMenu"}, + {0x002C, &APT_U::JumpToHomeMenu, "JumpToHomeMenu"}, + {0x002D, &APT_U::PrepareToLeaveHomeMenu, "PrepareToLeaveHomeMenu"}, + {0x002E, &APT_U::LeaveHomeMenu, "LeaveHomeMenu"}, + {0x002F, nullptr, "PrepareToLeaveResidentApplet"}, + {0x0030, nullptr, "LeaveResidentApplet"}, + {0x0031, &APT_U::PrepareToDoApplicationJump, "PrepareToDoApplicationJump"}, + {0x0032, &APT_U::DoApplicationJump, "DoApplicationJump"}, + {0x0033, &APT_U::GetProgramIdOnApplicationJump, "GetProgramIdOnApplicationJump"}, + {0x0034, nullptr, "SendDeliverArg"}, + {0x0035, &APT_U::ReceiveDeliverArg, "ReceiveDeliverArg"}, + {0x0036, &APT_U::LoadSysMenuArg, "LoadSysMenuArg"}, + {0x0037, &APT_U::StoreSysMenuArg, "StoreSysMenuArg"}, + {0x0038, nullptr, "PreloadResidentApplet"}, + {0x0039, nullptr, "PrepareToStartResidentApplet"}, + {0x003A, nullptr, "StartResidentApplet"}, + {0x003B, &APT_U::CancelLibraryApplet, "CancelLibraryApplet"}, + {0x003C, nullptr, "SendDspSleep"}, + {0x003D, nullptr, "SendDspWakeUp"}, + {0x003E, nullptr, "ReplySleepQuery"}, + {0x003F, nullptr, "ReplySleepNotificationComplete"}, + {0x0040, &APT_U::SendCaptureBufferInfo, "SendCaptureBufferInfo"}, + {0x0041, &APT_U::ReceiveCaptureBufferInfo, "ReceiveCaptureBufferInfo"}, + {0x0042, nullptr, "SleepSystem"}, + {0x0043, &APT_U::NotifyToWait, "NotifyToWait"}, + {0x0044, &APT_U::GetSharedFont, "GetSharedFont"}, + {0x0045, &APT_U::GetWirelessRebootInfo, "GetWirelessRebootInfo"}, + {0x0046, &APT_U::Wrap, "Wrap"}, + {0x0047, &APT_U::Unwrap, "Unwrap"}, + {0x0048, nullptr, "GetProgramInfo"}, + {0x0049, nullptr, "Reboot"}, + {0x004A, &APT_U::GetCaptureInfo, "GetCaptureInfo"}, + {0x004B, &APT_U::AppletUtility, "AppletUtility"}, + {0x004C, nullptr, "SetFatalErrDispMode"}, + {0x004D, nullptr, "GetAppletProgramInfo"}, + {0x004E, nullptr, "HardwareResetAsync"}, + {0x004F, &APT_U::SetAppCpuTimeLimit, "SetAppCpuTimeLimit"}, + {0x0050, &APT_U::GetAppCpuTimeLimit, "GetAppCpuTimeLimit"}, + {0x0051, &APT_U::GetStartupArgument, "GetStartupArgument"}, + {0x0052, nullptr, "Wrap1"}, + {0x0053, nullptr, "Unwrap1"}, + {0x0055, &APT_U::SetScreenCapPostPermission, "SetScreenCapPostPermission"}, + {0x0056, &APT_U::GetScreenCapPostPermission, "GetScreenCapPostPermission"}, + {0x0057, nullptr, "WakeupApplication2"}, + {0x0058, nullptr, "GetProgramID"}, + {0x0101, &APT_U::CheckNew3DSApp, "CheckNew3DSApp"}, + {0x0102, &APT_U::CheckNew3DS, "CheckNew3DS"}, + {0x0103, &APT_U::Unknown0x0103, "Unknown0x0103"}, + {0x0104, nullptr, "IsStandardMemoryLayout"}, + {0x0105, &APT_U::IsTitleAllowed, "IsTitleAllowed"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/apt/ns_c.cpp b/src/core/hle/service/apt/ns_c.cpp index 6001b3316..76074c057 100644 --- a/src/core/hle/service/apt/ns_c.cpp +++ b/src/core/hle/service/apt/ns_c.cpp @@ -11,8 +11,8 @@ NS_C::NS_C(std::shared_ptr apt) : Service::APT::Module::NSInterface(std::move(apt), "ns:c", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 4, 0), nullptr, "LockSpecialContent"}, - {IPC::MakeHeader(0x0002, 4, 0), nullptr, "UnlockSpecialContent"}, + {0x0001, nullptr, "LockSpecialContent"}, + {0x0002, nullptr, "UnlockSpecialContent"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/apt/ns_s.cpp b/src/core/hle/service/apt/ns_s.cpp index ac59e453b..dfb178d7b 100644 --- a/src/core/hle/service/apt/ns_s.cpp +++ b/src/core/hle/service/apt/ns_s.cpp @@ -11,21 +11,21 @@ NS_S::NS_S(std::shared_ptr apt) : Service::APT::Module::NSInterface(std::move(apt), "ns:s", 3) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 3, 0), nullptr, "LaunchFIRM"}, - {IPC::MakeHeader(0x0002, 3, 0), nullptr, "LaunchTitle"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "TerminateApplication"}, - {IPC::MakeHeader(0x0004, 1, 0), nullptr, "TerminateProcess"}, - {IPC::MakeHeader(0x0005, 3, 0), nullptr, "LaunchApplicationFIRM"}, - {IPC::MakeHeader(0x0006, 1, 2), &NS_S::SetWirelessRebootInfo, "SetWirelessRebootInfo"}, - {IPC::MakeHeader(0x0007, 1, 2), nullptr, "CardUpdateInitialize"}, - {IPC::MakeHeader(0x0008, 0, 0), nullptr, "CardUpdateShutdown"}, - {IPC::MakeHeader(0x000D, 5, 0), nullptr, "SetTWLBannerHMAC"}, - {IPC::MakeHeader(0x000E, 0, 0), &NS_S::ShutdownAsync, "ShutdownAsync"}, - {IPC::MakeHeader(0x0010, 6, 0), &NS_S::RebootSystem, "RebootSystem"}, - {IPC::MakeHeader(0x0011, 4, 0), nullptr, "TerminateTitle"}, - {IPC::MakeHeader(0x0012, 3, 0), nullptr, "SetApplicationCpuTimeLimit"}, - {IPC::MakeHeader(0x0015, 5, 0), nullptr, "LaunchApplication"}, - {IPC::MakeHeader(0x0016, 0, 0), &NS_S::RebootSystemClean, "RebootSystemClean"}, + {0x0001, nullptr, "LaunchFIRM"}, + {0x0002, nullptr, "LaunchTitle"}, + {0x0003, nullptr, "TerminateApplication"}, + {0x0004, nullptr, "TerminateProcess"}, + {0x0005, nullptr, "LaunchApplicationFIRM"}, + {0x0006, &NS_S::SetWirelessRebootInfo, "SetWirelessRebootInfo"}, + {0x0007, nullptr, "CardUpdateInitialize"}, + {0x0008, nullptr, "CardUpdateShutdown"}, + {0x000D, nullptr, "SetTWLBannerHMAC"}, + {0x000E, &NS_S::ShutdownAsync, "ShutdownAsync"}, + {0x0010, &NS_S::RebootSystem, "RebootSystem"}, + {0x0011, nullptr, "TerminateTitle"}, + {0x0012, nullptr, "SetApplicationCpuTimeLimit"}, + {0x0015, nullptr, "LaunchApplication"}, + {0x0016, &NS_S::RebootSystemClean, "RebootSystemClean"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/boss/boss.cpp b/src/core/hle/service/boss/boss.cpp index f9b96caab..ea29786cd 100644 --- a/src/core/hle/service/boss/boss.cpp +++ b/src/core/hle/service/boss/boss.cpp @@ -13,7 +13,7 @@ namespace Service::BOSS { void Module::Interface::InitializeSession(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 2, 2); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); rp.PopPID(); @@ -24,7 +24,7 @@ void Module::Interface::InitializeSession(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetStorageInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 4, 0); + IPC::RequestParser rp(ctx); const u64 extdata_id = rp.Pop(); const u32 boss_size = rp.Pop(); const u8 extdata_type = rp.Pop(); /// 0 = NAND, 1 = SD @@ -38,7 +38,7 @@ void Module::Interface::SetStorageInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::UnregisterStorage(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -47,7 +47,7 @@ void Module::Interface::UnregisterStorage(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetStorageInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x04, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -57,7 +57,7 @@ void Module::Interface::GetStorageInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::RegisterPrivateRootCa(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 1, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -69,7 +69,7 @@ void Module::Interface::RegisterPrivateRootCa(Kernel::HLERequestContext& ctx) { } void Module::Interface::RegisterPrivateClientCert(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 2, 4); + IPC::RequestParser rp(ctx); const u32 buffer1_size = rp.Pop(); const u32 buffer2_size = rp.Pop(); auto& buffer1 = rp.PopMappedBuffer(); @@ -85,7 +85,7 @@ void Module::Interface::RegisterPrivateClientCert(Kernel::HLERequestContext& ctx } void Module::Interface::GetNewArrivalFlag(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x07, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -95,7 +95,7 @@ void Module::Interface::GetNewArrivalFlag(Kernel::HLERequestContext& ctx) { } void Module::Interface::RegisterNewArrivalEvent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x08, 0, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] const auto event = rp.PopObject(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -105,7 +105,7 @@ void Module::Interface::RegisterNewArrivalEvent(Kernel::HLERequestContext& ctx) } void Module::Interface::SetOptoutFlag(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x09, 1, 0); + IPC::RequestParser rp(ctx); output_flag = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -115,7 +115,7 @@ void Module::Interface::SetOptoutFlag(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetOptoutFlag(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0A, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -125,7 +125,7 @@ void Module::Interface::GetOptoutFlag(Kernel::HLERequestContext& ctx) { } void Module::Interface::RegisterTask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0B, 3, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u8 unk_param2 = rp.Pop(); const u8 unk_param3 = rp.Pop(); @@ -140,7 +140,7 @@ void Module::Interface::RegisterTask(Kernel::HLERequestContext& ctx) { } void Module::Interface::UnregisterTask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0C, 2, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u8 unk_param2 = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -153,7 +153,7 @@ void Module::Interface::UnregisterTask(Kernel::HLERequestContext& ctx) { } void Module::Interface::ReconfigureTask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0D, 2, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u8 unk_param2 = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -166,7 +166,7 @@ void Module::Interface::ReconfigureTask(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskIdList(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0E, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -175,7 +175,7 @@ void Module::Interface::GetTaskIdList(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetStepIdList(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0F, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -187,7 +187,7 @@ void Module::Interface::GetStepIdList(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNsDataIdList(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 4, 2); + IPC::RequestParser rp(ctx); const u32 filter = rp.Pop(); const u32 max_entries = rp.Pop(); /// buffer size in words const u16 word_index_start = rp.Pop(); @@ -207,7 +207,7 @@ void Module::Interface::GetNsDataIdList(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNsDataIdList1(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 4, 2); + IPC::RequestParser rp(ctx); const u32 filter = rp.Pop(); const u32 max_entries = rp.Pop(); /// buffer size in words const u16 word_index_start = rp.Pop(); @@ -227,7 +227,7 @@ void Module::Interface::GetNsDataIdList1(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNsDataIdList2(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 4, 2); + IPC::RequestParser rp(ctx); const u32 filter = rp.Pop(); const u32 max_entries = rp.Pop(); /// buffer size in words const u16 word_index_start = rp.Pop(); @@ -247,7 +247,7 @@ void Module::Interface::GetNsDataIdList2(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNsDataIdList3(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x13, 4, 2); + IPC::RequestParser rp(ctx); const u32 filter = rp.Pop(); const u32 max_entries = rp.Pop(); /// buffer size in words const u16 word_index_start = rp.Pop(); @@ -267,7 +267,7 @@ void Module::Interface::GetNsDataIdList3(Kernel::HLERequestContext& ctx) { } void Module::Interface::SendProperty(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 2, 2); + IPC::RequestParser rp(ctx); const u16 property_id = rp.Pop(); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -280,7 +280,7 @@ void Module::Interface::SendProperty(Kernel::HLERequestContext& ctx) { } void Module::Interface::SendPropertyHandle(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x15, 1, 2); + IPC::RequestParser rp(ctx); const u16 property_id = rp.Pop(); [[maybe_unused]] const std::shared_ptr object = rp.PopGenericObject(); @@ -291,7 +291,7 @@ void Module::Interface::SendPropertyHandle(Kernel::HLERequestContext& ctx) { } void Module::Interface::ReceiveProperty(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 2, 2); + IPC::RequestParser rp(ctx); const u16 property_id = rp.Pop(); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -305,7 +305,7 @@ void Module::Interface::ReceiveProperty(Kernel::HLERequestContext& ctx) { } void Module::Interface::UpdateTaskInterval(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 2, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u16 unk_param2 = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -318,7 +318,7 @@ void Module::Interface::UpdateTaskInterval(Kernel::HLERequestContext& ctx) { } void Module::Interface::UpdateTaskCount(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x18, 2, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u32 unk_param2 = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -331,7 +331,7 @@ void Module::Interface::UpdateTaskCount(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskInterval(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x19, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -344,7 +344,7 @@ void Module::Interface::GetTaskInterval(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskCount(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1A, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -357,7 +357,7 @@ void Module::Interface::GetTaskCount(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskServiceStatus(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1B, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -370,7 +370,7 @@ void Module::Interface::GetTaskServiceStatus(Kernel::HLERequestContext& ctx) { } void Module::Interface::StartTask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1C, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -382,7 +382,7 @@ void Module::Interface::StartTask(Kernel::HLERequestContext& ctx) { } void Module::Interface::StartTaskImmediate(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1D, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -394,7 +394,7 @@ void Module::Interface::StartTaskImmediate(Kernel::HLERequestContext& ctx) { } void Module::Interface::CancelTask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1E, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -406,7 +406,7 @@ void Module::Interface::CancelTask(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskFinishHandle(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1F, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); rb.Push(RESULT_SUCCESS); @@ -416,7 +416,7 @@ void Module::Interface::GetTaskFinishHandle(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x20, 2, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u8 state = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -432,7 +432,7 @@ void Module::Interface::GetTaskState(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskResult(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x21, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -447,7 +447,7 @@ void Module::Interface::GetTaskResult(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskCommErrorCode(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x22, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -462,7 +462,7 @@ void Module::Interface::GetTaskCommErrorCode(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskStatus(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x23, 3, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u8 unk_param2 = rp.Pop(); const u8 unk_param3 = rp.Pop(); @@ -478,7 +478,7 @@ void Module::Interface::GetTaskStatus(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskError(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x24, 2, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u8 unk_param2 = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -492,7 +492,7 @@ void Module::Interface::GetTaskError(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x25, 2, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u8 unk_param2 = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -505,7 +505,7 @@ void Module::Interface::GetTaskInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::DeleteNsData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x26, 1, 0); + IPC::RequestParser rp(ctx); const u32 ns_data_id = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -515,7 +515,7 @@ void Module::Interface::DeleteNsData(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNsDataHeaderInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x27, 3, 2); + IPC::RequestParser rp(ctx); const u32 ns_data_id = rp.Pop(); const u8 type = rp.Pop(); const u32 size = rp.Pop(); @@ -530,7 +530,7 @@ void Module::Interface::GetNsDataHeaderInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::ReadNsData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x28, 4, 2); + IPC::RequestParser rp(ctx); const u32 ns_data_id = rp.Pop(); const u64 offset = rp.Pop(); const u32 size = rp.Pop(); @@ -547,7 +547,7 @@ void Module::Interface::ReadNsData(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetNsDataAdditionalInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x29, 2, 0); + IPC::RequestParser rp(ctx); const u32 unk_param1 = rp.Pop(); const u32 unk_param2 = rp.Pop(); @@ -559,7 +559,7 @@ void Module::Interface::SetNsDataAdditionalInfo(Kernel::HLERequestContext& ctx) } void Module::Interface::GetNsDataAdditionalInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2A, 1, 0); + IPC::RequestParser rp(ctx); const u32 unk_param1 = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -570,7 +570,7 @@ void Module::Interface::GetNsDataAdditionalInfo(Kernel::HLERequestContext& ctx) } void Module::Interface::SetNsDataNewFlag(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2B, 2, 0); + IPC::RequestParser rp(ctx); const u32 unk_param1 = rp.Pop(); ns_data_new_flag = rp.Pop(); @@ -582,7 +582,7 @@ void Module::Interface::SetNsDataNewFlag(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNsDataNewFlag(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2C, 1, 0); + IPC::RequestParser rp(ctx); const u32 unk_param1 = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -594,7 +594,7 @@ void Module::Interface::GetNsDataNewFlag(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNsDataLastUpdate(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2D, 1, 0); + IPC::RequestParser rp(ctx); const u32 unk_param1 = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); @@ -606,7 +606,7 @@ void Module::Interface::GetNsDataLastUpdate(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetErrorCode(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2E, 1, 0); + IPC::RequestParser rp(ctx); const u8 input = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -617,7 +617,7 @@ void Module::Interface::GetErrorCode(Kernel::HLERequestContext& ctx) { } void Module::Interface::RegisterStorageEntry(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2F, 5, 0); + IPC::RequestParser rp(ctx); const u32 unk_param1 = rp.Pop(); const u32 unk_param2 = rp.Pop(); const u32 unk_param3 = rp.Pop(); @@ -634,7 +634,7 @@ void Module::Interface::RegisterStorageEntry(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetStorageEntryInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x30, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); rb.Push(RESULT_SUCCESS); @@ -645,7 +645,7 @@ void Module::Interface::GetStorageEntryInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetStorageOption(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x31, 4, 0); + IPC::RequestParser rp(ctx); const u8 unk_param1 = rp.Pop(); const u32 unk_param2 = rp.Pop(); const u16 unk_param3 = rp.Pop(); @@ -661,7 +661,7 @@ void Module::Interface::SetStorageOption(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetStorageOption(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x32, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(5, 0); rb.Push(RESULT_SUCCESS); @@ -674,7 +674,7 @@ void Module::Interface::GetStorageOption(Kernel::HLERequestContext& ctx) { } void Module::Interface::StartBgImmediate(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x33, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -686,7 +686,7 @@ void Module::Interface::StartBgImmediate(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskProperty0(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x34, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -699,7 +699,7 @@ void Module::Interface::GetTaskProperty0(Kernel::HLERequestContext& ctx) { } void Module::Interface::RegisterImmediateTask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x35, 3, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u8 unk_param2 = rp.Pop(); const u8 unk_param3 = rp.Pop(); @@ -714,7 +714,7 @@ void Module::Interface::RegisterImmediateTask(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetTaskQuery(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x36, 2, 4); + IPC::RequestParser rp(ctx); const u32 buffer1_size = rp.Pop(); const u32 buffer2_size = rp.Pop(); auto& buffer1 = rp.PopMappedBuffer(); @@ -730,7 +730,7 @@ void Module::Interface::SetTaskQuery(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTaskQuery(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x37, 2, 4); + IPC::RequestParser rp(ctx); const u32 buffer1_size = rp.Pop(); const u32 buffer2_size = rp.Pop(); auto& buffer1 = rp.PopMappedBuffer(); @@ -746,7 +746,7 @@ void Module::Interface::GetTaskQuery(Kernel::HLERequestContext& ctx) { } void Module::Interface::InitializeSessionPrivileged(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x401, 2, 2); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); rp.PopPID(); @@ -757,7 +757,7 @@ void Module::Interface::InitializeSessionPrivileged(Kernel::HLERequestContext& c } void Module::Interface::GetAppNewFlag(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x404, 2, 0); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -768,7 +768,7 @@ void Module::Interface::GetAppNewFlag(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNsDataIdListPrivileged(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x40D, 6, 2); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); const u32 filter = rp.Pop(); const u32 max_entries = rp.Pop(); /// buffer size in words @@ -789,7 +789,7 @@ void Module::Interface::GetNsDataIdListPrivileged(Kernel::HLERequestContext& ctx } void Module::Interface::GetNsDataIdListPrivileged1(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x40E, 6, 2); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); const u32 filter = rp.Pop(); const u32 max_entries = rp.Pop(); /// buffer size in words @@ -810,7 +810,7 @@ void Module::Interface::GetNsDataIdListPrivileged1(Kernel::HLERequestContext& ct } void Module::Interface::SendPropertyPrivileged(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x413, 2, 2); + IPC::RequestParser rp(ctx); const u16 property_id = rp.Pop(); const u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -823,7 +823,7 @@ void Module::Interface::SendPropertyPrivileged(Kernel::HLERequestContext& ctx) { } void Module::Interface::DeleteNsDataPrivileged(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x415, 3, 0); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); const u32 ns_data_id = rp.Pop(); @@ -835,7 +835,7 @@ void Module::Interface::DeleteNsDataPrivileged(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNsDataHeaderInfoPrivileged(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x416, 5, 2); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); const u32 ns_data_id = rp.Pop(); const u8 type = rp.Pop(); @@ -852,7 +852,7 @@ void Module::Interface::GetNsDataHeaderInfoPrivileged(Kernel::HLERequestContext& } void Module::Interface::ReadNsDataPrivileged(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x417, 6, 2); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); const u32 ns_data_id = rp.Pop(); const u64 offset = rp.Pop(); @@ -871,7 +871,7 @@ void Module::Interface::ReadNsDataPrivileged(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetNsDataNewFlagPrivileged(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x41A, 4, 0); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); const u32 unk_param1 = rp.Pop(); ns_data_new_flag_privileged = rp.Pop(); @@ -886,7 +886,7 @@ void Module::Interface::SetNsDataNewFlagPrivileged(Kernel::HLERequestContext& ct } void Module::Interface::GetNsDataNewFlagPrivileged(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x41B, 3, 0); + IPC::RequestParser rp(ctx); const u64 programID = rp.Pop(); const u32 unk_param1 = rp.Pop(); diff --git a/src/core/hle/service/boss/boss_p.cpp b/src/core/hle/service/boss/boss_p.cpp index 671fd917d..b9109f7e7 100644 --- a/src/core/hle/service/boss/boss_p.cpp +++ b/src/core/hle/service/boss/boss_p.cpp @@ -12,72 +12,72 @@ BOSS_P::BOSS_P(std::shared_ptr boss) static const FunctionInfo functions[] = { // boss:u shared commands // clang-format off - {IPC::MakeHeader(0x0001, 2, 2), &BOSS_P::InitializeSession, "InitializeSession"}, - {IPC::MakeHeader(0x0002, 4, 0), &BOSS_P::SetStorageInfo, "RegisterStorage"}, - {IPC::MakeHeader(0x0003, 0, 0), &BOSS_P::UnregisterStorage, "UnregisterStorage"}, - {IPC::MakeHeader(0x0004, 0, 0), &BOSS_P::GetStorageInfo, "GetStorageInfo"}, - {IPC::MakeHeader(0x0005, 1, 2), &BOSS_P::RegisterPrivateRootCa, "RegisterPrivateRootCa"}, - {IPC::MakeHeader(0x0006, 2, 4), &BOSS_P::RegisterPrivateClientCert, "RegisterPrivateClientCert"}, - {IPC::MakeHeader(0x0007, 0, 0), &BOSS_P::GetNewArrivalFlag, "GetNewArrivalFlag"}, - {IPC::MakeHeader(0x0008, 0, 2), &BOSS_P::RegisterNewArrivalEvent, "RegisterNewArrivalEvent"}, - {IPC::MakeHeader(0x0009, 1, 0), &BOSS_P::SetOptoutFlag, "SetOptoutFlag"}, - {IPC::MakeHeader(0x000A, 0, 0), &BOSS_P::GetOptoutFlag, "GetOptoutFlag"}, - {IPC::MakeHeader(0x000B, 3, 2), &BOSS_P::RegisterTask, "RegisterTask"}, - {IPC::MakeHeader(0x000C, 2, 2), &BOSS_P::UnregisterTask, "UnregisterTask"}, - {IPC::MakeHeader(0x000D, 2, 2), &BOSS_P::ReconfigureTask, "ReconfigureTask"}, - {IPC::MakeHeader(0x000E, 0, 0), &BOSS_P::GetTaskIdList, "GetTaskIdList"}, - {IPC::MakeHeader(0x000F, 1, 2), &BOSS_P::GetStepIdList, "GetStepIdList"}, - {IPC::MakeHeader(0x0010, 4, 2), &BOSS_P::GetNsDataIdList, "GetNsDataIdList"}, - {IPC::MakeHeader(0x0011, 4, 2), &BOSS_P::GetNsDataIdList1, "GetNsDataIdList1"}, - {IPC::MakeHeader(0x0012, 4, 2), &BOSS_P::GetNsDataIdList2, "GetNsDataIdList2"}, - {IPC::MakeHeader(0x0013, 4, 2), &BOSS_P::GetNsDataIdList3, "GetNsDataIdList3"}, - {IPC::MakeHeader(0x0014, 2, 2), &BOSS_P::SendProperty, "SendProperty"}, - {IPC::MakeHeader(0x0015, 1, 2), &BOSS_P::SendPropertyHandle, "SendPropertyHandle"}, - {IPC::MakeHeader(0x0016, 2, 2), &BOSS_P::ReceiveProperty, "ReceiveProperty"}, - {IPC::MakeHeader(0x0017, 2, 2), &BOSS_P::UpdateTaskInterval, "UpdateTaskInterval"}, - {IPC::MakeHeader(0x0018, 2, 2), &BOSS_P::UpdateTaskCount, "UpdateTaskCount"}, - {IPC::MakeHeader(0x0019, 1, 2), &BOSS_P::GetTaskInterval, "GetTaskInterval"}, - {IPC::MakeHeader(0x001A, 1, 2), &BOSS_P::GetTaskCount, "GetTaskCount"}, - {IPC::MakeHeader(0x001B, 1, 2), &BOSS_P::GetTaskServiceStatus, "GetTaskServiceStatus"}, - {IPC::MakeHeader(0x001C, 1, 2), &BOSS_P::StartTask, "StartTask"}, - {IPC::MakeHeader(0x001D, 1, 2), &BOSS_P::StartTaskImmediate, "StartTaskImmediate"}, - {IPC::MakeHeader(0x001E, 1, 2), &BOSS_P::CancelTask, "CancelTask"}, - {IPC::MakeHeader(0x001F, 0, 0), &BOSS_P::GetTaskFinishHandle, "GetTaskFinishHandle"}, - {IPC::MakeHeader(0x0020, 2, 2), &BOSS_P::GetTaskState, "GetTaskState"}, - {IPC::MakeHeader(0x0021, 1, 2), &BOSS_P::GetTaskResult, "GetTaskResult"}, - {IPC::MakeHeader(0x0022, 1, 2), &BOSS_P::GetTaskCommErrorCode, "GetTaskCommErrorCode"}, - {IPC::MakeHeader(0x0023, 3, 2), &BOSS_P::GetTaskStatus, "GetTaskStatus"}, - {IPC::MakeHeader(0x0024, 2, 2), &BOSS_P::GetTaskError, "GetTaskError"}, - {IPC::MakeHeader(0x0025, 2, 2), &BOSS_P::GetTaskInfo, "GetTaskInfo"}, - {IPC::MakeHeader(0x0026, 1, 0), &BOSS_P::DeleteNsData, "DeleteNsData"}, - {IPC::MakeHeader(0x0027, 3, 2), &BOSS_P::GetNsDataHeaderInfo, "GetNsDataHeaderInfo"}, - {IPC::MakeHeader(0x0028, 4, 2), &BOSS_P::ReadNsData, "ReadNsData"}, - {IPC::MakeHeader(0x0029, 2, 0), &BOSS_P::SetNsDataAdditionalInfo, "SetNsDataAdditionalInfo"}, - {IPC::MakeHeader(0x002A, 1, 0), &BOSS_P::GetNsDataAdditionalInfo, "GetNsDataAdditionalInfo"}, - {IPC::MakeHeader(0x002B, 2, 0), &BOSS_P::SetNsDataNewFlag, "SetNsDataNewFlag"}, - {IPC::MakeHeader(0x002C, 1, 0), &BOSS_P::GetNsDataNewFlag, "GetNsDataNewFlag"}, - {IPC::MakeHeader(0x002D, 1, 0), &BOSS_P::GetNsDataLastUpdate, "GetNsDataLastUpdate"}, - {IPC::MakeHeader(0x002E, 1, 0), &BOSS_P::GetErrorCode, "GetErrorCode"}, - {IPC::MakeHeader(0x002F, 5, 0), &BOSS_P::RegisterStorageEntry, "RegisterStorageEntry"}, - {IPC::MakeHeader(0x0030, 0, 0), &BOSS_P::GetStorageEntryInfo, "GetStorageEntryInfo"}, - {IPC::MakeHeader(0x0031, 4, 0), &BOSS_P::SetStorageOption, "SetStorageOption"}, - {IPC::MakeHeader(0x0032, 0, 0), &BOSS_P::GetStorageOption, "GetStorageOption"}, - {IPC::MakeHeader(0x0033, 1, 2), &BOSS_P::StartBgImmediate, "StartBgImmediate"}, - {IPC::MakeHeader(0x0034, 1, 2), &BOSS_P::GetTaskProperty0, "GetTaskProperty0"}, - {IPC::MakeHeader(0x0035, 3, 2), &BOSS_P::RegisterImmediateTask, "RegisterImmediateTask"}, - {IPC::MakeHeader(0x0036, 2, 4), &BOSS_P::SetTaskQuery, "SetTaskQuery"}, - {IPC::MakeHeader(0x0037, 2, 4), &BOSS_P::GetTaskQuery, "GetTaskQuery"}, + {0x0001, &BOSS_P::InitializeSession, "InitializeSession"}, + {0x0002, &BOSS_P::SetStorageInfo, "RegisterStorage"}, + {0x0003, &BOSS_P::UnregisterStorage, "UnregisterStorage"}, + {0x0004, &BOSS_P::GetStorageInfo, "GetStorageInfo"}, + {0x0005, &BOSS_P::RegisterPrivateRootCa, "RegisterPrivateRootCa"}, + {0x0006, &BOSS_P::RegisterPrivateClientCert, "RegisterPrivateClientCert"}, + {0x0007, &BOSS_P::GetNewArrivalFlag, "GetNewArrivalFlag"}, + {0x0008, &BOSS_P::RegisterNewArrivalEvent, "RegisterNewArrivalEvent"}, + {0x0009, &BOSS_P::SetOptoutFlag, "SetOptoutFlag"}, + {0x000A, &BOSS_P::GetOptoutFlag, "GetOptoutFlag"}, + {0x000B, &BOSS_P::RegisterTask, "RegisterTask"}, + {0x000C, &BOSS_P::UnregisterTask, "UnregisterTask"}, + {0x000D, &BOSS_P::ReconfigureTask, "ReconfigureTask"}, + {0x000E, &BOSS_P::GetTaskIdList, "GetTaskIdList"}, + {0x000F, &BOSS_P::GetStepIdList, "GetStepIdList"}, + {0x0010, &BOSS_P::GetNsDataIdList, "GetNsDataIdList"}, + {0x0011, &BOSS_P::GetNsDataIdList1, "GetNsDataIdList1"}, + {0x0012, &BOSS_P::GetNsDataIdList2, "GetNsDataIdList2"}, + {0x0013, &BOSS_P::GetNsDataIdList3, "GetNsDataIdList3"}, + {0x0014, &BOSS_P::SendProperty, "SendProperty"}, + {0x0015, &BOSS_P::SendPropertyHandle, "SendPropertyHandle"}, + {0x0016, &BOSS_P::ReceiveProperty, "ReceiveProperty"}, + {0x0017, &BOSS_P::UpdateTaskInterval, "UpdateTaskInterval"}, + {0x0018, &BOSS_P::UpdateTaskCount, "UpdateTaskCount"}, + {0x0019, &BOSS_P::GetTaskInterval, "GetTaskInterval"}, + {0x001A, &BOSS_P::GetTaskCount, "GetTaskCount"}, + {0x001B, &BOSS_P::GetTaskServiceStatus, "GetTaskServiceStatus"}, + {0x001C, &BOSS_P::StartTask, "StartTask"}, + {0x001D, &BOSS_P::StartTaskImmediate, "StartTaskImmediate"}, + {0x001E, &BOSS_P::CancelTask, "CancelTask"}, + {0x001F, &BOSS_P::GetTaskFinishHandle, "GetTaskFinishHandle"}, + {0x0020, &BOSS_P::GetTaskState, "GetTaskState"}, + {0x0021, &BOSS_P::GetTaskResult, "GetTaskResult"}, + {0x0022, &BOSS_P::GetTaskCommErrorCode, "GetTaskCommErrorCode"}, + {0x0023, &BOSS_P::GetTaskStatus, "GetTaskStatus"}, + {0x0024, &BOSS_P::GetTaskError, "GetTaskError"}, + {0x0025, &BOSS_P::GetTaskInfo, "GetTaskInfo"}, + {0x0026, &BOSS_P::DeleteNsData, "DeleteNsData"}, + {0x0027, &BOSS_P::GetNsDataHeaderInfo, "GetNsDataHeaderInfo"}, + {0x0028, &BOSS_P::ReadNsData, "ReadNsData"}, + {0x0029, &BOSS_P::SetNsDataAdditionalInfo, "SetNsDataAdditionalInfo"}, + {0x002A, &BOSS_P::GetNsDataAdditionalInfo, "GetNsDataAdditionalInfo"}, + {0x002B, &BOSS_P::SetNsDataNewFlag, "SetNsDataNewFlag"}, + {0x002C, &BOSS_P::GetNsDataNewFlag, "GetNsDataNewFlag"}, + {0x002D, &BOSS_P::GetNsDataLastUpdate, "GetNsDataLastUpdate"}, + {0x002E, &BOSS_P::GetErrorCode, "GetErrorCode"}, + {0x002F, &BOSS_P::RegisterStorageEntry, "RegisterStorageEntry"}, + {0x0030, &BOSS_P::GetStorageEntryInfo, "GetStorageEntryInfo"}, + {0x0031, &BOSS_P::SetStorageOption, "SetStorageOption"}, + {0x0032, &BOSS_P::GetStorageOption, "GetStorageOption"}, + {0x0033, &BOSS_P::StartBgImmediate, "StartBgImmediate"}, + {0x0034, &BOSS_P::GetTaskProperty0, "GetTaskProperty0"}, + {0x0035, &BOSS_P::RegisterImmediateTask, "RegisterImmediateTask"}, + {0x0036, &BOSS_P::SetTaskQuery, "SetTaskQuery"}, + {0x0037, &BOSS_P::GetTaskQuery, "GetTaskQuery"}, // boss:p - {IPC::MakeHeader(0x0401, 2, 2), &BOSS_P::InitializeSessionPrivileged, "InitializeSessionPrivileged"}, - {IPC::MakeHeader(0x0404, 2, 0), &BOSS_P::GetAppNewFlag, "GetAppNewFlag"}, - {IPC::MakeHeader(0x040D, 6, 2), &BOSS_P::GetNsDataIdListPrivileged, "GetNsDataIdListPrivileged"}, - {IPC::MakeHeader(0x040E, 6, 2), &BOSS_P::GetNsDataIdListPrivileged1, "GetNsDataIdListPrivileged1"}, - {IPC::MakeHeader(0x0413, 2, 2), &BOSS_P::SendPropertyPrivileged, "SendPropertyPrivileged"}, - {IPC::MakeHeader(0x0415, 3, 0), &BOSS_P::DeleteNsDataPrivileged, "DeleteNsDataPrivileged"}, - {IPC::MakeHeader(0x0416, 5, 2), &BOSS_P::GetNsDataHeaderInfoPrivileged, "GetNsDataHeaderInfoPrivileged"}, - {IPC::MakeHeader(0x0417, 6, 2), &BOSS_P::ReadNsDataPrivileged, "ReadNsDataPrivileged"}, - {IPC::MakeHeader(0x041A, 4, 0), &BOSS_P::SetNsDataNewFlagPrivileged, "SetNsDataNewFlagPrivileged"}, - {IPC::MakeHeader(0x041B, 3, 0), &BOSS_P::GetNsDataNewFlagPrivileged, "GetNsDataNewFlagPrivileged"}, + {0x0401, &BOSS_P::InitializeSessionPrivileged, "InitializeSessionPrivileged"}, + {0x0404, &BOSS_P::GetAppNewFlag, "GetAppNewFlag"}, + {0x040D, &BOSS_P::GetNsDataIdListPrivileged, "GetNsDataIdListPrivileged"}, + {0x040E, &BOSS_P::GetNsDataIdListPrivileged1, "GetNsDataIdListPrivileged1"}, + {0x0413, &BOSS_P::SendPropertyPrivileged, "SendPropertyPrivileged"}, + {0x0415, &BOSS_P::DeleteNsDataPrivileged, "DeleteNsDataPrivileged"}, + {0x0416, &BOSS_P::GetNsDataHeaderInfoPrivileged, "GetNsDataHeaderInfoPrivileged"}, + {0x0417, &BOSS_P::ReadNsDataPrivileged, "ReadNsDataPrivileged"}, + {0x041A, &BOSS_P::SetNsDataNewFlagPrivileged, "SetNsDataNewFlagPrivileged"}, + {0x041B, &BOSS_P::GetNsDataNewFlagPrivileged, "GetNsDataNewFlagPrivileged"}, // clang-format on }; diff --git a/src/core/hle/service/boss/boss_u.cpp b/src/core/hle/service/boss/boss_u.cpp index 70cba8471..080dbf99a 100644 --- a/src/core/hle/service/boss/boss_u.cpp +++ b/src/core/hle/service/boss/boss_u.cpp @@ -11,61 +11,61 @@ BOSS_U::BOSS_U(std::shared_ptr boss) : Module::Interface(std::move(boss), "boss:U", DefaultMaxSessions) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 2, 2), &BOSS_U::InitializeSession, "InitializeSession"}, - {IPC::MakeHeader(0x0002, 4, 0), &BOSS_U::SetStorageInfo, "SetStorageInfo"}, - {IPC::MakeHeader(0x0003, 0, 0), &BOSS_U::UnregisterStorage, "UnregisterStorage"}, - {IPC::MakeHeader(0x0004, 0, 0), &BOSS_U::GetStorageInfo, "GetStorageInfo"}, - {IPC::MakeHeader(0x0005, 1, 2), &BOSS_U::RegisterPrivateRootCa, "RegisterPrivateRootCa"}, - {IPC::MakeHeader(0x0006, 2, 4), &BOSS_U::RegisterPrivateClientCert, "RegisterPrivateClientCert"}, - {IPC::MakeHeader(0x0007, 0, 0), &BOSS_U::GetNewArrivalFlag, "GetNewArrivalFlag"}, - {IPC::MakeHeader(0x0008, 0, 2), &BOSS_U::RegisterNewArrivalEvent, "RegisterNewArrivalEvent"}, - {IPC::MakeHeader(0x0009, 1, 0), &BOSS_U::SetOptoutFlag, "SetOptoutFlag"}, - {IPC::MakeHeader(0x000A, 0, 0), &BOSS_U::GetOptoutFlag, "GetOptoutFlag"}, - {IPC::MakeHeader(0x000B, 3, 2), &BOSS_U::RegisterTask, "RegisterTask"}, - {IPC::MakeHeader(0x000C, 2, 2), &BOSS_U::UnregisterTask, "UnregisterTask"}, - {IPC::MakeHeader(0x000D, 2, 2), &BOSS_U::ReconfigureTask, "ReconfigureTask"}, - {IPC::MakeHeader(0x000E, 0, 0), &BOSS_U::GetTaskIdList, "GetTaskIdList"}, - {IPC::MakeHeader(0x000F, 1, 2), &BOSS_U::GetStepIdList, "GetStepIdList"}, - {IPC::MakeHeader(0x0010, 4, 2), &BOSS_U::GetNsDataIdList, "GetNsDataIdList"}, - {IPC::MakeHeader(0x0011, 4, 2), &BOSS_U::GetNsDataIdList1, "GetNsDataIdList1"}, - {IPC::MakeHeader(0x0012, 4, 2), &BOSS_U::GetNsDataIdList2, "GetNsDataIdList2"}, - {IPC::MakeHeader(0x0013, 4, 2), &BOSS_U::GetNsDataIdList3, "GetNsDataIdList3"}, - {IPC::MakeHeader(0x0014, 2, 2), &BOSS_U::SendProperty, "SendProperty"}, - {IPC::MakeHeader(0x0015, 1, 2), &BOSS_U::SendPropertyHandle, "SendPropertyHandle"}, - {IPC::MakeHeader(0x0016, 2, 2), &BOSS_U::ReceiveProperty, "ReceiveProperty"}, - {IPC::MakeHeader(0x0017, 2, 2), &BOSS_U::UpdateTaskInterval, "UpdateTaskInterval"}, - {IPC::MakeHeader(0x0018, 2, 2), &BOSS_U::UpdateTaskCount, "UpdateTaskCount"}, - {IPC::MakeHeader(0x0019, 1, 2), &BOSS_U::GetTaskInterval, "GetTaskInterval"}, - {IPC::MakeHeader(0x001A, 1, 2), &BOSS_U::GetTaskCount, "GetTaskCount"}, - {IPC::MakeHeader(0x001B, 1, 2), &BOSS_U::GetTaskServiceStatus, "GetTaskServiceStatus"}, - {IPC::MakeHeader(0x001C, 1, 2), &BOSS_U::StartTask, "StartTask"}, - {IPC::MakeHeader(0x001D, 1, 2), &BOSS_U::StartTaskImmediate, "StartTaskImmediate"}, - {IPC::MakeHeader(0x001E, 1, 2), &BOSS_U::CancelTask, "CancelTask"}, - {IPC::MakeHeader(0x001F, 0, 0), &BOSS_U::GetTaskFinishHandle, "GetTaskFinishHandle"}, - {IPC::MakeHeader(0x0020, 2, 2), &BOSS_U::GetTaskState, "GetTaskState"}, - {IPC::MakeHeader(0x0021, 1, 2), &BOSS_U::GetTaskResult, "GetTaskResult"}, - {IPC::MakeHeader(0x0022, 1, 2), &BOSS_U::GetTaskCommErrorCode, "GetTaskCommErrorCode"}, - {IPC::MakeHeader(0x0023, 3, 2), &BOSS_U::GetTaskStatus, "GetTaskStatus"}, - {IPC::MakeHeader(0x0024, 2, 2), &BOSS_U::GetTaskError, "GetTaskError"}, - {IPC::MakeHeader(0x0025, 2, 2), &BOSS_U::GetTaskInfo, "GetTaskInfo"}, - {IPC::MakeHeader(0x0026, 1, 0), &BOSS_U::DeleteNsData, "DeleteNsData"}, - {IPC::MakeHeader(0x0027, 3, 2), &BOSS_U::GetNsDataHeaderInfo, "GetNsDataHeaderInfo"}, - {IPC::MakeHeader(0x0028, 4, 2), &BOSS_U::ReadNsData, "ReadNsData"}, - {IPC::MakeHeader(0x0029, 2, 0), &BOSS_U::SetNsDataAdditionalInfo, "SetNsDataAdditionalInfo"}, - {IPC::MakeHeader(0x002A, 1, 0), &BOSS_U::GetNsDataAdditionalInfo, "GetNsDataAdditionalInfo"}, - {IPC::MakeHeader(0x002B, 2, 0), &BOSS_U::SetNsDataNewFlag, "SetNsDataNewFlag"}, - {IPC::MakeHeader(0x002C, 1, 0), &BOSS_U::GetNsDataNewFlag, "GetNsDataNewFlag"}, - {IPC::MakeHeader(0x002D, 1, 0), &BOSS_U::GetNsDataLastUpdate, "GetNsDataLastUpdate"}, - {IPC::MakeHeader(0x002E, 1, 0), &BOSS_U::GetErrorCode, "GetErrorCode"}, - {IPC::MakeHeader(0x002F, 5, 0), &BOSS_U::RegisterStorageEntry, "RegisterStorageEntry"}, - {IPC::MakeHeader(0x0030, 0, 0), &BOSS_U::GetStorageEntryInfo, "GetStorageEntryInfo"}, - {IPC::MakeHeader(0x0031, 4, 0), &BOSS_U::SetStorageOption, "SetStorageOption"}, - {IPC::MakeHeader(0x0032, 0, 0), &BOSS_U::GetStorageOption, "GetStorageOption"}, - {IPC::MakeHeader(0x0033, 1, 2), &BOSS_U::StartBgImmediate, "StartBgImmediate"}, - {IPC::MakeHeader(0x0034, 1, 2), &BOSS_U::GetTaskProperty0, "GetTaskProperty0"}, - {IPC::MakeHeader(0x0035, 3, 2), &BOSS_U::RegisterImmediateTask, "RegisterImmediateTask"}, - {IPC::MakeHeader(0x0036, 2, 4), &BOSS_U::SetTaskQuery, "SetTaskQuery"}, - {IPC::MakeHeader(0x0037, 2, 4), &BOSS_U::GetTaskQuery, "GetTaskQuery"}, + {0x0001, &BOSS_U::InitializeSession, "InitializeSession"}, + {0x0002, &BOSS_U::SetStorageInfo, "SetStorageInfo"}, + {0x0003, &BOSS_U::UnregisterStorage, "UnregisterStorage"}, + {0x0004, &BOSS_U::GetStorageInfo, "GetStorageInfo"}, + {0x0005, &BOSS_U::RegisterPrivateRootCa, "RegisterPrivateRootCa"}, + {0x0006, &BOSS_U::RegisterPrivateClientCert, "RegisterPrivateClientCert"}, + {0x0007, &BOSS_U::GetNewArrivalFlag, "GetNewArrivalFlag"}, + {0x0008, &BOSS_U::RegisterNewArrivalEvent, "RegisterNewArrivalEvent"}, + {0x0009, &BOSS_U::SetOptoutFlag, "SetOptoutFlag"}, + {0x000A, &BOSS_U::GetOptoutFlag, "GetOptoutFlag"}, + {0x000B, &BOSS_U::RegisterTask, "RegisterTask"}, + {0x000C, &BOSS_U::UnregisterTask, "UnregisterTask"}, + {0x000D, &BOSS_U::ReconfigureTask, "ReconfigureTask"}, + {0x000E, &BOSS_U::GetTaskIdList, "GetTaskIdList"}, + {0x000F, &BOSS_U::GetStepIdList, "GetStepIdList"}, + {0x0010, &BOSS_U::GetNsDataIdList, "GetNsDataIdList"}, + {0x0011, &BOSS_U::GetNsDataIdList1, "GetNsDataIdList1"}, + {0x0012, &BOSS_U::GetNsDataIdList2, "GetNsDataIdList2"}, + {0x0013, &BOSS_U::GetNsDataIdList3, "GetNsDataIdList3"}, + {0x0014, &BOSS_U::SendProperty, "SendProperty"}, + {0x0015, &BOSS_U::SendPropertyHandle, "SendPropertyHandle"}, + {0x0016, &BOSS_U::ReceiveProperty, "ReceiveProperty"}, + {0x0017, &BOSS_U::UpdateTaskInterval, "UpdateTaskInterval"}, + {0x0018, &BOSS_U::UpdateTaskCount, "UpdateTaskCount"}, + {0x0019, &BOSS_U::GetTaskInterval, "GetTaskInterval"}, + {0x001A, &BOSS_U::GetTaskCount, "GetTaskCount"}, + {0x001B, &BOSS_U::GetTaskServiceStatus, "GetTaskServiceStatus"}, + {0x001C, &BOSS_U::StartTask, "StartTask"}, + {0x001D, &BOSS_U::StartTaskImmediate, "StartTaskImmediate"}, + {0x001E, &BOSS_U::CancelTask, "CancelTask"}, + {0x001F, &BOSS_U::GetTaskFinishHandle, "GetTaskFinishHandle"}, + {0x0020, &BOSS_U::GetTaskState, "GetTaskState"}, + {0x0021, &BOSS_U::GetTaskResult, "GetTaskResult"}, + {0x0022, &BOSS_U::GetTaskCommErrorCode, "GetTaskCommErrorCode"}, + {0x0023, &BOSS_U::GetTaskStatus, "GetTaskStatus"}, + {0x0024, &BOSS_U::GetTaskError, "GetTaskError"}, + {0x0025, &BOSS_U::GetTaskInfo, "GetTaskInfo"}, + {0x0026, &BOSS_U::DeleteNsData, "DeleteNsData"}, + {0x0027, &BOSS_U::GetNsDataHeaderInfo, "GetNsDataHeaderInfo"}, + {0x0028, &BOSS_U::ReadNsData, "ReadNsData"}, + {0x0029, &BOSS_U::SetNsDataAdditionalInfo, "SetNsDataAdditionalInfo"}, + {0x002A, &BOSS_U::GetNsDataAdditionalInfo, "GetNsDataAdditionalInfo"}, + {0x002B, &BOSS_U::SetNsDataNewFlag, "SetNsDataNewFlag"}, + {0x002C, &BOSS_U::GetNsDataNewFlag, "GetNsDataNewFlag"}, + {0x002D, &BOSS_U::GetNsDataLastUpdate, "GetNsDataLastUpdate"}, + {0x002E, &BOSS_U::GetErrorCode, "GetErrorCode"}, + {0x002F, &BOSS_U::RegisterStorageEntry, "RegisterStorageEntry"}, + {0x0030, &BOSS_U::GetStorageEntryInfo, "GetStorageEntryInfo"}, + {0x0031, &BOSS_U::SetStorageOption, "SetStorageOption"}, + {0x0032, &BOSS_U::GetStorageOption, "GetStorageOption"}, + {0x0033, &BOSS_U::StartBgImmediate, "StartBgImmediate"}, + {0x0034, &BOSS_U::GetTaskProperty0, "GetTaskProperty0"}, + {0x0035, &BOSS_U::RegisterImmediateTask, "RegisterImmediateTask"}, + {0x0036, &BOSS_U::SetTaskQuery, "SetTaskQuery"}, + {0x0037, &BOSS_U::GetTaskQuery, "GetTaskQuery"}, // clang-format on }; diff --git a/src/core/hle/service/cam/cam.cpp b/src/core/hle/service/cam/cam.cpp index 2f4725bc0..a9f4b61b4 100644 --- a/src/core/hle/service/cam/cam.cpp +++ b/src/core/hle/service/cam/cam.cpp @@ -258,7 +258,7 @@ std::shared_ptr Module::Interface::GetModule() const { } void Module::Interface::StartCapture(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -292,7 +292,7 @@ void Module::Interface::StartCapture(Kernel::HLERequestContext& ctx) { } void Module::Interface::StopCapture(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -317,7 +317,7 @@ void Module::Interface::StopCapture(Kernel::HLERequestContext& ctx) { } void Module::Interface::IsBusy(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -340,7 +340,7 @@ void Module::Interface::IsBusy(Kernel::HLERequestContext& ctx) { } void Module::Interface::ClearBuffer(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x04, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -350,7 +350,7 @@ void Module::Interface::ClearBuffer(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetVsyncInterruptEvent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); @@ -368,7 +368,7 @@ void Module::Interface::GetVsyncInterruptEvent(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetBufferErrorInterruptEvent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); @@ -386,7 +386,7 @@ void Module::Interface::GetBufferErrorInterruptEvent(Kernel::HLERequestContext& } void Module::Interface::SetReceiving(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x07, 4, 2); + IPC::RequestParser rp(ctx); const VAddr dest = rp.Pop(); const PortSet port_select(rp.Pop()); const u32 image_size = rp.Pop(); @@ -422,7 +422,7 @@ void Module::Interface::SetReceiving(Kernel::HLERequestContext& ctx) { } void Module::Interface::IsFinishedReceiving(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x08, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -441,7 +441,7 @@ void Module::Interface::IsFinishedReceiving(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetTransferLines(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x09, 4, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); const u16 transfer_lines = rp.Pop(); const u16 width = rp.Pop(); @@ -463,7 +463,7 @@ void Module::Interface::SetTransferLines(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetMaxLines(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0A, 2, 0); + IPC::RequestParser rp(ctx); const u16 width = rp.Pop(); const u16 height = rp.Pop(); @@ -496,7 +496,7 @@ void Module::Interface::GetMaxLines(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetTransferBytes(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0B, 4, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); const u16 transfer_bytes = rp.Pop(); const u16 width = rp.Pop(); @@ -518,7 +518,7 @@ void Module::Interface::SetTransferBytes(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTransferBytes(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0C, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -536,7 +536,7 @@ void Module::Interface::GetTransferBytes(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetMaxBytes(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0D, 2, 0); + IPC::RequestParser rp(ctx); const u16 width = rp.Pop(); const u16 height = rp.Pop(); @@ -563,7 +563,7 @@ void Module::Interface::GetMaxBytes(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetTrimming(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0E, 2, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); const bool trim = rp.Pop(); @@ -582,7 +582,7 @@ void Module::Interface::SetTrimming(Kernel::HLERequestContext& ctx) { } void Module::Interface::IsTrimming(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0F, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -600,7 +600,7 @@ void Module::Interface::IsTrimming(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetTrimmingParams(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 5, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); const u16 x0 = rp.Pop(); const u16 y0 = rp.Pop(); @@ -626,7 +626,7 @@ void Module::Interface::SetTrimmingParams(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTrimmingParams(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 1, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(5, 0); @@ -647,7 +647,7 @@ void Module::Interface::GetTrimmingParams(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetTrimmingParamsCenter(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 5, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); const u16 trim_w = rp.Pop(); const u16 trim_h = rp.Pop(); @@ -673,7 +673,7 @@ void Module::Interface::SetTrimmingParamsCenter(Kernel::HLERequestContext& ctx) } void Module::Interface::Activate(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x13, 1, 0); + IPC::RequestParser rp(ctx); const CameraSet camera_select(rp.Pop()); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -713,7 +713,7 @@ void Module::Interface::Activate(Kernel::HLERequestContext& ctx) { } void Module::Interface::SwitchContext(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 2, 0); + IPC::RequestParser rp(ctx); const CameraSet camera_select(rp.Pop()); const ContextSet context_select(rp.Pop()); @@ -740,7 +740,7 @@ void Module::Interface::SwitchContext(Kernel::HLERequestContext& ctx) { } void Module::Interface::FlipImage(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1D, 3, 0); + IPC::RequestParser rp(ctx); const CameraSet camera_select(rp.Pop()); const Flip flip = static_cast(rp.Pop()); const ContextSet context_select(rp.Pop()); @@ -767,7 +767,7 @@ void Module::Interface::FlipImage(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetDetailSize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1E, 8, 0); + IPC::RequestParser rp(ctx); const CameraSet camera_select(rp.Pop()); Resolution resolution; resolution.width = rp.Pop(); @@ -803,7 +803,7 @@ void Module::Interface::SetDetailSize(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetSize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1F, 3, 0); + IPC::RequestParser rp(ctx); const CameraSet camera_select(rp.Pop()); const u8 size = rp.Pop(); const ContextSet context_select(rp.Pop()); @@ -830,7 +830,7 @@ void Module::Interface::SetSize(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetFrameRate(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x20, 2, 0); + IPC::RequestParser rp(ctx); const CameraSet camera_select(rp.Pop()); const FrameRate frame_rate = static_cast(rp.Pop()); @@ -851,7 +851,7 @@ void Module::Interface::SetFrameRate(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetEffect(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x22, 3, 0); + IPC::RequestParser rp(ctx); const CameraSet camera_select(rp.Pop()); const Effect effect = static_cast(rp.Pop()); const ContextSet context_select(rp.Pop()); @@ -878,7 +878,7 @@ void Module::Interface::SetEffect(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetOutputFormat(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x25, 3, 0); + IPC::RequestParser rp(ctx); const CameraSet camera_select(rp.Pop()); const OutputFormat format = static_cast(rp.Pop()); const ContextSet context_select(rp.Pop()); @@ -905,7 +905,7 @@ void Module::Interface::SetOutputFormat(Kernel::HLERequestContext& ctx) { } void Module::Interface::SynchronizeVsyncTiming(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x29, 2, 0); + IPC::RequestParser rp(ctx); const u8 camera_select1 = rp.Pop(); const u8 camera_select2 = rp.Pop(); @@ -917,7 +917,7 @@ void Module::Interface::SynchronizeVsyncTiming(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetLatestVsyncTiming(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2A, 2, 0); + IPC::RequestParser rp(ctx); const PortSet port_select(rp.Pop()); const u32 count = rp.Pop(); @@ -945,7 +945,8 @@ void Module::Interface::GetLatestVsyncTiming(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetStereoCameraCalibrationData(Kernel::HLERequestContext& ctx) { - IPC::RequestBuilder rb = IPC::RequestParser(ctx, 0x2B, 0, 0).MakeBuilder(17, 0); + IPC::RequestParser rp(ctx); + IPC::RequestBuilder rb = rp.MakeBuilder(17, 0); // Default values taken from yuriks' 3DS. Valid data is required here or games using the // calibration get stuck in an infinite CPU loop. @@ -971,7 +972,7 @@ void Module::Interface::GetStereoCameraCalibrationData(Kernel::HLERequestContext } void Module::Interface::SetPackageParameterWithoutContext(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x33, 11, 0); + IPC::RequestParser rp(ctx); PackageParameterWithoutContext package; rp.PopRaw(package); @@ -1015,7 +1016,7 @@ Resolution PackageParameterWithContext::GetResolution() const { } void Module::Interface::SetPackageParameterWithContext(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x34, 5, 0); + IPC::RequestParser rp(ctx); PackageParameterWithContext package; rp.PopRaw(package); @@ -1028,7 +1029,7 @@ void Module::Interface::SetPackageParameterWithContext(Kernel::HLERequestContext } void Module::Interface::SetPackageParameterWithContextDetail(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x35, 7, 0); + IPC::RequestParser rp(ctx); PackageParameterWithContextDetail package; rp.PopRaw(package); @@ -1041,7 +1042,7 @@ void Module::Interface::SetPackageParameterWithContextDetail(Kernel::HLERequestC } void Module::Interface::GetSuitableY2rStandardCoefficient(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x36, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); rb.Push(0); @@ -1050,7 +1051,7 @@ void Module::Interface::GetSuitableY2rStandardCoefficient(Kernel::HLERequestCont } void Module::Interface::PlayShutterSound(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x38, 1, 0); + IPC::RequestParser rp(ctx); u8 sound_id = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -1060,7 +1061,7 @@ void Module::Interface::PlayShutterSound(Kernel::HLERequestContext& ctx) { } void Module::Interface::DriverInitialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x39, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); for (int camera_id = 0; camera_id < NumCameras; ++camera_id) { @@ -1090,7 +1091,7 @@ void Module::Interface::DriverInitialize(Kernel::HLERequestContext& ctx) { } void Module::Interface::DriverFinalize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x3A, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); cam->CancelReceiving(0); diff --git a/src/core/hle/service/cam/cam_c.cpp b/src/core/hle/service/cam/cam_c.cpp index b942cde2c..13243ab03 100644 --- a/src/core/hle/service/cam/cam_c.cpp +++ b/src/core/hle/service/cam/cam_c.cpp @@ -11,68 +11,68 @@ namespace Service::CAM { CAM_C::CAM_C(std::shared_ptr cam) : Module::Interface(std::move(cam), "cam:c", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &CAM_C::StartCapture, "StartCapture"}, - {IPC::MakeHeader(0x0002, 1, 0), &CAM_C::StopCapture, "StopCapture"}, - {IPC::MakeHeader(0x0003, 1, 0), &CAM_C::IsBusy, "IsBusy"}, - {IPC::MakeHeader(0x0004, 1, 0), &CAM_C::ClearBuffer, "ClearBuffer"}, - {IPC::MakeHeader(0x0005, 1, 0), &CAM_C::GetVsyncInterruptEvent, "GetVsyncInterruptEvent"}, - {IPC::MakeHeader(0x0006, 1, 0), &CAM_C::GetBufferErrorInterruptEvent, "GetBufferErrorInterruptEvent"}, - {IPC::MakeHeader(0x0007, 4, 2), &CAM_C::SetReceiving, "SetReceiving"}, - {IPC::MakeHeader(0x0008, 1, 0), &CAM_C::IsFinishedReceiving, "IsFinishedReceiving"}, - {IPC::MakeHeader(0x0009, 4, 0), &CAM_C::SetTransferLines, "SetTransferLines"}, - {IPC::MakeHeader(0x000A, 2, 0), &CAM_C::GetMaxLines, "GetMaxLines"}, - {IPC::MakeHeader(0x000B, 4, 0), &CAM_C::SetTransferBytes, "SetTransferBytes"}, - {IPC::MakeHeader(0x000C, 1, 0), &CAM_C::GetTransferBytes, "GetTransferBytes"}, - {IPC::MakeHeader(0x000D, 2, 0), &CAM_C::GetMaxBytes, "GetMaxBytes"}, - {IPC::MakeHeader(0x000E, 2, 0), &CAM_C::SetTrimming, "SetTrimming"}, - {IPC::MakeHeader(0x000F, 1, 0), &CAM_C::IsTrimming, "IsTrimming"}, - {IPC::MakeHeader(0x0010, 5, 0), &CAM_C::SetTrimmingParams, "SetTrimmingParams"}, - {IPC::MakeHeader(0x0011, 1, 0), &CAM_C::GetTrimmingParams, "GetTrimmingParams"}, - {IPC::MakeHeader(0x0012, 5, 0), &CAM_C::SetTrimmingParamsCenter, "SetTrimmingParamsCenter"}, - {IPC::MakeHeader(0x0013, 1, 0), &CAM_C::Activate, "Activate"}, - {IPC::MakeHeader(0x0014, 2, 0), &CAM_C::SwitchContext, "SwitchContext"}, - {IPC::MakeHeader(0x0015, 2, 0), nullptr, "SetExposure"}, - {IPC::MakeHeader(0x0016, 2, 0), nullptr, "SetWhiteBalance"}, - {IPC::MakeHeader(0x0017, 2, 0), nullptr, "SetWhiteBalanceWithoutBaseUp"}, - {IPC::MakeHeader(0x0018, 2, 0), nullptr, "SetSharpness"}, - {IPC::MakeHeader(0x0019, 2, 0), nullptr, "SetAutoExposure"}, - {IPC::MakeHeader(0x001A, 1, 0), nullptr, "IsAutoExposure"}, - {IPC::MakeHeader(0x001B, 2, 0), nullptr, "SetAutoWhiteBalance"}, - {IPC::MakeHeader(0x001C, 1, 0), nullptr, "IsAutoWhiteBalance"}, - {IPC::MakeHeader(0x001D, 3, 0), &CAM_C::FlipImage, "FlipImage"}, - {IPC::MakeHeader(0x001E, 8, 0), &CAM_C::SetDetailSize, "SetDetailSize"}, - {IPC::MakeHeader(0x001F, 3, 0), &CAM_C::SetSize, "SetSize"}, - {IPC::MakeHeader(0x0020, 2, 0), &CAM_C::SetFrameRate, "SetFrameRate"}, - {IPC::MakeHeader(0x0021, 2, 0), nullptr, "SetPhotoMode"}, - {IPC::MakeHeader(0x0022, 3, 0), &CAM_C::SetEffect, "SetEffect"}, - {IPC::MakeHeader(0x0023, 2, 0), nullptr, "SetContrast"}, - {IPC::MakeHeader(0x0024, 2, 0), nullptr, "SetLensCorrection"}, - {IPC::MakeHeader(0x0025, 3, 0), &CAM_C::SetOutputFormat, "SetOutputFormat"}, - {IPC::MakeHeader(0x0026, 5, 0), nullptr, "SetAutoExposureWindow"}, - {IPC::MakeHeader(0x0027, 5, 0), nullptr, "SetAutoWhiteBalanceWindow"}, - {IPC::MakeHeader(0x0028, 2, 0), nullptr, "SetNoiseFilter"}, - {IPC::MakeHeader(0x0029, 2, 0), &CAM_C::SynchronizeVsyncTiming, "SynchronizeVsyncTiming"}, - {IPC::MakeHeader(0x002A, 2, 0), &CAM_C::GetLatestVsyncTiming, "GetLatestVsyncTiming"}, - {IPC::MakeHeader(0x002B, 0, 0), &CAM_C::GetStereoCameraCalibrationData, "GetStereoCameraCalibrationData"}, - {IPC::MakeHeader(0x002C, 16, 0), nullptr, "SetStereoCameraCalibrationData"}, - {IPC::MakeHeader(0x002D, 3, 0), nullptr, "WriteRegisterI2c"}, - {IPC::MakeHeader(0x002E, 3, 0), nullptr, "WriteMcuVariableI2c"}, - {IPC::MakeHeader(0x002F, 2, 0), nullptr, "ReadRegisterI2cExclusive"}, - {IPC::MakeHeader(0x0030, 2, 0), nullptr, "ReadMcuVariableI2cExclusive"}, - {IPC::MakeHeader(0x0031, 6, 0), nullptr, "SetImageQualityCalibrationData"}, - {IPC::MakeHeader(0x0032, 0, 0), nullptr, "GetImageQualityCalibrationData"}, - {IPC::MakeHeader(0x0033, 11, 0), &CAM_C::SetPackageParameterWithoutContext, "SetPackageParameterWithoutContext"}, - {IPC::MakeHeader(0x0034, 5, 0), &CAM_C::SetPackageParameterWithContext, "SetPackageParameterWithContext"}, - {IPC::MakeHeader(0x0035, 7, 0), &CAM_C::SetPackageParameterWithContextDetail, "SetPackageParameterWithContextDetail"}, - {IPC::MakeHeader(0x0036, 0, 0), &CAM_C::GetSuitableY2rStandardCoefficient, "GetSuitableY2rStandardCoefficient"}, - {IPC::MakeHeader(0x0037, 8, 2), nullptr, "PlayShutterSoundWithWave"}, - {IPC::MakeHeader(0x0038, 1, 0), &CAM_C::PlayShutterSound, "PlayShutterSound"}, - {IPC::MakeHeader(0x0039, 0, 0), &CAM_C::DriverInitialize, "DriverInitialize"}, - {IPC::MakeHeader(0x003A, 0, 0), &CAM_C::DriverFinalize, "DriverFinalize"}, - {IPC::MakeHeader(0x003B, 0, 0), nullptr, "GetActivatedCamera"}, - {IPC::MakeHeader(0x003C, 0, 0), nullptr, "GetSleepCamera"}, - {IPC::MakeHeader(0x003D, 1, 0), nullptr, "SetSleepCamera"}, - {IPC::MakeHeader(0x003E, 1, 0), nullptr, "SetBrightnessSynchronization"}, + {0x0001, &CAM_C::StartCapture, "StartCapture"}, + {0x0002, &CAM_C::StopCapture, "StopCapture"}, + {0x0003, &CAM_C::IsBusy, "IsBusy"}, + {0x0004, &CAM_C::ClearBuffer, "ClearBuffer"}, + {0x0005, &CAM_C::GetVsyncInterruptEvent, "GetVsyncInterruptEvent"}, + {0x0006, &CAM_C::GetBufferErrorInterruptEvent, "GetBufferErrorInterruptEvent"}, + {0x0007, &CAM_C::SetReceiving, "SetReceiving"}, + {0x0008, &CAM_C::IsFinishedReceiving, "IsFinishedReceiving"}, + {0x0009, &CAM_C::SetTransferLines, "SetTransferLines"}, + {0x000A, &CAM_C::GetMaxLines, "GetMaxLines"}, + {0x000B, &CAM_C::SetTransferBytes, "SetTransferBytes"}, + {0x000C, &CAM_C::GetTransferBytes, "GetTransferBytes"}, + {0x000D, &CAM_C::GetMaxBytes, "GetMaxBytes"}, + {0x000E, &CAM_C::SetTrimming, "SetTrimming"}, + {0x000F, &CAM_C::IsTrimming, "IsTrimming"}, + {0x0010, &CAM_C::SetTrimmingParams, "SetTrimmingParams"}, + {0x0011, &CAM_C::GetTrimmingParams, "GetTrimmingParams"}, + {0x0012, &CAM_C::SetTrimmingParamsCenter, "SetTrimmingParamsCenter"}, + {0x0013, &CAM_C::Activate, "Activate"}, + {0x0014, &CAM_C::SwitchContext, "SwitchContext"}, + {0x0015, nullptr, "SetExposure"}, + {0x0016, nullptr, "SetWhiteBalance"}, + {0x0017, nullptr, "SetWhiteBalanceWithoutBaseUp"}, + {0x0018, nullptr, "SetSharpness"}, + {0x0019, nullptr, "SetAutoExposure"}, + {0x001A, nullptr, "IsAutoExposure"}, + {0x001B, nullptr, "SetAutoWhiteBalance"}, + {0x001C, nullptr, "IsAutoWhiteBalance"}, + {0x001D, &CAM_C::FlipImage, "FlipImage"}, + {0x001E, &CAM_C::SetDetailSize, "SetDetailSize"}, + {0x001F, &CAM_C::SetSize, "SetSize"}, + {0x0020, &CAM_C::SetFrameRate, "SetFrameRate"}, + {0x0021, nullptr, "SetPhotoMode"}, + {0x0022, &CAM_C::SetEffect, "SetEffect"}, + {0x0023, nullptr, "SetContrast"}, + {0x0024, nullptr, "SetLensCorrection"}, + {0x0025, &CAM_C::SetOutputFormat, "SetOutputFormat"}, + {0x0026, nullptr, "SetAutoExposureWindow"}, + {0x0027, nullptr, "SetAutoWhiteBalanceWindow"}, + {0x0028, nullptr, "SetNoiseFilter"}, + {0x0029, &CAM_C::SynchronizeVsyncTiming, "SynchronizeVsyncTiming"}, + {0x002A, &CAM_C::GetLatestVsyncTiming, "GetLatestVsyncTiming"}, + {0x002B, &CAM_C::GetStereoCameraCalibrationData, "GetStereoCameraCalibrationData"}, + {0x002C, nullptr, "SetStereoCameraCalibrationData"}, + {0x002D, nullptr, "WriteRegisterI2c"}, + {0x002E, nullptr, "WriteMcuVariableI2c"}, + {0x002F, nullptr, "ReadRegisterI2cExclusive"}, + {0x0030, nullptr, "ReadMcuVariableI2cExclusive"}, + {0x0031, nullptr, "SetImageQualityCalibrationData"}, + {0x0032, nullptr, "GetImageQualityCalibrationData"}, + {0x0033, &CAM_C::SetPackageParameterWithoutContext, "SetPackageParameterWithoutContext"}, + {0x0034, &CAM_C::SetPackageParameterWithContext, "SetPackageParameterWithContext"}, + {0x0035, &CAM_C::SetPackageParameterWithContextDetail, "SetPackageParameterWithContextDetail"}, + {0x0036, &CAM_C::GetSuitableY2rStandardCoefficient, "GetSuitableY2rStandardCoefficient"}, + {0x0037, nullptr, "PlayShutterSoundWithWave"}, + {0x0038, &CAM_C::PlayShutterSound, "PlayShutterSound"}, + {0x0039, &CAM_C::DriverInitialize, "DriverInitialize"}, + {0x003A, &CAM_C::DriverFinalize, "DriverFinalize"}, + {0x003B, nullptr, "GetActivatedCamera"}, + {0x003C, nullptr, "GetSleepCamera"}, + {0x003D, nullptr, "SetSleepCamera"}, + {0x003E, nullptr, "SetBrightnessSynchronization"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/cam/cam_s.cpp b/src/core/hle/service/cam/cam_s.cpp index 88a9b8c1f..05dcabd98 100644 --- a/src/core/hle/service/cam/cam_s.cpp +++ b/src/core/hle/service/cam/cam_s.cpp @@ -11,68 +11,68 @@ namespace Service::CAM { CAM_S::CAM_S(std::shared_ptr cam) : Module::Interface(std::move(cam), "cam:s", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &CAM_S::StartCapture, "StartCapture"}, - {IPC::MakeHeader(0x0002, 1, 0), &CAM_S::StopCapture, "StopCapture"}, - {IPC::MakeHeader(0x0003, 1, 0), &CAM_S::IsBusy, "IsBusy"}, - {IPC::MakeHeader(0x0004, 1, 0), &CAM_S::ClearBuffer, "ClearBuffer"}, - {IPC::MakeHeader(0x0005, 1, 0), &CAM_S::GetVsyncInterruptEvent, "GetVsyncInterruptEvent"}, - {IPC::MakeHeader(0x0006, 1, 0), &CAM_S::GetBufferErrorInterruptEvent, "GetBufferErrorInterruptEvent"}, - {IPC::MakeHeader(0x0007, 4, 2), &CAM_S::SetReceiving, "SetReceiving"}, - {IPC::MakeHeader(0x0008, 1, 0), &CAM_S::IsFinishedReceiving, "IsFinishedReceiving"}, - {IPC::MakeHeader(0x0009, 4, 0), &CAM_S::SetTransferLines, "SetTransferLines"}, - {IPC::MakeHeader(0x000A, 2, 0), &CAM_S::GetMaxLines, "GetMaxLines"}, - {IPC::MakeHeader(0x000B, 4, 0), &CAM_S::SetTransferBytes, "SetTransferBytes"}, - {IPC::MakeHeader(0x000C, 1, 0), &CAM_S::GetTransferBytes, "GetTransferBytes"}, - {IPC::MakeHeader(0x000D, 2, 0), &CAM_S::GetMaxBytes, "GetMaxBytes"}, - {IPC::MakeHeader(0x000E, 2, 0), &CAM_S::SetTrimming, "SetTrimming"}, - {IPC::MakeHeader(0x000F, 1, 0), &CAM_S::IsTrimming, "IsTrimming"}, - {IPC::MakeHeader(0x0010, 5, 0), &CAM_S::SetTrimmingParams, "SetTrimmingParams"}, - {IPC::MakeHeader(0x0011, 1, 0), &CAM_S::GetTrimmingParams, "GetTrimmingParams"}, - {IPC::MakeHeader(0x0012, 5, 0), &CAM_S::SetTrimmingParamsCenter, "SetTrimmingParamsCenter"}, - {IPC::MakeHeader(0x0013, 1, 0), &CAM_S::Activate, "Activate"}, - {IPC::MakeHeader(0x0014, 2, 0), &CAM_S::SwitchContext, "SwitchContext"}, - {IPC::MakeHeader(0x0015, 2, 0), nullptr, "SetExposure"}, - {IPC::MakeHeader(0x0016, 2, 0), nullptr, "SetWhiteBalance"}, - {IPC::MakeHeader(0x0017, 2, 0), nullptr, "SetWhiteBalanceWithoutBaseUp"}, - {IPC::MakeHeader(0x0018, 2, 0), nullptr, "SetSharpness"}, - {IPC::MakeHeader(0x0019, 2, 0), nullptr, "SetAutoExposure"}, - {IPC::MakeHeader(0x001A, 1, 0), nullptr, "IsAutoExposure"}, - {IPC::MakeHeader(0x001B, 2, 0), nullptr, "SetAutoWhiteBalance"}, - {IPC::MakeHeader(0x001C, 1, 0), nullptr, "IsAutoWhiteBalance"}, - {IPC::MakeHeader(0x001D, 3, 0), &CAM_S::FlipImage, "FlipImage"}, - {IPC::MakeHeader(0x001E, 8, 0), &CAM_S::SetDetailSize, "SetDetailSize"}, - {IPC::MakeHeader(0x001F, 3, 0), &CAM_S::SetSize, "SetSize"}, - {IPC::MakeHeader(0x0020, 2, 0), &CAM_S::SetFrameRate, "SetFrameRate"}, - {IPC::MakeHeader(0x0021, 2, 0), nullptr, "SetPhotoMode"}, - {IPC::MakeHeader(0x0022, 3, 0), &CAM_S::SetEffect, "SetEffect"}, - {IPC::MakeHeader(0x0023, 2, 0), nullptr, "SetContrast"}, - {IPC::MakeHeader(0x0024, 2, 0), nullptr, "SetLensCorrection"}, - {IPC::MakeHeader(0x0025, 3, 0), &CAM_S::SetOutputFormat, "SetOutputFormat"}, - {IPC::MakeHeader(0x0026, 5, 0), nullptr, "SetAutoExposureWindow"}, - {IPC::MakeHeader(0x0027, 5, 0), nullptr, "SetAutoWhiteBalanceWindow"}, - {IPC::MakeHeader(0x0028, 2, 0), nullptr, "SetNoiseFilter"}, - {IPC::MakeHeader(0x0029, 2, 0), &CAM_S::SynchronizeVsyncTiming, "SynchronizeVsyncTiming"}, - {IPC::MakeHeader(0x002A, 2, 0), &CAM_S::GetLatestVsyncTiming, "GetLatestVsyncTiming"}, - {IPC::MakeHeader(0x002B, 0, 0), &CAM_S::GetStereoCameraCalibrationData, "GetStereoCameraCalibrationData"}, - {IPC::MakeHeader(0x002C, 16, 0), nullptr, "SetStereoCameraCalibrationData"}, - {IPC::MakeHeader(0x002D, 3, 0), nullptr, "WriteRegisterI2c"}, - {IPC::MakeHeader(0x002E, 3, 0), nullptr, "WriteMcuVariableI2c"}, - {IPC::MakeHeader(0x002F, 2, 0), nullptr, "ReadRegisterI2cExclusive"}, - {IPC::MakeHeader(0x0030, 2, 0), nullptr, "ReadMcuVariableI2cExclusive"}, - {IPC::MakeHeader(0x0031, 6, 0), nullptr, "SetImageQualityCalibrationData"}, - {IPC::MakeHeader(0x0032, 0, 0), nullptr, "GetImageQualityCalibrationData"}, - {IPC::MakeHeader(0x0033, 11, 0), &CAM_S::SetPackageParameterWithoutContext, "SetPackageParameterWithoutContext"}, - {IPC::MakeHeader(0x0034, 5, 0), &CAM_S::SetPackageParameterWithContext, "SetPackageParameterWithContext"}, - {IPC::MakeHeader(0x0035, 7, 0), &CAM_S::SetPackageParameterWithContextDetail, "SetPackageParameterWithContextDetail"}, - {IPC::MakeHeader(0x0036, 0, 0), &CAM_S::GetSuitableY2rStandardCoefficient, "GetSuitableY2rStandardCoefficient"}, - {IPC::MakeHeader(0x0037, 8, 2), nullptr, "PlayShutterSoundWithWave"}, - {IPC::MakeHeader(0x0038, 1, 0), &CAM_S::PlayShutterSound, "PlayShutterSound"}, - {IPC::MakeHeader(0x0039, 0, 0), &CAM_S::DriverInitialize, "DriverInitialize"}, - {IPC::MakeHeader(0x003A, 0, 0), &CAM_S::DriverFinalize, "DriverFinalize"}, - {IPC::MakeHeader(0x003B, 0, 0), nullptr, "GetActivatedCamera"}, - {IPC::MakeHeader(0x003C, 0, 0), nullptr, "GetSleepCamera"}, - {IPC::MakeHeader(0x003D, 1, 0), nullptr, "SetSleepCamera"}, - {IPC::MakeHeader(0x003E, 1, 0), nullptr, "SetBrightnessSynchronization"}, + {0x0001, &CAM_S::StartCapture, "StartCapture"}, + {0x0002, &CAM_S::StopCapture, "StopCapture"}, + {0x0003, &CAM_S::IsBusy, "IsBusy"}, + {0x0004, &CAM_S::ClearBuffer, "ClearBuffer"}, + {0x0005, &CAM_S::GetVsyncInterruptEvent, "GetVsyncInterruptEvent"}, + {0x0006, &CAM_S::GetBufferErrorInterruptEvent, "GetBufferErrorInterruptEvent"}, + {0x0007, &CAM_S::SetReceiving, "SetReceiving"}, + {0x0008, &CAM_S::IsFinishedReceiving, "IsFinishedReceiving"}, + {0x0009, &CAM_S::SetTransferLines, "SetTransferLines"}, + {0x000A, &CAM_S::GetMaxLines, "GetMaxLines"}, + {0x000B, &CAM_S::SetTransferBytes, "SetTransferBytes"}, + {0x000C, &CAM_S::GetTransferBytes, "GetTransferBytes"}, + {0x000D, &CAM_S::GetMaxBytes, "GetMaxBytes"}, + {0x000E, &CAM_S::SetTrimming, "SetTrimming"}, + {0x000F, &CAM_S::IsTrimming, "IsTrimming"}, + {0x0010, &CAM_S::SetTrimmingParams, "SetTrimmingParams"}, + {0x0011, &CAM_S::GetTrimmingParams, "GetTrimmingParams"}, + {0x0012, &CAM_S::SetTrimmingParamsCenter, "SetTrimmingParamsCenter"}, + {0x0013, &CAM_S::Activate, "Activate"}, + {0x0014, &CAM_S::SwitchContext, "SwitchContext"}, + {0x0015, nullptr, "SetExposure"}, + {0x0016, nullptr, "SetWhiteBalance"}, + {0x0017, nullptr, "SetWhiteBalanceWithoutBaseUp"}, + {0x0018, nullptr, "SetSharpness"}, + {0x0019, nullptr, "SetAutoExposure"}, + {0x001A, nullptr, "IsAutoExposure"}, + {0x001B, nullptr, "SetAutoWhiteBalance"}, + {0x001C, nullptr, "IsAutoWhiteBalance"}, + {0x001D, &CAM_S::FlipImage, "FlipImage"}, + {0x001E, &CAM_S::SetDetailSize, "SetDetailSize"}, + {0x001F, &CAM_S::SetSize, "SetSize"}, + {0x0020, &CAM_S::SetFrameRate, "SetFrameRate"}, + {0x0021, nullptr, "SetPhotoMode"}, + {0x0022, &CAM_S::SetEffect, "SetEffect"}, + {0x0023, nullptr, "SetContrast"}, + {0x0024, nullptr, "SetLensCorrection"}, + {0x0025, &CAM_S::SetOutputFormat, "SetOutputFormat"}, + {0x0026, nullptr, "SetAutoExposureWindow"}, + {0x0027, nullptr, "SetAutoWhiteBalanceWindow"}, + {0x0028, nullptr, "SetNoiseFilter"}, + {0x0029, &CAM_S::SynchronizeVsyncTiming, "SynchronizeVsyncTiming"}, + {0x002A, &CAM_S::GetLatestVsyncTiming, "GetLatestVsyncTiming"}, + {0x002B, &CAM_S::GetStereoCameraCalibrationData, "GetStereoCameraCalibrationData"}, + {0x002C, nullptr, "SetStereoCameraCalibrationData"}, + {0x002D, nullptr, "WriteRegisterI2c"}, + {0x002E, nullptr, "WriteMcuVariableI2c"}, + {0x002F, nullptr, "ReadRegisterI2cExclusive"}, + {0x0030, nullptr, "ReadMcuVariableI2cExclusive"}, + {0x0031, nullptr, "SetImageQualityCalibrationData"}, + {0x0032, nullptr, "GetImageQualityCalibrationData"}, + {0x0033, &CAM_S::SetPackageParameterWithoutContext, "SetPackageParameterWithoutContext"}, + {0x0034, &CAM_S::SetPackageParameterWithContext, "SetPackageParameterWithContext"}, + {0x0035, &CAM_S::SetPackageParameterWithContextDetail, "SetPackageParameterWithContextDetail"}, + {0x0036, &CAM_S::GetSuitableY2rStandardCoefficient, "GetSuitableY2rStandardCoefficient"}, + {0x0037, nullptr, "PlayShutterSoundWithWave"}, + {0x0038, &CAM_S::PlayShutterSound, "PlayShutterSound"}, + {0x0039, &CAM_S::DriverInitialize, "DriverInitialize"}, + {0x003A, &CAM_S::DriverFinalize, "DriverFinalize"}, + {0x003B, nullptr, "GetActivatedCamera"}, + {0x003C, nullptr, "GetSleepCamera"}, + {0x003D, nullptr, "SetSleepCamera"}, + {0x003E, nullptr, "SetBrightnessSynchronization"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/cam/cam_u.cpp b/src/core/hle/service/cam/cam_u.cpp index 4a4d62a0b..2e6ff26ac 100644 --- a/src/core/hle/service/cam/cam_u.cpp +++ b/src/core/hle/service/cam/cam_u.cpp @@ -11,68 +11,68 @@ namespace Service::CAM { CAM_U::CAM_U(std::shared_ptr cam) : Module::Interface(std::move(cam), "cam:u", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &CAM_U::StartCapture, "StartCapture"}, - {IPC::MakeHeader(0x0002, 1, 0), &CAM_U::StopCapture, "StopCapture"}, - {IPC::MakeHeader(0x0003, 1, 0), &CAM_U::IsBusy, "IsBusy"}, - {IPC::MakeHeader(0x0004, 1, 0), &CAM_U::ClearBuffer, "ClearBuffer"}, - {IPC::MakeHeader(0x0005, 1, 0), &CAM_U::GetVsyncInterruptEvent, "GetVsyncInterruptEvent"}, - {IPC::MakeHeader(0x0006, 1, 0), &CAM_U::GetBufferErrorInterruptEvent, "GetBufferErrorInterruptEvent"}, - {IPC::MakeHeader(0x0007, 4, 2), &CAM_U::SetReceiving, "SetReceiving"}, - {IPC::MakeHeader(0x0008, 1, 0), &CAM_U::IsFinishedReceiving, "IsFinishedReceiving"}, - {IPC::MakeHeader(0x0009, 4, 0), &CAM_U::SetTransferLines, "SetTransferLines"}, - {IPC::MakeHeader(0x000A, 2, 0), &CAM_U::GetMaxLines, "GetMaxLines"}, - {IPC::MakeHeader(0x000B, 4, 0), &CAM_U::SetTransferBytes, "SetTransferBytes"}, - {IPC::MakeHeader(0x000C, 1, 0), &CAM_U::GetTransferBytes, "GetTransferBytes"}, - {IPC::MakeHeader(0x000D, 2, 0), &CAM_U::GetMaxBytes, "GetMaxBytes"}, - {IPC::MakeHeader(0x000E, 2, 0), &CAM_U::SetTrimming, "SetTrimming"}, - {IPC::MakeHeader(0x000F, 1, 0), &CAM_U::IsTrimming, "IsTrimming"}, - {IPC::MakeHeader(0x0010, 5, 0), &CAM_U::SetTrimmingParams, "SetTrimmingParams"}, - {IPC::MakeHeader(0x0011, 1, 0), &CAM_U::GetTrimmingParams, "GetTrimmingParams"}, - {IPC::MakeHeader(0x0012, 5, 0), &CAM_U::SetTrimmingParamsCenter, "SetTrimmingParamsCenter"}, - {IPC::MakeHeader(0x0013, 1, 0), &CAM_U::Activate, "Activate"}, - {IPC::MakeHeader(0x0014, 2, 0), &CAM_U::SwitchContext, "SwitchContext"}, - {IPC::MakeHeader(0x0015, 2, 0), nullptr, "SetExposure"}, - {IPC::MakeHeader(0x0016, 2, 0), nullptr, "SetWhiteBalance"}, - {IPC::MakeHeader(0x0017, 2, 0), nullptr, "SetWhiteBalanceWithoutBaseUp"}, - {IPC::MakeHeader(0x0018, 2, 0), nullptr, "SetSharpness"}, - {IPC::MakeHeader(0x0019, 2, 0), nullptr, "SetAutoExposure"}, - {IPC::MakeHeader(0x001A, 1, 0), nullptr, "IsAutoExposure"}, - {IPC::MakeHeader(0x001B, 2, 0), nullptr, "SetAutoWhiteBalance"}, - {IPC::MakeHeader(0x001C, 1, 0), nullptr, "IsAutoWhiteBalance"}, - {IPC::MakeHeader(0x001D, 3, 0), &CAM_U::FlipImage, "FlipImage"}, - {IPC::MakeHeader(0x001E, 8, 0), &CAM_U::SetDetailSize, "SetDetailSize"}, - {IPC::MakeHeader(0x001F, 3, 0), &CAM_U::SetSize, "SetSize"}, - {IPC::MakeHeader(0x0020, 2, 0), &CAM_U::SetFrameRate, "SetFrameRate"}, - {IPC::MakeHeader(0x0021, 2, 0), nullptr, "SetPhotoMode"}, - {IPC::MakeHeader(0x0022, 3, 0), &CAM_U::SetEffect, "SetEffect"}, - {IPC::MakeHeader(0x0023, 2, 0), nullptr, "SetContrast"}, - {IPC::MakeHeader(0x0024, 2, 0), nullptr, "SetLensCorrection"}, - {IPC::MakeHeader(0x0025, 3, 0), &CAM_U::SetOutputFormat, "SetOutputFormat"}, - {IPC::MakeHeader(0x0026, 5, 0), nullptr, "SetAutoExposureWindow"}, - {IPC::MakeHeader(0x0027, 5, 0), nullptr, "SetAutoWhiteBalanceWindow"}, - {IPC::MakeHeader(0x0028, 2, 0), nullptr, "SetNoiseFilter"}, - {IPC::MakeHeader(0x0029, 2, 0), &CAM_U::SynchronizeVsyncTiming, "SynchronizeVsyncTiming"}, - {IPC::MakeHeader(0x002A, 2, 0), &CAM_U::GetLatestVsyncTiming, "GetLatestVsyncTiming"}, - {IPC::MakeHeader(0x002B, 0, 0), &CAM_U::GetStereoCameraCalibrationData, "GetStereoCameraCalibrationData"}, - {IPC::MakeHeader(0x002C, 16, 0), nullptr, "SetStereoCameraCalibrationData"}, - {IPC::MakeHeader(0x002D, 3, 0), nullptr, "WriteRegisterI2c"}, - {IPC::MakeHeader(0x002E, 3, 0), nullptr, "WriteMcuVariableI2c"}, - {IPC::MakeHeader(0x002F, 2, 0), nullptr, "ReadRegisterI2cExclusive"}, - {IPC::MakeHeader(0x0030, 2, 0), nullptr, "ReadMcuVariableI2cExclusive"}, - {IPC::MakeHeader(0x0031, 6, 0), nullptr, "SetImageQualityCalibrationData"}, - {IPC::MakeHeader(0x0032, 0, 0), nullptr, "GetImageQualityCalibrationData"}, - {IPC::MakeHeader(0x0033, 11, 0), &CAM_U::SetPackageParameterWithoutContext, "SetPackageParameterWithoutContext"}, - {IPC::MakeHeader(0x0034, 5, 0), &CAM_U::SetPackageParameterWithContext, "SetPackageParameterWithContext"}, - {IPC::MakeHeader(0x0035, 7, 0), &CAM_U::SetPackageParameterWithContextDetail, "SetPackageParameterWithContextDetail"}, - {IPC::MakeHeader(0x0036, 0, 0), &CAM_U::GetSuitableY2rStandardCoefficient, "GetSuitableY2rStandardCoefficient"}, - {IPC::MakeHeader(0x0037, 8, 2), nullptr, "PlayShutterSoundWithWave"}, - {IPC::MakeHeader(0x0038, 1, 0), &CAM_U::PlayShutterSound, "PlayShutterSound"}, - {IPC::MakeHeader(0x0039, 0, 0), &CAM_U::DriverInitialize, "DriverInitialize"}, - {IPC::MakeHeader(0x003A, 0, 0), &CAM_U::DriverFinalize, "DriverFinalize"}, - {IPC::MakeHeader(0x003B, 0, 0), nullptr, "GetActivatedCamera"}, - {IPC::MakeHeader(0x003C, 0, 0), nullptr, "GetSleepCamera"}, - {IPC::MakeHeader(0x003D, 1, 0), nullptr, "SetSleepCamera"}, - {IPC::MakeHeader(0x003E, 1, 0), nullptr, "SetBrightnessSynchronization"}, + {0x0001, &CAM_U::StartCapture, "StartCapture"}, + {0x0002, &CAM_U::StopCapture, "StopCapture"}, + {0x0003, &CAM_U::IsBusy, "IsBusy"}, + {0x0004, &CAM_U::ClearBuffer, "ClearBuffer"}, + {0x0005, &CAM_U::GetVsyncInterruptEvent, "GetVsyncInterruptEvent"}, + {0x0006, &CAM_U::GetBufferErrorInterruptEvent, "GetBufferErrorInterruptEvent"}, + {0x0007, &CAM_U::SetReceiving, "SetReceiving"}, + {0x0008, &CAM_U::IsFinishedReceiving, "IsFinishedReceiving"}, + {0x0009, &CAM_U::SetTransferLines, "SetTransferLines"}, + {0x000A, &CAM_U::GetMaxLines, "GetMaxLines"}, + {0x000B, &CAM_U::SetTransferBytes, "SetTransferBytes"}, + {0x000C, &CAM_U::GetTransferBytes, "GetTransferBytes"}, + {0x000D, &CAM_U::GetMaxBytes, "GetMaxBytes"}, + {0x000E, &CAM_U::SetTrimming, "SetTrimming"}, + {0x000F, &CAM_U::IsTrimming, "IsTrimming"}, + {0x0010, &CAM_U::SetTrimmingParams, "SetTrimmingParams"}, + {0x0011, &CAM_U::GetTrimmingParams, "GetTrimmingParams"}, + {0x0012, &CAM_U::SetTrimmingParamsCenter, "SetTrimmingParamsCenter"}, + {0x0013, &CAM_U::Activate, "Activate"}, + {0x0014, &CAM_U::SwitchContext, "SwitchContext"}, + {0x0015, nullptr, "SetExposure"}, + {0x0016, nullptr, "SetWhiteBalance"}, + {0x0017, nullptr, "SetWhiteBalanceWithoutBaseUp"}, + {0x0018, nullptr, "SetSharpness"}, + {0x0019, nullptr, "SetAutoExposure"}, + {0x001A, nullptr, "IsAutoExposure"}, + {0x001B, nullptr, "SetAutoWhiteBalance"}, + {0x001C, nullptr, "IsAutoWhiteBalance"}, + {0x001D, &CAM_U::FlipImage, "FlipImage"}, + {0x001E, &CAM_U::SetDetailSize, "SetDetailSize"}, + {0x001F, &CAM_U::SetSize, "SetSize"}, + {0x0020, &CAM_U::SetFrameRate, "SetFrameRate"}, + {0x0021, nullptr, "SetPhotoMode"}, + {0x0022, &CAM_U::SetEffect, "SetEffect"}, + {0x0023, nullptr, "SetContrast"}, + {0x0024, nullptr, "SetLensCorrection"}, + {0x0025, &CAM_U::SetOutputFormat, "SetOutputFormat"}, + {0x0026, nullptr, "SetAutoExposureWindow"}, + {0x0027, nullptr, "SetAutoWhiteBalanceWindow"}, + {0x0028, nullptr, "SetNoiseFilter"}, + {0x0029, &CAM_U::SynchronizeVsyncTiming, "SynchronizeVsyncTiming"}, + {0x002A, &CAM_U::GetLatestVsyncTiming, "GetLatestVsyncTiming"}, + {0x002B, &CAM_U::GetStereoCameraCalibrationData, "GetStereoCameraCalibrationData"}, + {0x002C, nullptr, "SetStereoCameraCalibrationData"}, + {0x002D, nullptr, "WriteRegisterI2c"}, + {0x002E, nullptr, "WriteMcuVariableI2c"}, + {0x002F, nullptr, "ReadRegisterI2cExclusive"}, + {0x0030, nullptr, "ReadMcuVariableI2cExclusive"}, + {0x0031, nullptr, "SetImageQualityCalibrationData"}, + {0x0032, nullptr, "GetImageQualityCalibrationData"}, + {0x0033, &CAM_U::SetPackageParameterWithoutContext, "SetPackageParameterWithoutContext"}, + {0x0034, &CAM_U::SetPackageParameterWithContext, "SetPackageParameterWithContext"}, + {0x0035, &CAM_U::SetPackageParameterWithContextDetail, "SetPackageParameterWithContextDetail"}, + {0x0036, &CAM_U::GetSuitableY2rStandardCoefficient, "GetSuitableY2rStandardCoefficient"}, + {0x0037, nullptr, "PlayShutterSoundWithWave"}, + {0x0038, &CAM_U::PlayShutterSound, "PlayShutterSound"}, + {0x0039, &CAM_U::DriverInitialize, "DriverInitialize"}, + {0x003A, &CAM_U::DriverFinalize, "DriverFinalize"}, + {0x003B, nullptr, "GetActivatedCamera"}, + {0x003C, nullptr, "GetSleepCamera"}, + {0x003D, nullptr, "SetSleepCamera"}, + {0x003E, nullptr, "SetBrightnessSynchronization"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/cecd/cecd.cpp b/src/core/hle/service/cecd/cecd.cpp index b47ebbc1e..c1e0d446a 100644 --- a/src/core/hle/service/cecd/cecd.cpp +++ b/src/core/hle/service/cecd/cecd.cpp @@ -46,7 +46,7 @@ using CecOpenMode = Module::CecOpenMode; using CecSystemInfoType = Module::CecSystemInfoType; void Module::Interface::Open(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 3, 2); + IPC::RequestParser rp(ctx); const u32 ncch_program_id = rp.Pop(); const CecDataPathType path_type = rp.PopEnum(); CecOpenMode open_mode; @@ -129,7 +129,7 @@ void Module::Interface::Open(Kernel::HLERequestContext& ctx) { } void Module::Interface::Read(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 1, 2); + IPC::RequestParser rp(ctx); const u32 write_buffer_size = rp.Pop(); auto& write_buffer = rp.PopMappedBuffer(); @@ -171,7 +171,7 @@ void Module::Interface::Read(Kernel::HLERequestContext& ctx) { } void Module::Interface::ReadMessage(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 4, 4); + IPC::RequestParser rp(ctx); const u32 ncch_program_id = rp.Pop(); const bool is_outbox = rp.Pop(); const u32 message_id_size = rp.Pop(); @@ -240,7 +240,7 @@ void Module::Interface::ReadMessage(Kernel::HLERequestContext& ctx) { } void Module::Interface::ReadMessageWithHMAC(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x04, 4, 6); + IPC::RequestParser rp(ctx); const u32 ncch_program_id = rp.Pop(); const bool is_outbox = rp.Pop(); const u32 message_id_size = rp.Pop(); @@ -334,7 +334,7 @@ void Module::Interface::ReadMessageWithHMAC(Kernel::HLERequestContext& ctx) { } void Module::Interface::Write(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 1, 2); + IPC::RequestParser rp(ctx); const u32 read_buffer_size = rp.Pop(); auto& read_buffer = rp.PopMappedBuffer(); @@ -382,7 +382,7 @@ void Module::Interface::Write(Kernel::HLERequestContext& ctx) { } void Module::Interface::WriteMessage(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 4, 4); + IPC::RequestParser rp(ctx); const u32 ncch_program_id = rp.Pop(); const bool is_outbox = rp.Pop(); const u32 message_id_size = rp.Pop(); @@ -452,7 +452,7 @@ void Module::Interface::WriteMessage(Kernel::HLERequestContext& ctx) { } void Module::Interface::WriteMessageWithHMAC(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x07, 4, 6); + IPC::RequestParser rp(ctx); const u32 ncch_program_id = rp.Pop(); const bool is_outbox = rp.Pop(); const u32 message_id_size = rp.Pop(); @@ -540,7 +540,7 @@ void Module::Interface::WriteMessageWithHMAC(Kernel::HLERequestContext& ctx) { } void Module::Interface::Delete(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x08, 4, 2); + IPC::RequestParser rp(ctx); const u32 ncch_program_id = rp.Pop(); const CecDataPathType path_type = rp.PopEnum(); const bool is_outbox = rp.Pop(); @@ -584,7 +584,7 @@ void Module::Interface::Delete(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x09, 3, 2); + IPC::RequestParser rp(ctx); const u32 ncch_program_id = rp.Pop(); const u32 buffer_size = rp.Pop(); const u32 option = rp.Pop(); @@ -619,7 +619,7 @@ void Module::Interface::SetData(Kernel::HLERequestContext& ctx) { } void Module::Interface::ReadData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0A, 3, 4); + IPC::RequestParser rp(ctx); const u32 dest_buffer_size = rp.Pop(); const CecSystemInfoType info_type = rp.PopEnum(); const u32 param_buffer_size = rp.Pop(); @@ -658,7 +658,7 @@ void Module::Interface::ReadData(Kernel::HLERequestContext& ctx) { } void Module::Interface::Start(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0B, 1, 0); + IPC::RequestParser rp(ctx); const CecCommand command = rp.PopEnum(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -668,7 +668,7 @@ void Module::Interface::Start(Kernel::HLERequestContext& ctx) { } void Module::Interface::Stop(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0C, 1, 0); + IPC::RequestParser rp(ctx); const CecCommand command = rp.PopEnum(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -678,7 +678,7 @@ void Module::Interface::Stop(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetCecInfoBuffer(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0D, 2, 2); + IPC::RequestParser rp(ctx); const u32 buffer_size = rp.Pop(); const u32 possible_info_type = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -692,7 +692,7 @@ void Module::Interface::GetCecInfoBuffer(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetCecdState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0E, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -702,7 +702,7 @@ void Module::Interface::GetCecdState(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetCecInfoEventHandle(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0F, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); rb.Push(RESULT_SUCCESS); @@ -712,7 +712,7 @@ void Module::Interface::GetCecInfoEventHandle(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetChangeStateEventHandle(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); rb.Push(RESULT_SUCCESS); @@ -722,7 +722,7 @@ void Module::Interface::GetChangeStateEventHandle(Kernel::HLERequestContext& ctx } void Module::Interface::OpenAndWrite(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 4, 4); + IPC::RequestParser rp(ctx); const u32 buffer_size = rp.Pop(); const u32 ncch_program_id = rp.Pop(); const CecDataPathType path_type = rp.PopEnum(); @@ -782,7 +782,7 @@ void Module::Interface::OpenAndWrite(Kernel::HLERequestContext& ctx) { } void Module::Interface::OpenAndRead(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 4, 4); + IPC::RequestParser rp(ctx); const u32 buffer_size = rp.Pop(); const u32 ncch_program_id = rp.Pop(); const CecDataPathType path_type = rp.PopEnum(); diff --git a/src/core/hle/service/cecd/cecd_ndm.cpp b/src/core/hle/service/cecd/cecd_ndm.cpp index b4b9abc6a..f393bd655 100644 --- a/src/core/hle/service/cecd/cecd_ndm.cpp +++ b/src/core/hle/service/cecd/cecd_ndm.cpp @@ -13,10 +13,10 @@ CECD_NDM::CECD_NDM(std::shared_ptr cecd) : Module::Interface(std::move(cecd), "cecd:ndm", DefaultMaxSessions) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 0), nullptr, "Initialize"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "Deinitialize"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "ResumeDaemon"}, - {IPC::MakeHeader(0x0004, 1, 0), nullptr, "SuspendDaemon"}, + {0x0001, nullptr, "Initialize"}, + {0x0002, nullptr, "Deinitialize"}, + {0x0003, nullptr, "ResumeDaemon"}, + {0x0004, nullptr, "SuspendDaemon"}, // clang-format on }; diff --git a/src/core/hle/service/cecd/cecd_s.cpp b/src/core/hle/service/cecd/cecd_s.cpp index 19eef4539..94745778d 100644 --- a/src/core/hle/service/cecd/cecd_s.cpp +++ b/src/core/hle/service/cecd/cecd_s.cpp @@ -14,28 +14,28 @@ CECD_S::CECD_S(std::shared_ptr cecd) static const FunctionInfo functions[] = { // cecd:u shared commands // clang-format off - {IPC::MakeHeader(0x0001, 3, 2), &CECD_S::Open, "Open"}, - {IPC::MakeHeader(0x0002, 1, 2), &CECD_S::Read, "Read"}, - {IPC::MakeHeader(0x0003, 4, 4), &CECD_S::ReadMessage, "ReadMessage"}, - {IPC::MakeHeader(0x0004, 4, 6), &CECD_S::ReadMessageWithHMAC, "ReadMessageWithHMAC"}, - {IPC::MakeHeader(0x0005, 1, 2), &CECD_S::Write, "Write"}, - {IPC::MakeHeader(0x0006, 4, 4), &CECD_S::WriteMessage, "WriteMessage"}, - {IPC::MakeHeader(0x0007, 4, 6), &CECD_S::WriteMessageWithHMAC, "WriteMessageWithHMAC"}, - {IPC::MakeHeader(0x0008, 4, 2), &CECD_S::Delete, "Delete"}, - {IPC::MakeHeader(0x0009, 3, 2), &CECD_S::SetData, "SetData"}, - {IPC::MakeHeader(0x000A, 3, 4), &CECD_S::ReadData, "ReadData"}, - {IPC::MakeHeader(0x000B, 1, 0), &CECD_S::Start, "Start"}, - {IPC::MakeHeader(0x000C, 1, 0), &CECD_S::Stop, "Stop"}, - {IPC::MakeHeader(0x000D, 2, 2), &CECD_S::GetCecInfoBuffer, "GetCecInfoBuffer"}, - {IPC::MakeHeader(0x000E, 0, 0), &CECD_S::GetCecdState, "GetCecdState"}, - {IPC::MakeHeader(0x000F, 0, 0), &CECD_S::GetCecInfoEventHandle, "GetCecInfoEventHandle"}, - {IPC::MakeHeader(0x0010, 0, 0), &CECD_S::GetChangeStateEventHandle, "GetChangeStateEventHandle"}, - {IPC::MakeHeader(0x0011, 4, 4), &CECD_S::OpenAndWrite, "OpenAndWrite"}, - {IPC::MakeHeader(0x0012, 4, 4), &CECD_S::OpenAndRead, "OpenAndRead"}, - {IPC::MakeHeader(0x001E, 2, 2), nullptr, "GetEventLog"}, - {IPC::MakeHeader(0x001F, 0, 0), nullptr, "GetEventLogStart"}, + {0x0001, &CECD_S::Open, "Open"}, + {0x0002, &CECD_S::Read, "Read"}, + {0x0003, &CECD_S::ReadMessage, "ReadMessage"}, + {0x0004, &CECD_S::ReadMessageWithHMAC, "ReadMessageWithHMAC"}, + {0x0005, &CECD_S::Write, "Write"}, + {0x0006, &CECD_S::WriteMessage, "WriteMessage"}, + {0x0007, &CECD_S::WriteMessageWithHMAC, "WriteMessageWithHMAC"}, + {0x0008, &CECD_S::Delete, "Delete"}, + {0x0009, &CECD_S::SetData, "SetData"}, + {0x000A, &CECD_S::ReadData, "ReadData"}, + {0x000B, &CECD_S::Start, "Start"}, + {0x000C, &CECD_S::Stop, "Stop"}, + {0x000D, &CECD_S::GetCecInfoBuffer, "GetCecInfoBuffer"}, + {0x000E, &CECD_S::GetCecdState, "GetCecdState"}, + {0x000F, &CECD_S::GetCecInfoEventHandle, "GetCecInfoEventHandle"}, + {0x0010, &CECD_S::GetChangeStateEventHandle, "GetChangeStateEventHandle"}, + {0x0011, &CECD_S::OpenAndWrite, "OpenAndWrite"}, + {0x0012, &CECD_S::OpenAndRead, "OpenAndRead"}, + {0x001E, nullptr, "GetEventLog"}, + {0x001F, nullptr, "GetEventLogStart"}, // cecd:s commands - {IPC::MakeHeader(0x0402, 0, 2), nullptr, "GetCecInfoEventHandleSys"}, + {0x0402, nullptr, "GetCecInfoEventHandleSys"}, // clang-format on }; diff --git a/src/core/hle/service/cecd/cecd_u.cpp b/src/core/hle/service/cecd/cecd_u.cpp index 9e46bc6f9..75104a664 100644 --- a/src/core/hle/service/cecd/cecd_u.cpp +++ b/src/core/hle/service/cecd/cecd_u.cpp @@ -14,26 +14,26 @@ CECD_U::CECD_U(std::shared_ptr cecd) static const FunctionInfo functions[] = { // cecd:u shared commands // clang-format off - {IPC::MakeHeader(0x0001, 3, 2), &CECD_U::Open, "Open"}, - {IPC::MakeHeader(0x0002, 1, 2), &CECD_U::Read, "Read"}, - {IPC::MakeHeader(0x0003, 4, 4), &CECD_U::ReadMessage, "ReadMessage"}, - {IPC::MakeHeader(0x0004, 4, 6), &CECD_U::ReadMessageWithHMAC, "ReadMessageWithHMAC"}, - {IPC::MakeHeader(0x0005, 1, 2), &CECD_U::Write, "Write"}, - {IPC::MakeHeader(0x0006, 4, 4), &CECD_U::WriteMessage, "WriteMessage"}, - {IPC::MakeHeader(0x0007, 4, 6), &CECD_U::WriteMessageWithHMAC, "WriteMessageWithHMAC"}, - {IPC::MakeHeader(0x0008, 4, 2), &CECD_U::Delete, "Delete"}, - {IPC::MakeHeader(0x0009, 3, 2), &CECD_U::SetData, "SetData"}, - {IPC::MakeHeader(0x000A, 3, 4), &CECD_U::ReadData, "ReadData"}, - {IPC::MakeHeader(0x000B, 1, 0), &CECD_U::Start, "Start"}, - {IPC::MakeHeader(0x000C, 1, 0), &CECD_U::Stop, "Stop"}, - {IPC::MakeHeader(0x000D, 2, 2), &CECD_U::GetCecInfoBuffer, "GetCecInfoBuffer"}, - {IPC::MakeHeader(0x000E, 0, 0), &CECD_U::GetCecdState, "GetCecdState"}, - {IPC::MakeHeader(0x000F, 0, 0), &CECD_U::GetCecInfoEventHandle, "GetCecInfoEventHandle"}, - {IPC::MakeHeader(0x0010, 0, 0), &CECD_U::GetChangeStateEventHandle, "GetChangeStateEventHandle"}, - {IPC::MakeHeader(0x0011, 4, 4), &CECD_U::OpenAndWrite, "OpenAndWrite"}, - {IPC::MakeHeader(0x0012, 4, 4), &CECD_U::OpenAndRead, "OpenAndRead"}, - {IPC::MakeHeader(0x001E, 2, 2), nullptr, "GetEventLog"}, - {IPC::MakeHeader(0x001F, 0, 0), nullptr, "GetEventLogStart"}, + {0x0001, &CECD_U::Open, "Open"}, + {0x0002, &CECD_U::Read, "Read"}, + {0x0003, &CECD_U::ReadMessage, "ReadMessage"}, + {0x0004, &CECD_U::ReadMessageWithHMAC, "ReadMessageWithHMAC"}, + {0x0005, &CECD_U::Write, "Write"}, + {0x0006, &CECD_U::WriteMessage, "WriteMessage"}, + {0x0007, &CECD_U::WriteMessageWithHMAC, "WriteMessageWithHMAC"}, + {0x0008, &CECD_U::Delete, "Delete"}, + {0x0009, &CECD_U::SetData, "SetData"}, + {0x000A, &CECD_U::ReadData, "ReadData"}, + {0x000B, &CECD_U::Start, "Start"}, + {0x000C, &CECD_U::Stop, "Stop"}, + {0x000D, &CECD_U::GetCecInfoBuffer, "GetCecInfoBuffer"}, + {0x000E, &CECD_U::GetCecdState, "GetCecdState"}, + {0x000F, &CECD_U::GetCecInfoEventHandle, "GetCecInfoEventHandle"}, + {0x0010, &CECD_U::GetChangeStateEventHandle, "GetChangeStateEventHandle"}, + {0x0011, &CECD_U::OpenAndWrite, "OpenAndWrite"}, + {0x0012, &CECD_U::OpenAndRead, "OpenAndRead"}, + {0x001E, nullptr, "GetEventLog"}, + {0x001F, nullptr, "GetEventLogStart"}, // clang-format on }; diff --git a/src/core/hle/service/cfg/cfg.cpp b/src/core/hle/service/cfg/cfg.cpp index 06556fbaf..9d0203b08 100644 --- a/src/core/hle/service/cfg/cfg.cpp +++ b/src/core/hle/service/cfg/cfg.cpp @@ -206,7 +206,7 @@ Module::Interface::Interface(std::shared_ptr cfg, const char* name, u32 Module::Interface::~Interface() = default; void Module::Interface::GetCountryCodeString(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x09, 1, 0); + IPC::RequestParser rp(ctx); u16 country_code_id = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -228,7 +228,7 @@ std::shared_ptr Module::Interface::Interface::GetModule() const { } void Module::Interface::GetCountryCodeID(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0A, 1, 0); + IPC::RequestParser rp(ctx); u16 country_code = rp.Pop(); u16 country_code_id = 0; @@ -263,16 +263,16 @@ u32 Module::GetRegionValue() { return Settings::values.region_value.GetValue(); } -void Module::Interface::SecureInfoGetRegion(Kernel::HLERequestContext& ctx, u16 id) { - IPC::RequestParser rp(ctx, id, 0, 0); +void Module::Interface::SecureInfoGetRegion(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); rb.Push(static_cast(cfg->GetRegionValue())); } -void Module::Interface::SecureInfoGetByte101(Kernel::HLERequestContext& ctx, u16 id) { - IPC::RequestParser rp(ctx, id, 0, 0); +void Module::Interface::SecureInfoGetByte101(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_CFG, "(STUBBED) called"); @@ -283,7 +283,7 @@ void Module::Interface::SecureInfoGetByte101(Kernel::HLERequestContext& ctx, u16 } void Module::Interface::GenHashConsoleUnique(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 1, 0); + IPC::RequestParser rp(ctx); const u32 app_id_salt = rp.Pop() & 0x000FFFFF; IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); @@ -309,7 +309,7 @@ void Module::Interface::GenHashConsoleUnique(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetRegionCanadaUSA(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x04, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -323,7 +323,7 @@ void Module::Interface::GetRegionCanadaUSA(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetSystemModel(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); u32 data{}; @@ -345,7 +345,7 @@ void Module::Interface::GetSystemModel(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetModelNintendo2DS(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); u32 data{}; @@ -356,7 +356,7 @@ void Module::Interface::GetModelNintendo2DS(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetConfigInfoBlk2(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 2, 2); + IPC::RequestParser rp(ctx); u32 size = rp.Pop(); u32 block_id = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -368,8 +368,8 @@ void Module::Interface::GetConfigInfoBlk2(Kernel::HLERequestContext& ctx) { rb.PushMappedBuffer(buffer); } -void Module::Interface::GetConfigInfoBlk8(Kernel::HLERequestContext& ctx, u16 id) { - IPC::RequestParser rp(ctx, id, 2, 2); +void Module::Interface::GetConfigInfoBlk8(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp(ctx); u32 size = rp.Pop(); u32 block_id = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -381,8 +381,8 @@ void Module::Interface::GetConfigInfoBlk8(Kernel::HLERequestContext& ctx, u16 id rb.PushMappedBuffer(buffer); } -void Module::Interface::SetConfigInfoBlk4(Kernel::HLERequestContext& ctx, u16 id) { - IPC::RequestParser rp(ctx, id, 2, 2); +void Module::Interface::SetConfigInfoBlk4(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp(ctx); u32 block_id = rp.Pop(); u32 size = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -395,14 +395,14 @@ void Module::Interface::SetConfigInfoBlk4(Kernel::HLERequestContext& ctx, u16 id rb.PushMappedBuffer(buffer); } -void Module::Interface::UpdateConfigNANDSavegame(Kernel::HLERequestContext& ctx, u16 id) { - IPC::RequestParser rp(ctx, id, 0, 0); +void Module::Interface::UpdateConfigNANDSavegame(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(cfg->UpdateConfigNANDSavegame()); } void Module::Interface::FormatConfig(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0806, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(cfg->FormatConfig()); } diff --git a/src/core/hle/service/cfg/cfg.h b/src/core/hle/service/cfg/cfg.h index 371ce8228..11f2db90e 100644 --- a/src/core/hle/service/cfg/cfg.h +++ b/src/core/hle/service/cfg/cfg.h @@ -163,7 +163,7 @@ public: * 1 : Result of function, 0 on success, otherwise error code * 2 : Region value loaded from SecureInfo offset 0x100 */ - void SecureInfoGetRegion(Kernel::HLERequestContext& ctx, u16 id); + void SecureInfoGetRegion(Kernel::HLERequestContext& ctx); /** * CFG::SecureInfoGetByte101 service function @@ -174,7 +174,7 @@ public: * 1 : Result of function, 0 on success, otherwise error code * 2 : Value loaded from SecureInfo offset 0x101 */ - void SecureInfoGetByte101(Kernel::HLERequestContext& ctx, u16 id); + void SecureInfoGetByte101(Kernel::HLERequestContext& ctx); /** * CFG::GenHashConsoleUnique service function @@ -243,7 +243,7 @@ public: * Outputs: * 1 : Result of function, 0 on success, otherwise error code */ - void GetConfigInfoBlk8(Kernel::HLERequestContext& ctx, u16 id); + void GetConfigInfoBlk8(Kernel::HLERequestContext& ctx); /** * CFG::SetConfigInfoBlk4 service function @@ -259,7 +259,7 @@ public: * The parameters order is different from GetConfigInfoBlk2/8's, * where Block ID and Size are switched. */ - void SetConfigInfoBlk4(Kernel::HLERequestContext& ctx, u16 id); + void SetConfigInfoBlk4(Kernel::HLERequestContext& ctx); /** * CFG::UpdateConfigNANDSavegame service function @@ -268,7 +268,7 @@ public: * Outputs: * 1 : Result of function, 0 on success, otherwise error code */ - void UpdateConfigNANDSavegame(Kernel::HLERequestContext& ctx, u16 id); + void UpdateConfigNANDSavegame(Kernel::HLERequestContext& ctx); /** * CFG::FormatConfig service function @@ -279,12 +279,6 @@ public: */ void FormatConfig(Kernel::HLERequestContext& ctx); - /// A helper function for dispatching service functions that have multiple IDs - template - void D(Kernel::HLERequestContext& ctx) { - (this->*function)(ctx, id); - } - protected: std::shared_ptr cfg; }; diff --git a/src/core/hle/service/cfg/cfg_i.cpp b/src/core/hle/service/cfg/cfg_i.cpp index 61a151128..e556c5210 100644 --- a/src/core/hle/service/cfg/cfg_i.cpp +++ b/src/core/hle/service/cfg/cfg_i.cpp @@ -13,50 +13,50 @@ CFG_I::CFG_I(std::shared_ptr cfg) : Module::Interface(std::move(cfg), "c static const FunctionInfo functions[] = { // cfg common // clang-format off - {IPC::MakeHeader(0x0001, 2, 2), &CFG_I::GetConfigInfoBlk2, "GetConfigInfoBlk2"}, - {IPC::MakeHeader(0x0002, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetRegion, 0x0002>, "SecureInfoGetRegion"}, - {IPC::MakeHeader(0x0003, 1, 0), &CFG_I::GenHashConsoleUnique, "GenHashConsoleUnique"}, - {IPC::MakeHeader(0x0004, 0, 0), &CFG_I::GetRegionCanadaUSA, "GetRegionCanadaUSA"}, - {IPC::MakeHeader(0x0005, 0, 0), &CFG_I::GetSystemModel, "GetSystemModel"}, - {IPC::MakeHeader(0x0006, 0, 0), &CFG_I::GetModelNintendo2DS, "GetModelNintendo2DS"}, - {IPC::MakeHeader(0x0007, 1, 0), nullptr, "WriteToFirstByteCfgSavegame"}, - {IPC::MakeHeader(0x0008, 2, 0), nullptr, "GoThroughTable"}, - {IPC::MakeHeader(0x0009, 1, 0), &CFG_I::GetCountryCodeString, "GetCountryCodeString"}, - {IPC::MakeHeader(0x000A, 1, 0), &CFG_I::GetCountryCodeID, "GetCountryCodeID"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "IsFangateSupported"}, + {0x0001, &CFG_I::GetConfigInfoBlk2, "GetConfigInfoBlk2"}, + {0x0002, &CFG_I::SecureInfoGetRegion, "SecureInfoGetRegion"}, + {0x0003, &CFG_I::GenHashConsoleUnique, "GenHashConsoleUnique"}, + {0x0004, &CFG_I::GetRegionCanadaUSA, "GetRegionCanadaUSA"}, + {0x0005, &CFG_I::GetSystemModel, "GetSystemModel"}, + {0x0006, &CFG_I::GetModelNintendo2DS, "GetModelNintendo2DS"}, + {0x0007, nullptr, "WriteToFirstByteCfgSavegame"}, + {0x0008, nullptr, "GoThroughTable"}, + {0x0009, &CFG_I::GetCountryCodeString, "GetCountryCodeString"}, + {0x000A, &CFG_I::GetCountryCodeID, "GetCountryCodeID"}, + {0x000B, nullptr, "IsFangateSupported"}, // cfg:i - {IPC::MakeHeader(0x0401, 2, 2), &CFG_I::D<&CFG_I::GetConfigInfoBlk8, 0x0401>, "GetConfigInfoBlk8"}, - {IPC::MakeHeader(0x0402, 2, 2), &CFG_I::D<&CFG_I::SetConfigInfoBlk4, 0x0402>, "SetConfigInfoBlk4"}, - {IPC::MakeHeader(0x0403, 0, 0), &CFG_I::D<&CFG_I::UpdateConfigNANDSavegame, 0x0403>, "UpdateConfigNANDSavegame"}, - {IPC::MakeHeader(0x0404, 1, 2), nullptr, "GetLocalFriendCodeSeedData"}, - {IPC::MakeHeader(0x0405, 0, 0), nullptr, "GetLocalFriendCodeSeed"}, - {IPC::MakeHeader(0x0406, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetRegion, 0x0406>, "SecureInfoGetRegion"}, - {IPC::MakeHeader(0x0407, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetByte101, 0x0407>, "SecureInfoGetByte101"}, - {IPC::MakeHeader(0x0408, 1, 2), nullptr, "SecureInfoGetSerialNo"}, - {IPC::MakeHeader(0x0409, 0, 0), nullptr, "UpdateConfigBlk00040003"}, - {IPC::MakeHeader(0x0801, 2, 2), &CFG_I::D<&CFG_I::GetConfigInfoBlk8, 0x0801>, "GetConfigInfoBlk8"}, - {IPC::MakeHeader(0x0802, 2, 2), &CFG_I::D<&CFG_I::SetConfigInfoBlk4, 0x0802>, "SetConfigInfoBlk4"}, - {IPC::MakeHeader(0x0803, 0, 0), &CFG_I::D<&CFG_I::UpdateConfigNANDSavegame, 0x0803>, "UpdateConfigNANDSavegame"}, - {IPC::MakeHeader(0x0804, 3, 2), nullptr, "CreateConfigInfoBlk"}, - {IPC::MakeHeader(0x0805, 0, 0), nullptr, "DeleteConfigNANDSavefile"}, - {IPC::MakeHeader(0x0806, 0, 0), &CFG_I::FormatConfig, "FormatConfig"}, - {IPC::MakeHeader(0x0808, 0, 0), nullptr, "UpdateConfigBlk1"}, - {IPC::MakeHeader(0x0809, 0, 0), nullptr, "UpdateConfigBlk2"}, - {IPC::MakeHeader(0x080A, 0, 0), nullptr, "UpdateConfigBlk3"}, - {IPC::MakeHeader(0x080B, 2, 2), nullptr, "SetGetLocalFriendCodeSeedData"}, - {IPC::MakeHeader(0x080C, 1, 2), nullptr, "SetLocalFriendCodeSeedSignature"}, - {IPC::MakeHeader(0x080D, 0, 0), nullptr, "DeleteCreateNANDLocalFriendCodeSeed"}, - {IPC::MakeHeader(0x080E, 0, 0), nullptr, "VerifySigLocalFriendCodeSeed"}, - {IPC::MakeHeader(0x080F, 1, 2), nullptr, "GetLocalFriendCodeSeedData"}, - {IPC::MakeHeader(0x0810, 0, 0), nullptr, "GetLocalFriendCodeSeed"}, - {IPC::MakeHeader(0x0811, 2, 4), nullptr, "SetSecureInfo"}, - {IPC::MakeHeader(0x0812, 0, 0), nullptr, "DeleteCreateNANDSecureInfo"}, - {IPC::MakeHeader(0x0813, 0, 0), nullptr, "VerifySigSecureInfo"}, - {IPC::MakeHeader(0x0814, 1, 2), nullptr, "SecureInfoGetData"}, - {IPC::MakeHeader(0x0815, 1, 2), nullptr, "SecureInfoGetSignature"}, - {IPC::MakeHeader(0x0816, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetRegion, 0x0816>, "SecureInfoGetRegion"}, - {IPC::MakeHeader(0x0817, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetByte101, 0x0817>, "SecureInfoGetByte101"}, - {IPC::MakeHeader(0x0818, 1, 2), nullptr, "SecureInfoGetSerialNo"}, + {0x0401, &CFG_I::GetConfigInfoBlk8, "GetConfigInfoBlk8"}, + {0x0402, &CFG_I::SetConfigInfoBlk4, "SetConfigInfoBlk4"}, + {0x0403, &CFG_I::UpdateConfigNANDSavegame, "UpdateConfigNANDSavegame"}, + {0x0404, nullptr, "GetLocalFriendCodeSeedData"}, + {0x0405, nullptr, "GetLocalFriendCodeSeed"}, + {0x0406, &CFG_I::SecureInfoGetRegion, "SecureInfoGetRegion"}, + {0x0407, &CFG_I::SecureInfoGetByte101, "SecureInfoGetByte101"}, + {0x0408, nullptr, "SecureInfoGetSerialNo"}, + {0x0409, nullptr, "UpdateConfigBlk00040003"}, + {0x0801, &CFG_I::GetConfigInfoBlk8, "GetConfigInfoBlk8"}, + {0x0802, &CFG_I::SetConfigInfoBlk4, "SetConfigInfoBlk4"}, + {0x0803, &CFG_I::UpdateConfigNANDSavegame, "UpdateConfigNANDSavegame"}, + {0x0804, nullptr, "CreateConfigInfoBlk"}, + {0x0805, nullptr, "DeleteConfigNANDSavefile"}, + {0x0806, &CFG_I::FormatConfig, "FormatConfig"}, + {0x0808, nullptr, "UpdateConfigBlk1"}, + {0x0809, nullptr, "UpdateConfigBlk2"}, + {0x080A, nullptr, "UpdateConfigBlk3"}, + {0x080B, nullptr, "SetGetLocalFriendCodeSeedData"}, + {0x080C, nullptr, "SetLocalFriendCodeSeedSignature"}, + {0x080D, nullptr, "DeleteCreateNANDLocalFriendCodeSeed"}, + {0x080E, nullptr, "VerifySigLocalFriendCodeSeed"}, + {0x080F, nullptr, "GetLocalFriendCodeSeedData"}, + {0x0810, nullptr, "GetLocalFriendCodeSeed"}, + {0x0811, nullptr, "SetSecureInfo"}, + {0x0812, nullptr, "DeleteCreateNANDSecureInfo"}, + {0x0813, nullptr, "VerifySigSecureInfo"}, + {0x0814, nullptr, "SecureInfoGetData"}, + {0x0815, nullptr, "SecureInfoGetSignature"}, + {0x0816, &CFG_I::SecureInfoGetRegion, "SecureInfoGetRegion"}, + {0x0817, &CFG_I::SecureInfoGetByte101, "SecureInfoGetByte101"}, + {0x0818, nullptr, "SecureInfoGetSerialNo"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/cfg/cfg_nor.cpp b/src/core/hle/service/cfg/cfg_nor.cpp index ec1241075..aebed257c 100644 --- a/src/core/hle/service/cfg/cfg_nor.cpp +++ b/src/core/hle/service/cfg/cfg_nor.cpp @@ -12,10 +12,10 @@ namespace Service::CFG { CFG_NOR::CFG_NOR() : ServiceFramework("cfg:nor", 23) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), nullptr, "Initialize"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "Shutdown"}, - {IPC::MakeHeader(0x0005, 2, 2), nullptr, "ReadData"}, - {IPC::MakeHeader(0x0006, 2, 2), nullptr, "WriteData"}, + {0x0001, nullptr, "Initialize"}, + {0x0002, nullptr, "Shutdown"}, + {0x0005, nullptr, "ReadData"}, + {0x0006, nullptr, "WriteData"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/cfg/cfg_s.cpp b/src/core/hle/service/cfg/cfg_s.cpp index eafe4076f..c6bda8c36 100644 --- a/src/core/hle/service/cfg/cfg_s.cpp +++ b/src/core/hle/service/cfg/cfg_s.cpp @@ -13,27 +13,27 @@ CFG_S::CFG_S(std::shared_ptr cfg) : Module::Interface(std::move(cfg), "c static const FunctionInfo functions[] = { // cfg common // clang-format off - {IPC::MakeHeader(0x0001, 2, 2), &CFG_S::GetConfigInfoBlk2, "GetConfigInfoBlk2"}, - {IPC::MakeHeader(0x0002, 0, 0), &CFG_S::D<&CFG_S::SecureInfoGetRegion, 0x0002>, "SecureInfoGetRegion"}, - {IPC::MakeHeader(0x0003, 1, 0), &CFG_S::GenHashConsoleUnique, "GenHashConsoleUnique"}, - {IPC::MakeHeader(0x0004, 0, 0), &CFG_S::GetRegionCanadaUSA, "GetRegionCanadaUSA"}, - {IPC::MakeHeader(0x0005, 0, 0), &CFG_S::GetSystemModel, "GetSystemModel"}, - {IPC::MakeHeader(0x0006, 0, 0), &CFG_S::GetModelNintendo2DS, "GetModelNintendo2DS"}, - {IPC::MakeHeader(0x0007, 1, 0), nullptr, "WriteToFirstByteCfgSavegame"}, - {IPC::MakeHeader(0x0008, 2, 0), nullptr, "GoThroughTable"}, - {IPC::MakeHeader(0x0009, 1, 0), &CFG_S::GetCountryCodeString, "GetCountryCodeString"}, - {IPC::MakeHeader(0x000A, 1, 0), &CFG_S::GetCountryCodeID, "GetCountryCodeID"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "IsFangateSupported"}, + {0x0001, &CFG_S::GetConfigInfoBlk2, "GetConfigInfoBlk2"}, + {0x0002, &CFG_S::SecureInfoGetRegion, "SecureInfoGetRegion"}, + {0x0003, &CFG_S::GenHashConsoleUnique, "GenHashConsoleUnique"}, + {0x0004, &CFG_S::GetRegionCanadaUSA, "GetRegionCanadaUSA"}, + {0x0005, &CFG_S::GetSystemModel, "GetSystemModel"}, + {0x0006, &CFG_S::GetModelNintendo2DS, "GetModelNintendo2DS"}, + {0x0007, nullptr, "WriteToFirstByteCfgSavegame"}, + {0x0008, nullptr, "GoThroughTable"}, + {0x0009, &CFG_S::GetCountryCodeString, "GetCountryCodeString"}, + {0x000A, &CFG_S::GetCountryCodeID, "GetCountryCodeID"}, + {0x000B, nullptr, "IsFangateSupported"}, // cfg:s - {IPC::MakeHeader(0x0401, 2, 2), &CFG_S::D<&CFG_S::GetConfigInfoBlk8, 0x0401>, "GetConfigInfoBlk8"}, - {IPC::MakeHeader(0x0402, 2, 2), &CFG_S::D<&CFG_S::SetConfigInfoBlk4, 0x0402>, "SetConfigInfoBlk4"}, - {IPC::MakeHeader(0x0403, 0, 0), &CFG_S::D<&CFG_S::UpdateConfigNANDSavegame, 0x0403>, "UpdateConfigNANDSavegame"}, - {IPC::MakeHeader(0x0404, 1, 2), nullptr, "GetLocalFriendCodeSeedData"}, - {IPC::MakeHeader(0x0405, 0, 0), nullptr, "GetLocalFriendCodeSeed"}, - {IPC::MakeHeader(0x0406, 0, 0), &CFG_S::D<&CFG_S::SecureInfoGetRegion, 0x0406>, "SecureInfoGetRegion"}, - {IPC::MakeHeader(0x0407, 0, 0), &CFG_S::D<&CFG_S::SecureInfoGetByte101, 0x0407>, "SecureInfoGetByte101"}, - {IPC::MakeHeader(0x0408, 1, 2), nullptr, "SecureInfoGetSerialNo"}, - {IPC::MakeHeader(0x0409, 0, 0), nullptr, "UpdateConfigBlk00040003"}, + {0x0401, &CFG_S::GetConfigInfoBlk8, "GetConfigInfoBlk8"}, + {0x0402, &CFG_S::SetConfigInfoBlk4, "SetConfigInfoBlk4"}, + {0x0403, &CFG_S::UpdateConfigNANDSavegame, "UpdateConfigNANDSavegame"}, + {0x0404, nullptr, "GetLocalFriendCodeSeedData"}, + {0x0405, nullptr, "GetLocalFriendCodeSeed"}, + {0x0406, &CFG_S::SecureInfoGetRegion, "SecureInfoGetRegion"}, + {0x0407, &CFG_S::SecureInfoGetByte101, "SecureInfoGetByte101"}, + {0x0408, nullptr, "SecureInfoGetSerialNo"}, + {0x0409, nullptr, "UpdateConfigBlk00040003"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/cfg/cfg_u.cpp b/src/core/hle/service/cfg/cfg_u.cpp index 31fabd279..45ad66a80 100644 --- a/src/core/hle/service/cfg/cfg_u.cpp +++ b/src/core/hle/service/cfg/cfg_u.cpp @@ -13,17 +13,17 @@ CFG_U::CFG_U(std::shared_ptr cfg) : Module::Interface(std::move(cfg), "c static const FunctionInfo functions[] = { // cfg common // clang-format off - {IPC::MakeHeader(0x0001, 2, 2), &CFG_U::GetConfigInfoBlk2, "GetConfigInfoBlk2"}, - {IPC::MakeHeader(0x0002, 0, 0), &CFG_U::D<&CFG_U::SecureInfoGetRegion, 0x0002>, "SecureInfoGetRegion"}, - {IPC::MakeHeader(0x0003, 1, 0), &CFG_U::GenHashConsoleUnique, "GenHashConsoleUnique"}, - {IPC::MakeHeader(0x0004, 0, 0), &CFG_U::GetRegionCanadaUSA, "GetRegionCanadaUSA"}, - {IPC::MakeHeader(0x0005, 0, 0), &CFG_U::GetSystemModel, "GetSystemModel"}, - {IPC::MakeHeader(0x0006, 0, 0), &CFG_U::GetModelNintendo2DS, "GetModelNintendo2DS"}, - {IPC::MakeHeader(0x0007, 1, 0), nullptr, "WriteToFirstByteCfgSavegame"}, - {IPC::MakeHeader(0x0008, 2, 0), nullptr, "GoThroughTable"}, - {IPC::MakeHeader(0x0009, 1, 0), &CFG_U::GetCountryCodeString, "GetCountryCodeString"}, - {IPC::MakeHeader(0x000A, 1, 0), &CFG_U::GetCountryCodeID, "GetCountryCodeID"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "IsFangateSupported"}, + {0x0001, &CFG_U::GetConfigInfoBlk2, "GetConfigInfoBlk2"}, + {0x0002, &CFG_U::SecureInfoGetRegion, "SecureInfoGetRegion"}, + {0x0003, &CFG_U::GenHashConsoleUnique, "GenHashConsoleUnique"}, + {0x0004, &CFG_U::GetRegionCanadaUSA, "GetRegionCanadaUSA"}, + {0x0005, &CFG_U::GetSystemModel, "GetSystemModel"}, + {0x0006, &CFG_U::GetModelNintendo2DS, "GetModelNintendo2DS"}, + {0x0007, nullptr, "WriteToFirstByteCfgSavegame"}, + {0x0008, nullptr, "GoThroughTable"}, + {0x0009, &CFG_U::GetCountryCodeString, "GetCountryCodeString"}, + {0x000A, &CFG_U::GetCountryCodeID, "GetCountryCodeID"}, + {0x000B, nullptr, "IsFangateSupported"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/csnd/csnd_snd.cpp b/src/core/hle/service/csnd/csnd_snd.cpp index db2d02ff6..943952070 100644 --- a/src/core/hle/service/csnd/csnd_snd.cpp +++ b/src/core/hle/service/csnd/csnd_snd.cpp @@ -191,7 +191,7 @@ struct CaptureState { static_assert(sizeof(CaptureState) == 0x8, "CaptureState structure size is wrong"); void CSND_SND::Initialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 5, 0); + IPC::RequestParser rp(ctx); const u32 size = Common::AlignUp(rp.Pop(), Memory::CITRA_PAGE_SIZE); master_state_offset = rp.Pop(); channel_state_offset = rp.Pop(); @@ -219,7 +219,7 @@ void CSND_SND::Initialize(Kernel::HLERequestContext& ctx) { } void CSND_SND::Shutdown(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 0, 0); + IPC::RequestParser rp(ctx); if (mutex) mutex = nullptr; @@ -233,7 +233,7 @@ void CSND_SND::Shutdown(Kernel::HLERequestContext& ctx) { } void CSND_SND::ExecuteCommands(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 1, 0); + IPC::RequestParser rp(ctx); const u32 addr = rp.Pop(); LOG_WARNING(Service_CSND, "(STUBBED) called, addr=0x{:08X}", addr); @@ -397,7 +397,7 @@ void CSND_SND::ExecuteCommands(Kernel::HLERequestContext& ctx) { } void CSND_SND::AcquireSoundChannels(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 0, 0); + IPC::RequestParser rp(ctx); // This is "almost" hardcoded, as in CSND initializes this with some code during sysmodule // startup, but it always compute to the same value. @@ -411,7 +411,7 @@ void CSND_SND::AcquireSoundChannels(Kernel::HLERequestContext& ctx) { } void CSND_SND::ReleaseSoundChannels(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 0, 0); + IPC::RequestParser rp(ctx); acquired_channel_mask = 0; @@ -422,7 +422,7 @@ void CSND_SND::ReleaseSoundChannels(Kernel::HLERequestContext& ctx) { } void CSND_SND::AcquireCapUnit(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x7, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); if (capture_units[0] && capture_units[1]) { @@ -446,7 +446,7 @@ void CSND_SND::AcquireCapUnit(Kernel::HLERequestContext& ctx) { } void CSND_SND::ReleaseCapUnit(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x8, 1, 0); + IPC::RequestParser rp(ctx); const u32 index = rp.Pop(); capture_units[index] = false; @@ -458,7 +458,7 @@ void CSND_SND::ReleaseCapUnit(Kernel::HLERequestContext& ctx) { } void CSND_SND::FlushDataCache(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 2, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] const VAddr address = rp.Pop(); [[maybe_unused]] const u32 size = rp.Pop(); const auto process = rp.PopObject(); @@ -471,7 +471,7 @@ void CSND_SND::FlushDataCache(Kernel::HLERequestContext& ctx) { } void CSND_SND::StoreDataCache(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xA, 2, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] const VAddr address = rp.Pop(); [[maybe_unused]] const u32 size = rp.Pop(); const auto process = rp.PopObject(); @@ -484,7 +484,7 @@ void CSND_SND::StoreDataCache(Kernel::HLERequestContext& ctx) { } void CSND_SND::InvalidateDataCache(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xB, 2, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] const VAddr address = rp.Pop(); [[maybe_unused]] const u32 size = rp.Pop(); const auto process = rp.PopObject(); @@ -497,7 +497,7 @@ void CSND_SND::InvalidateDataCache(Kernel::HLERequestContext& ctx) { } void CSND_SND::Reset(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xC, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -508,18 +508,18 @@ void CSND_SND::Reset(Kernel::HLERequestContext& ctx) { CSND_SND::CSND_SND(Core::System& system) : ServiceFramework("csnd:SND", 4), system(system) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 5, 0), &CSND_SND::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0002, 0, 0), &CSND_SND::Shutdown, "Shutdown"}, - {IPC::MakeHeader(0x0003, 1, 0), &CSND_SND::ExecuteCommands, "ExecuteCommands"}, - {IPC::MakeHeader(0x0004, 2, 0), nullptr, "ExecuteType1Commands"}, - {IPC::MakeHeader(0x0005, 0, 0), &CSND_SND::AcquireSoundChannels, "AcquireSoundChannels"}, - {IPC::MakeHeader(0x0006, 0, 0), &CSND_SND::ReleaseSoundChannels, "ReleaseSoundChannels"}, - {IPC::MakeHeader(0x0007, 0, 0), &CSND_SND::AcquireCapUnit, "AcquireCapUnit"}, - {IPC::MakeHeader(0x0008, 1, 0), &CSND_SND::ReleaseCapUnit, "ReleaseCapUnit"}, - {IPC::MakeHeader(0x0009, 2, 2), &CSND_SND::FlushDataCache, "FlushDataCache"}, - {IPC::MakeHeader(0x000A, 2, 2), &CSND_SND::StoreDataCache, "StoreDataCache"}, - {IPC::MakeHeader(0x000B, 2, 2), &CSND_SND::InvalidateDataCache, "InvalidateDataCache"}, - {IPC::MakeHeader(0x000C, 0, 0), &CSND_SND::Reset, "Reset"}, + {0x0001, &CSND_SND::Initialize, "Initialize"}, + {0x0002, &CSND_SND::Shutdown, "Shutdown"}, + {0x0003, &CSND_SND::ExecuteCommands, "ExecuteCommands"}, + {0x0004, nullptr, "ExecuteType1Commands"}, + {0x0005, &CSND_SND::AcquireSoundChannels, "AcquireSoundChannels"}, + {0x0006, &CSND_SND::ReleaseSoundChannels, "ReleaseSoundChannels"}, + {0x0007, &CSND_SND::AcquireCapUnit, "AcquireCapUnit"}, + {0x0008, &CSND_SND::ReleaseCapUnit, "ReleaseCapUnit"}, + {0x0009, &CSND_SND::FlushDataCache, "FlushDataCache"}, + {0x000A, &CSND_SND::StoreDataCache, "StoreDataCache"}, + {0x000B, &CSND_SND::InvalidateDataCache, "InvalidateDataCache"}, + {0x000C, &CSND_SND::Reset, "Reset"}, // clang-format on }; diff --git a/src/core/hle/service/dlp/dlp_clnt.cpp b/src/core/hle/service/dlp/dlp_clnt.cpp index 62a942fd6..8d79e9709 100644 --- a/src/core/hle/service/dlp/dlp_clnt.cpp +++ b/src/core/hle/service/dlp/dlp_clnt.cpp @@ -13,26 +13,26 @@ namespace Service::DLP { DLP_CLNT::DLP_CLNT() : ServiceFramework("dlp:CLNT", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 3, 3), nullptr, "Initialize"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "Finalize"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "GetEventDesc"}, - {IPC::MakeHeader(0x0004, 0, 0), nullptr, "GetChannel"}, - {IPC::MakeHeader(0x0005, 6, 0), nullptr, "StartScan"}, - {IPC::MakeHeader(0x0006, 0, 0), nullptr, "StopScan"}, - {IPC::MakeHeader(0x0007, 2, 0), nullptr, "GetServerInfo"}, - {IPC::MakeHeader(0x0008, 4, 0), nullptr, "GetTitleInfo"}, - {IPC::MakeHeader(0x0009, 1, 0), nullptr, "GetTitleInfoInOrder"}, - {IPC::MakeHeader(0x000A, 2, 0), nullptr, "DeleteScanInfo"}, - {IPC::MakeHeader(0x000B, 4, 0), nullptr, "PrepareForSystemDownload"}, - {IPC::MakeHeader(0x000C, 0, 0), nullptr, "StartSystemDownload"}, - {IPC::MakeHeader(0x000D, 4, 0), nullptr, "StartTitleDownload"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "GetMyStatus"}, - {IPC::MakeHeader(0x000F, 1, 0), nullptr, "GetConnectingNodes"}, - {IPC::MakeHeader(0x0010, 1, 0), nullptr, "GetNodeInfo"}, - {IPC::MakeHeader(0x0011, 0, 0), nullptr, "GetWirelessRebootPassphrase"}, - {IPC::MakeHeader(0x0012, 0, 0), nullptr, "StopSession"}, - {IPC::MakeHeader(0x0013, 4, 0), nullptr, "GetCupVersion"}, - {IPC::MakeHeader(0x0014, 4, 0), nullptr, "GetDupAvailability"}, + {0x0001, nullptr, "Initialize"}, + {0x0002, nullptr, "Finalize"}, + {0x0003, nullptr, "GetEventDesc"}, + {0x0004, nullptr, "GetChannel"}, + {0x0005, nullptr, "StartScan"}, + {0x0006, nullptr, "StopScan"}, + {0x0007, nullptr, "GetServerInfo"}, + {0x0008, nullptr, "GetTitleInfo"}, + {0x0009, nullptr, "GetTitleInfoInOrder"}, + {0x000A, nullptr, "DeleteScanInfo"}, + {0x000B, nullptr, "PrepareForSystemDownload"}, + {0x000C, nullptr, "StartSystemDownload"}, + {0x000D, nullptr, "StartTitleDownload"}, + {0x000E, nullptr, "GetMyStatus"}, + {0x000F, nullptr, "GetConnectingNodes"}, + {0x0010, nullptr, "GetNodeInfo"}, + {0x0011, nullptr, "GetWirelessRebootPassphrase"}, + {0x0012, nullptr, "StopSession"}, + {0x0013, nullptr, "GetCupVersion"}, + {0x0014, nullptr, "GetDupAvailability"}, // clang-format on }; diff --git a/src/core/hle/service/dlp/dlp_fkcl.cpp b/src/core/hle/service/dlp/dlp_fkcl.cpp index a9d8db1f7..ed247427d 100644 --- a/src/core/hle/service/dlp/dlp_fkcl.cpp +++ b/src/core/hle/service/dlp/dlp_fkcl.cpp @@ -13,23 +13,23 @@ namespace Service::DLP { DLP_FKCL::DLP_FKCL() : ServiceFramework("dlp:FKCL", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 2, 3), nullptr, "Initialize"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "Finalize"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "GetEventDesc"}, - {IPC::MakeHeader(0x0004, 0, 0), nullptr, "GetChannels"}, - {IPC::MakeHeader(0x0005, 6, 0), nullptr, "StartScan"}, - {IPC::MakeHeader(0x0006, 0, 0), nullptr, "StopScan"}, - {IPC::MakeHeader(0x0007, 2, 0), nullptr, "GetServerInfo"}, - {IPC::MakeHeader(0x0008, 4, 0), nullptr, "GetTitleInfo"}, - {IPC::MakeHeader(0x0009, 1, 0), nullptr, "GetTitleInfoInOrder"}, - {IPC::MakeHeader(0x000A, 2, 0), nullptr, "DeleteScanInfo"}, - {IPC::MakeHeader(0x000B, 4, 0), nullptr, "StartFakeSession"}, - {IPC::MakeHeader(0x000C, 0, 0), nullptr, "GetMyStatus"}, - {IPC::MakeHeader(0x000D, 1, 0), nullptr, "GetConnectingNodes"}, - {IPC::MakeHeader(0x000E, 1, 0), nullptr, "GetNodeInfo"}, - {IPC::MakeHeader(0x000F, 0, 0), nullptr, "GetWirelessRebootPassphrase"}, - {IPC::MakeHeader(0x0010, 0, 0), nullptr, "StopSession"}, - {IPC::MakeHeader(0x0011, 8, 3), nullptr, "Initialize2"}, + {0x0001, nullptr, "Initialize"}, + {0x0002, nullptr, "Finalize"}, + {0x0003, nullptr, "GetEventDesc"}, + {0x0004, nullptr, "GetChannels"}, + {0x0005, nullptr, "StartScan"}, + {0x0006, nullptr, "StopScan"}, + {0x0007, nullptr, "GetServerInfo"}, + {0x0008, nullptr, "GetTitleInfo"}, + {0x0009, nullptr, "GetTitleInfoInOrder"}, + {0x000A, nullptr, "DeleteScanInfo"}, + {0x000B, nullptr, "StartFakeSession"}, + {0x000C, nullptr, "GetMyStatus"}, + {0x000D, nullptr, "GetConnectingNodes"}, + {0x000E, nullptr, "GetNodeInfo"}, + {0x000F, nullptr, "GetWirelessRebootPassphrase"}, + {0x0010, nullptr, "StopSession"}, + {0x0011, nullptr, "Initialize2"}, // clang-format on }; diff --git a/src/core/hle/service/dlp/dlp_srvr.cpp b/src/core/hle/service/dlp/dlp_srvr.cpp index 81c5753e6..d0a860fe9 100644 --- a/src/core/hle/service/dlp/dlp_srvr.cpp +++ b/src/core/hle/service/dlp/dlp_srvr.cpp @@ -14,7 +14,7 @@ SERIALIZE_EXPORT_IMPL(Service::DLP::DLP_SRVR) namespace Service::DLP { void DLP_SRVR::IsChild(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0E, 1, 0); + IPC::RequestParser rp(ctx); rp.Skip(1, false); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -27,22 +27,22 @@ void DLP_SRVR::IsChild(Kernel::HLERequestContext& ctx) { DLP_SRVR::DLP_SRVR() : ServiceFramework("dlp:SRVR", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 6, 3), nullptr, "Initialize"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "Finalize"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "GetServerState"}, - {IPC::MakeHeader(0x0004, 0, 0), nullptr, "GetEventDescription"}, - {IPC::MakeHeader(0x0005, 2, 0), nullptr, "StartAccepting"}, - {IPC::MakeHeader(0x0006, 0, 0), nullptr, "EndAccepting"}, - {IPC::MakeHeader(0x0007, 0, 0), nullptr, "StartDistribution"}, - {IPC::MakeHeader(0x0008, 3, 0), nullptr, "SendWirelessRebootPassphrase"}, - {IPC::MakeHeader(0x0009, 1, 0), nullptr, "AcceptClient"}, - {IPC::MakeHeader(0x000A, 1, 0), nullptr, "DisconnectClient"}, - {IPC::MakeHeader(0x000B, 1, 2), nullptr, "GetConnectingClients"}, - {IPC::MakeHeader(0x000C, 1, 0), nullptr, "GetClientInfo"}, - {IPC::MakeHeader(0x000D, 1, 0), nullptr, "GetClientState"}, - {IPC::MakeHeader(0x000E, 1, 0), &DLP_SRVR::IsChild, "IsChild"}, - {IPC::MakeHeader(0x000F, 12, 3), nullptr, "InitializeWithName"}, - {IPC::MakeHeader(0x0010, 0, 0), nullptr, "GetDupNoticeNeed"}, + {0x0001, nullptr, "Initialize"}, + {0x0002, nullptr, "Finalize"}, + {0x0003, nullptr, "GetServerState"}, + {0x0004, nullptr, "GetEventDescription"}, + {0x0005, nullptr, "StartAccepting"}, + {0x0006, nullptr, "EndAccepting"}, + {0x0007, nullptr, "StartDistribution"}, + {0x0008, nullptr, "SendWirelessRebootPassphrase"}, + {0x0009, nullptr, "AcceptClient"}, + {0x000A, nullptr, "DisconnectClient"}, + {0x000B, nullptr, "GetConnectingClients"}, + {0x000C, nullptr, "GetClientInfo"}, + {0x000D, nullptr, "GetClientState"}, + {0x000E, &DLP_SRVR::IsChild, "IsChild"}, + {0x000F, nullptr, "InitializeWithName"}, + {0x0010, nullptr, "GetDupNoticeNeed"}, // clang-format on }; diff --git a/src/core/hle/service/dsp/dsp_dsp.cpp b/src/core/hle/service/dsp/dsp_dsp.cpp index 1c98c8da0..a69f3533a 100644 --- a/src/core/hle/service/dsp/dsp_dsp.cpp +++ b/src/core/hle/service/dsp/dsp_dsp.cpp @@ -24,7 +24,7 @@ enum class DspPipe; namespace Service::DSP { void DSP_DSP::RecvData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 1, 0); + IPC::RequestParser rp(ctx); const u32 register_number = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -35,7 +35,7 @@ void DSP_DSP::RecvData(Kernel::HLERequestContext& ctx) { } void DSP_DSP::RecvDataIsReady(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 1, 0); + IPC::RequestParser rp(ctx); const u32 register_number = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -46,7 +46,7 @@ void DSP_DSP::RecvDataIsReady(Kernel::HLERequestContext& ctx) { } void DSP_DSP::SetSemaphore(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x07, 1, 0); + IPC::RequestParser rp(ctx); const u16 semaphore_value = rp.Pop(); system.DSP().SetSemaphore(semaphore_value); @@ -58,7 +58,7 @@ void DSP_DSP::SetSemaphore(Kernel::HLERequestContext& ctx) { } void DSP_DSP::ConvertProcessAddressFromDspDram(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0C, 1, 0); + IPC::RequestParser rp(ctx); const u32 address = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -72,7 +72,7 @@ void DSP_DSP::ConvertProcessAddressFromDspDram(Kernel::HLERequestContext& ctx) { } void DSP_DSP::WriteProcessPipe(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0D, 2, 2); + IPC::RequestParser rp(ctx); const u32 channel = rp.Pop(); const u32 size = rp.Pop(); auto buffer = rp.PopStaticBuffer(); @@ -110,7 +110,7 @@ void DSP_DSP::WriteProcessPipe(Kernel::HLERequestContext& ctx) { } void DSP_DSP::ReadPipe(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0E, 3, 0); + IPC::RequestParser rp(ctx); const u32 channel = rp.Pop(); const u32 peer = rp.Pop(); const u16 size = rp.Pop(); @@ -133,7 +133,7 @@ void DSP_DSP::ReadPipe(Kernel::HLERequestContext& ctx) { } void DSP_DSP::GetPipeReadableSize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0F, 2, 0); + IPC::RequestParser rp(ctx); const u32 channel = rp.Pop(); const u32 peer = rp.Pop(); @@ -149,7 +149,7 @@ void DSP_DSP::GetPipeReadableSize(Kernel::HLERequestContext& ctx) { } void DSP_DSP::ReadPipeIfPossible(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 3, 0); + IPC::RequestParser rp(ctx); const u32 channel = rp.Pop(); const u32 peer = rp.Pop(); const u16 size = rp.Pop(); @@ -172,7 +172,7 @@ void DSP_DSP::ReadPipeIfPossible(Kernel::HLERequestContext& ctx) { } void DSP_DSP::LoadComponent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 3, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const u32 prog_mask = rp.Pop(); const u32 data_mask = rp.Pop(); @@ -193,7 +193,7 @@ void DSP_DSP::LoadComponent(Kernel::HLERequestContext& ctx) { } void DSP_DSP::UnloadComponent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 0, 0); + IPC::RequestParser rp(ctx); system.DSP().UnloadComponent(); @@ -204,7 +204,7 @@ void DSP_DSP::UnloadComponent(Kernel::HLERequestContext& ctx) { } void DSP_DSP::FlushDataCache(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x13, 2, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] const VAddr address = rp.Pop(); [[maybe_unused]] const u32 size = rp.Pop(); const auto process = rp.PopObject(); @@ -217,7 +217,7 @@ void DSP_DSP::FlushDataCache(Kernel::HLERequestContext& ctx) { } void DSP_DSP::InvalidateDataCache(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 2, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] const VAddr address = rp.Pop(); [[maybe_unused]] const u32 size = rp.Pop(); const auto process = rp.PopObject(); @@ -230,7 +230,7 @@ void DSP_DSP::InvalidateDataCache(Kernel::HLERequestContext& ctx) { } void DSP_DSP::RegisterInterruptEvents(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x15, 2, 2); + IPC::RequestParser rp(ctx); const u32 interrupt = rp.Pop(); const u32 channel = rp.Pop(); auto event = rp.PopObject(); @@ -265,7 +265,7 @@ void DSP_DSP::RegisterInterruptEvents(Kernel::HLERequestContext& ctx) { } void DSP_DSP::GetSemaphoreEventHandle(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); rb.Push(RESULT_SUCCESS); @@ -275,7 +275,7 @@ void DSP_DSP::GetSemaphoreEventHandle(Kernel::HLERequestContext& ctx) { } void DSP_DSP::SetSemaphoreMask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 1, 0); + IPC::RequestParser rp(ctx); preset_semaphore = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -285,7 +285,7 @@ void DSP_DSP::SetSemaphoreMask(Kernel::HLERequestContext& ctx) { } void DSP_DSP::GetHeadphoneStatus(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1F, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -295,7 +295,7 @@ void DSP_DSP::GetHeadphoneStatus(Kernel::HLERequestContext& ctx) { } void DSP_DSP::ForceHeadphoneOut(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x20, 1, 0); + IPC::RequestParser rp(ctx); const u8 force = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -347,39 +347,39 @@ DSP_DSP::DSP_DSP(Core::System& system) : ServiceFramework("dsp::DSP", DefaultMaxSessions), system(system) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &DSP_DSP::RecvData, "RecvData"}, - {IPC::MakeHeader(0x0002, 1, 0), &DSP_DSP::RecvDataIsReady, "RecvDataIsReady"}, - {IPC::MakeHeader(0x0003, 2, 0), nullptr, "SendData"}, - {IPC::MakeHeader(0x0004, 1, 0), nullptr, "SendDataIsEmpty"}, - {IPC::MakeHeader(0x0005, 3, 2), nullptr, "SendFifoEx"}, - {IPC::MakeHeader(0x0006, 3, 0), nullptr, "RecvFifoEx"}, - {IPC::MakeHeader(0x0007, 1, 0), &DSP_DSP::SetSemaphore, "SetSemaphore"}, - {IPC::MakeHeader(0x0008, 0, 0), nullptr, "GetSemaphore"}, - {IPC::MakeHeader(0x0009, 1, 0), nullptr, "ClearSemaphore"}, - {IPC::MakeHeader(0x000A, 1, 0), nullptr, "MaskSemaphore"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "CheckSemaphoreRequest"}, - {IPC::MakeHeader(0x000C, 1, 0), &DSP_DSP::ConvertProcessAddressFromDspDram, "ConvertProcessAddressFromDspDram"}, - {IPC::MakeHeader(0x000D, 2, 2), &DSP_DSP::WriteProcessPipe, "WriteProcessPipe"}, - {IPC::MakeHeader(0x000E, 3, 0), &DSP_DSP::ReadPipe, "ReadPipe"}, - {IPC::MakeHeader(0x000F, 2, 0), &DSP_DSP::GetPipeReadableSize, "GetPipeReadableSize"}, - {IPC::MakeHeader(0x0010, 3, 0), &DSP_DSP::ReadPipeIfPossible, "ReadPipeIfPossible"}, - {IPC::MakeHeader(0x0011, 3, 2), &DSP_DSP::LoadComponent, "LoadComponent"}, - {IPC::MakeHeader(0x0012, 0, 0), &DSP_DSP::UnloadComponent, "UnloadComponent"}, - {IPC::MakeHeader(0x0013, 2, 2), &DSP_DSP::FlushDataCache, "FlushDataCache"}, - {IPC::MakeHeader(0x0014, 2, 2), &DSP_DSP::InvalidateDataCache, "InvalidateDCache"}, - {IPC::MakeHeader(0x0015, 2, 2), &DSP_DSP::RegisterInterruptEvents, "RegisterInterruptEvents"}, - {IPC::MakeHeader(0x0016, 0, 0), &DSP_DSP::GetSemaphoreEventHandle, "GetSemaphoreEventHandle"}, - {IPC::MakeHeader(0x0017, 1, 0), &DSP_DSP::SetSemaphoreMask, "SetSemaphoreMask"}, - {IPC::MakeHeader(0x0018, 1, 0), nullptr, "GetPhysicalAddress"}, - {IPC::MakeHeader(0x0019, 1, 0), nullptr, "GetVirtualAddress"}, - {IPC::MakeHeader(0x001A, 1, 2), nullptr, "SetIirFilterI2S1_cmd1"}, - {IPC::MakeHeader(0x001B, 1, 2), nullptr, "SetIirFilterI2S1_cmd2"}, - {IPC::MakeHeader(0x001C, 2, 2), nullptr, "SetIirFilterEQ"}, - {IPC::MakeHeader(0x001D, 3, 0), nullptr, "ReadMultiEx_SPI2"}, - {IPC::MakeHeader(0x001E, 3, 2), nullptr, "WriteMultiEx_SPI2"}, - {IPC::MakeHeader(0x001F, 0, 0), &DSP_DSP::GetHeadphoneStatus, "GetHeadphoneStatus"}, - {IPC::MakeHeader(0x0020, 1, 0), &DSP_DSP::ForceHeadphoneOut, "ForceHeadphoneOut"}, - {IPC::MakeHeader(0x0021, 0, 0), nullptr, "GetIsDspOccupied"}, + {0x0001, &DSP_DSP::RecvData, "RecvData"}, + {0x0002, &DSP_DSP::RecvDataIsReady, "RecvDataIsReady"}, + {0x0003, nullptr, "SendData"}, + {0x0004, nullptr, "SendDataIsEmpty"}, + {0x0005, nullptr, "SendFifoEx"}, + {0x0006, nullptr, "RecvFifoEx"}, + {0x0007, &DSP_DSP::SetSemaphore, "SetSemaphore"}, + {0x0008, nullptr, "GetSemaphore"}, + {0x0009, nullptr, "ClearSemaphore"}, + {0x000A, nullptr, "MaskSemaphore"}, + {0x000B, nullptr, "CheckSemaphoreRequest"}, + {0x000C, &DSP_DSP::ConvertProcessAddressFromDspDram, "ConvertProcessAddressFromDspDram"}, + {0x000D, &DSP_DSP::WriteProcessPipe, "WriteProcessPipe"}, + {0x000E, &DSP_DSP::ReadPipe, "ReadPipe"}, + {0x000F, &DSP_DSP::GetPipeReadableSize, "GetPipeReadableSize"}, + {0x0010, &DSP_DSP::ReadPipeIfPossible, "ReadPipeIfPossible"}, + {0x0011, &DSP_DSP::LoadComponent, "LoadComponent"}, + {0x0012, &DSP_DSP::UnloadComponent, "UnloadComponent"}, + {0x0013, &DSP_DSP::FlushDataCache, "FlushDataCache"}, + {0x0014, &DSP_DSP::InvalidateDataCache, "InvalidateDCache"}, + {0x0015, &DSP_DSP::RegisterInterruptEvents, "RegisterInterruptEvents"}, + {0x0016, &DSP_DSP::GetSemaphoreEventHandle, "GetSemaphoreEventHandle"}, + {0x0017, &DSP_DSP::SetSemaphoreMask, "SetSemaphoreMask"}, + {0x0018, nullptr, "GetPhysicalAddress"}, + {0x0019, nullptr, "GetVirtualAddress"}, + {0x001A, nullptr, "SetIirFilterI2S1_cmd1"}, + {0x001B, nullptr, "SetIirFilterI2S1_cmd2"}, + {0x001C, nullptr, "SetIirFilterEQ"}, + {0x001D, nullptr, "ReadMultiEx_SPI2"}, + {0x001E, nullptr, "WriteMultiEx_SPI2"}, + {0x001F, &DSP_DSP::GetHeadphoneStatus, "GetHeadphoneStatus"}, + {0x0020, &DSP_DSP::ForceHeadphoneOut, "ForceHeadphoneOut"}, + {0x0021, nullptr, "GetIsDspOccupied"}, // clang-format on }; diff --git a/src/core/hle/service/err_f.cpp b/src/core/hle/service/err_f.cpp index eb8e1a541..986ad8415 100644 --- a/src/core/hle/service/err_f.cpp +++ b/src/core/hle/service/err_f.cpp @@ -164,7 +164,7 @@ static void LogGenericInfo(const ErrInfo::ErrInfoCommon& errinfo_common) { } void ERR_F::ThrowFatalError(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 1, 32, 0); + IPC::RequestParser rp(ctx); LOG_CRITICAL(Service_ERR, "Fatal error"); const ErrInfo errinfo = rp.PopRaw(); @@ -250,8 +250,8 @@ void ERR_F::ThrowFatalError(Kernel::HLERequestContext& ctx) { ERR_F::ERR_F(Core::System& system) : ServiceFramework("err:f", 1), system(system) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 32, 0), &ERR_F::ThrowFatalError, "ThrowFatalError"}, - {IPC::MakeHeader(0x0002, 1, 2), nullptr, "SetUserString"}, + {0x0001, &ERR_F::ThrowFatalError, "ThrowFatalError"}, + {0x0002, nullptr, "SetUserString"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/frd/frd.cpp b/src/core/hle/service/frd/frd.cpp index 0784f9039..e3629a996 100644 --- a/src/core/hle/service/frd/frd.cpp +++ b/src/core/hle/service/frd/frd.cpp @@ -26,7 +26,7 @@ Module::Interface::Interface(std::shared_ptr frd, const char* name, u32 Module::Interface::~Interface() = default; void Module::Interface::GetMyPresence(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x08, 0, 0); + IPC::RequestParser rp(ctx); std::vector buffer(sizeof(MyPresence)); std::memcpy(buffer.data(), &frd->my_presence, buffer.size()); @@ -39,7 +39,7 @@ void Module::Interface::GetMyPresence(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetFriendKeyList(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 2, 0); + IPC::RequestParser rp(ctx); const u32 unknown = rp.Pop(); const u32 frd_count = rp.Pop(); @@ -54,7 +54,7 @@ void Module::Interface::GetFriendKeyList(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetFriendProfile(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x15, 1, 2); + IPC::RequestParser rp(ctx); const u32 count = rp.Pop(); const std::vector frd_keys = rp.PopStaticBuffer(); ASSERT(frd_keys.size() == count * sizeof(FriendKey)); @@ -69,7 +69,7 @@ void Module::Interface::GetFriendProfile(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetFriendAttributeFlags(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 1, 2); + IPC::RequestParser rp(ctx); const u32 count = rp.Pop(); const std::vector frd_keys = rp.PopStaticBuffer(); ASSERT(frd_keys.size() == count * sizeof(FriendKey)); @@ -84,7 +84,7 @@ void Module::Interface::GetFriendAttributeFlags(Kernel::HLERequestContext& ctx) } void Module::Interface::GetMyFriendKey(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x5, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(5, 0); rb.Push(RESULT_SUCCESS); rb.PushRaw(frd->my_friend_key); @@ -93,7 +93,7 @@ void Module::Interface::GetMyFriendKey(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetMyScreenName(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(7, 0); struct ScreenName { @@ -119,7 +119,7 @@ void Module::Interface::UnscrambleLocalFriendCode(Kernel::HLERequestContext& ctx const std::size_t scrambled_friend_code_size = 12; const std::size_t friend_code_size = 8; - IPC::RequestParser rp(ctx, 0x1C, 1, 2); + IPC::RequestParser rp(ctx); const u32 friend_code_count = rp.Pop(); const std::vector scrambled_friend_codes = rp.PopStaticBuffer(); ASSERT_MSG(scrambled_friend_codes.size() == (friend_code_count * scrambled_friend_code_size), @@ -147,7 +147,7 @@ void Module::Interface::UnscrambleLocalFriendCode(Kernel::HLERequestContext& ctx } void Module::Interface::SetClientSdkVersion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x32, 1, 2); + IPC::RequestParser rp(ctx); u32 version = rp.Pop(); rp.PopPID(); diff --git a/src/core/hle/service/frd/frd_a.cpp b/src/core/hle/service/frd/frd_a.cpp index 23a83a55e..4fcf04b94 100644 --- a/src/core/hle/service/frd/frd_a.cpp +++ b/src/core/hle/service/frd/frd_a.cpp @@ -11,59 +11,59 @@ namespace Service::FRD { FRD_A::FRD_A(std::shared_ptr frd) : Module::Interface(std::move(frd), "frd:a", 8) { static const FunctionInfo functions[] = { - {0x00010000, nullptr, "HasLoggedIn"}, - {0x00020000, nullptr, "IsOnline"}, - {0x00030000, nullptr, "Login"}, - {0x00040000, nullptr, "Logout"}, - {0x00050000, &FRD_A::GetMyFriendKey, "GetMyFriendKey"}, - {0x00060000, nullptr, "GetMyPreference"}, - {0x00070000, nullptr, "GetMyProfile"}, - {0x00080000, &FRD_A::GetMyPresence, "GetMyPresence"}, - {0x00090000, &FRD_A::GetMyScreenName, "GetMyScreenName"}, - {0x000A0000, nullptr, "GetMyMii"}, - {0x000B0000, nullptr, "GetMyLocalAccountId"}, - {0x000C0000, nullptr, "GetMyPlayingGame"}, - {0x000D0000, nullptr, "GetMyFavoriteGame"}, - {0x000E0000, nullptr, "GetMyNcPrincipalId"}, - {0x000F0000, nullptr, "GetMyComment"}, - {0x00100040, nullptr, "GetMyPassword"}, - {0x00110080, &FRD_A::GetFriendKeyList, "GetFriendKeyList"}, - {0x00120042, nullptr, "GetFriendPresence"}, - {0x00130142, nullptr, "GetFriendScreenName"}, - {0x00140044, nullptr, "GetFriendMii"}, - {0x00150042, &FRD_A::GetFriendProfile, "GetFriendProfile"}, - {0x00160042, nullptr, "GetFriendRelationship"}, - {0x00170042, &FRD_A::GetFriendAttributeFlags, "GetFriendAttributeFlags"}, - {0x00180044, nullptr, "GetFriendPlayingGame"}, - {0x00190042, nullptr, "GetFriendFavoriteGame"}, - {0x001A00C4, nullptr, "GetFriendInfo"}, - {0x001B0080, nullptr, "IsIncludedInFriendList"}, - {0x001C0042, &FRD_A::UnscrambleLocalFriendCode, "UnscrambleLocalFriendCode"}, - {0x001D0002, nullptr, "UpdateGameModeDescription"}, - {0x001E02C2, nullptr, "UpdateGameMode"}, - {0x001F0042, nullptr, "SendInvitation"}, - {0x00200002, nullptr, "AttachToEventNotification"}, - {0x00210040, nullptr, "SetNotificationMask"}, - {0x00220040, nullptr, "GetEventNotification"}, - {0x00230000, nullptr, "GetLastResponseResult"}, - {0x00240040, nullptr, "PrincipalIdToFriendCode"}, - {0x00250080, nullptr, "FriendCodeToPrincipalId"}, - {0x00260080, nullptr, "IsValidFriendCode"}, - {0x00270040, nullptr, "ResultToErrorCode"}, - {0x00280244, nullptr, "RequestGameAuthentication"}, - {0x00290000, nullptr, "GetGameAuthenticationData"}, - {0x002A0204, nullptr, "RequestServiceLocator"}, - {0x002B0000, nullptr, "GetServiceLocatorData"}, - {0x002C0002, nullptr, "DetectNatProperties"}, - {0x002D0000, nullptr, "GetNatProperties"}, - {0x002E0000, nullptr, "GetServerTimeInterval"}, - {0x002F0040, nullptr, "AllowHalfAwake"}, - {0x00300000, nullptr, "GetServerTypes"}, - {0x00310082, nullptr, "GetFriendComment"}, - {0x00320042, &FRD_A::SetClientSdkVersion, "SetClientSdkVersion"}, - {0x00330000, nullptr, "GetMyApproachContext"}, - {0x00340046, nullptr, "AddFriendWithApproach"}, - {0x00350082, nullptr, "DecryptApproachContext"}, + {0x0001, nullptr, "HasLoggedIn"}, + {0x0002, nullptr, "IsOnline"}, + {0x0003, nullptr, "Login"}, + {0x0004, nullptr, "Logout"}, + {0x0005, &FRD_A::GetMyFriendKey, "GetMyFriendKey"}, + {0x0006, nullptr, "GetMyPreference"}, + {0x0007, nullptr, "GetMyProfile"}, + {0x0008, &FRD_A::GetMyPresence, "GetMyPresence"}, + {0x0009, &FRD_A::GetMyScreenName, "GetMyScreenName"}, + {0x000A, nullptr, "GetMyMii"}, + {0x000B, nullptr, "GetMyLocalAccountId"}, + {0x000C, nullptr, "GetMyPlayingGame"}, + {0x000D, nullptr, "GetMyFavoriteGame"}, + {0x000E, nullptr, "GetMyNcPrincipalId"}, + {0x000F, nullptr, "GetMyComment"}, + {0x0010, nullptr, "GetMyPassword"}, + {0x0011, &FRD_A::GetFriendKeyList, "GetFriendKeyList"}, + {0x0012, nullptr, "GetFriendPresence"}, + {0x0013, nullptr, "GetFriendScreenName"}, + {0x0014, nullptr, "GetFriendMii"}, + {0x0015, &FRD_A::GetFriendProfile, "GetFriendProfile"}, + {0x0016, nullptr, "GetFriendRelationship"}, + {0x0017, &FRD_A::GetFriendAttributeFlags, "GetFriendAttributeFlags"}, + {0x0018, nullptr, "GetFriendPlayingGame"}, + {0x0019, nullptr, "GetFriendFavoriteGame"}, + {0x001A, nullptr, "GetFriendInfo"}, + {0x001B, nullptr, "IsIncludedInFriendList"}, + {0x001C, &FRD_A::UnscrambleLocalFriendCode, "UnscrambleLocalFriendCode"}, + {0x001D, nullptr, "UpdateGameModeDescription"}, + {0x001E, nullptr, "UpdateGameMode"}, + {0x001F, nullptr, "SendInvitation"}, + {0x0020, nullptr, "AttachToEventNotification"}, + {0x0021, nullptr, "SetNotificationMask"}, + {0x0022, nullptr, "GetEventNotification"}, + {0x0023, nullptr, "GetLastResponseResult"}, + {0x0024, nullptr, "PrincipalIdToFriendCode"}, + {0x0025, nullptr, "FriendCodeToPrincipalId"}, + {0x0026, nullptr, "IsValidFriendCode"}, + {0x0027, nullptr, "ResultToErrorCode"}, + {0x0028, nullptr, "RequestGameAuthentication"}, + {0x0029, nullptr, "GetGameAuthenticationData"}, + {0x002A, nullptr, "RequestServiceLocator"}, + {0x002B, nullptr, "GetServiceLocatorData"}, + {0x002C, nullptr, "DetectNatProperties"}, + {0x002D, nullptr, "GetNatProperties"}, + {0x002E, nullptr, "GetServerTimeInterval"}, + {0x002F, nullptr, "AllowHalfAwake"}, + {0x0030, nullptr, "GetServerTypes"}, + {0x0031, nullptr, "GetFriendComment"}, + {0x0032, &FRD_A::SetClientSdkVersion, "SetClientSdkVersion"}, + {0x0033, nullptr, "GetMyApproachContext"}, + {0x0034, nullptr, "AddFriendWithApproach"}, + {0x0035, nullptr, "DecryptApproachContext"}, }; RegisterHandlers(functions); } diff --git a/src/core/hle/service/frd/frd_u.cpp b/src/core/hle/service/frd/frd_u.cpp index d83c8ac8c..46e5f23c3 100644 --- a/src/core/hle/service/frd/frd_u.cpp +++ b/src/core/hle/service/frd/frd_u.cpp @@ -11,59 +11,59 @@ namespace Service::FRD { FRD_U::FRD_U(std::shared_ptr frd) : Module::Interface(std::move(frd), "frd:u", 8) { static const FunctionInfo functions[] = { - {0x00010000, nullptr, "HasLoggedIn"}, - {0x00020000, nullptr, "IsOnline"}, - {0x00030000, nullptr, "Login"}, - {0x00040000, nullptr, "Logout"}, - {0x00050000, &FRD_U::GetMyFriendKey, "GetMyFriendKey"}, - {0x00060000, nullptr, "GetMyPreference"}, - {0x00070000, nullptr, "GetMyProfile"}, - {0x00080000, &FRD_U::GetMyPresence, "GetMyPresence"}, - {0x00090000, &FRD_U::GetMyScreenName, "GetMyScreenName"}, - {0x000A0000, nullptr, "GetMyMii"}, - {0x000B0000, nullptr, "GetMyLocalAccountId"}, - {0x000C0000, nullptr, "GetMyPlayingGame"}, - {0x000D0000, nullptr, "GetMyFavoriteGame"}, - {0x000E0000, nullptr, "GetMyNcPrincipalId"}, - {0x000F0000, nullptr, "GetMyComment"}, - {0x00100040, nullptr, "GetMyPassword"}, - {0x00110080, &FRD_U::GetFriendKeyList, "GetFriendKeyList"}, - {0x00120042, nullptr, "GetFriendPresence"}, - {0x00130142, nullptr, "GetFriendScreenName"}, - {0x00140044, nullptr, "GetFriendMii"}, - {0x00150042, &FRD_U::GetFriendProfile, "GetFriendProfile"}, - {0x00160042, nullptr, "GetFriendRelationship"}, - {0x00170042, &FRD_U::GetFriendAttributeFlags, "GetFriendAttributeFlags"}, - {0x00180044, nullptr, "GetFriendPlayingGame"}, - {0x00190042, nullptr, "GetFriendFavoriteGame"}, - {0x001A00C4, nullptr, "GetFriendInfo"}, - {0x001B0080, nullptr, "IsIncludedInFriendList"}, - {0x001C0042, &FRD_U::UnscrambleLocalFriendCode, "UnscrambleLocalFriendCode"}, - {0x001D0002, nullptr, "UpdateGameModeDescription"}, - {0x001E02C2, nullptr, "UpdateGameMode"}, - {0x001F0042, nullptr, "SendInvitation"}, - {0x00200002, nullptr, "AttachToEventNotification"}, - {0x00210040, nullptr, "SetNotificationMask"}, - {0x00220040, nullptr, "GetEventNotification"}, - {0x00230000, nullptr, "GetLastResponseResult"}, - {0x00240040, nullptr, "PrincipalIdToFriendCode"}, - {0x00250080, nullptr, "FriendCodeToPrincipalId"}, - {0x00260080, nullptr, "IsValidFriendCode"}, - {0x00270040, nullptr, "ResultToErrorCode"}, - {0x00280244, nullptr, "RequestGameAuthentication"}, - {0x00290000, nullptr, "GetGameAuthenticationData"}, - {0x002A0204, nullptr, "RequestServiceLocator"}, - {0x002B0000, nullptr, "GetServiceLocatorData"}, - {0x002C0002, nullptr, "DetectNatProperties"}, - {0x002D0000, nullptr, "GetNatProperties"}, - {0x002E0000, nullptr, "GetServerTimeInterval"}, - {0x002F0040, nullptr, "AllowHalfAwake"}, - {0x00300000, nullptr, "GetServerTypes"}, - {0x00310082, nullptr, "GetFriendComment"}, - {0x00320042, &FRD_U::SetClientSdkVersion, "SetClientSdkVersion"}, - {0x00330000, nullptr, "GetMyApproachContext"}, - {0x00340046, nullptr, "AddFriendWithApproach"}, - {0x00350082, nullptr, "DecryptApproachContext"}, + {0x0001, nullptr, "HasLoggedIn"}, + {0x0002, nullptr, "IsOnline"}, + {0x0003, nullptr, "Login"}, + {0x0004, nullptr, "Logout"}, + {0x0005, &FRD_U::GetMyFriendKey, "GetMyFriendKey"}, + {0x0006, nullptr, "GetMyPreference"}, + {0x0007, nullptr, "GetMyProfile"}, + {0x0008, &FRD_U::GetMyPresence, "GetMyPresence"}, + {0x0009, &FRD_U::GetMyScreenName, "GetMyScreenName"}, + {0x000A, nullptr, "GetMyMii"}, + {0x000B, nullptr, "GetMyLocalAccountId"}, + {0x000C, nullptr, "GetMyPlayingGame"}, + {0x000D, nullptr, "GetMyFavoriteGame"}, + {0x000E, nullptr, "GetMyNcPrincipalId"}, + {0x000F, nullptr, "GetMyComment"}, + {0x0010, nullptr, "GetMyPassword"}, + {0x0011, &FRD_U::GetFriendKeyList, "GetFriendKeyList"}, + {0x0012, nullptr, "GetFriendPresence"}, + {0x0013, nullptr, "GetFriendScreenName"}, + {0x0014, nullptr, "GetFriendMii"}, + {0x0015, &FRD_U::GetFriendProfile, "GetFriendProfile"}, + {0x0016, nullptr, "GetFriendRelationship"}, + {0x0017, &FRD_U::GetFriendAttributeFlags, "GetFriendAttributeFlags"}, + {0x0018, nullptr, "GetFriendPlayingGame"}, + {0x0019, nullptr, "GetFriendFavoriteGame"}, + {0x001A, nullptr, "GetFriendInfo"}, + {0x001B, nullptr, "IsIncludedInFriendList"}, + {0x001C, &FRD_U::UnscrambleLocalFriendCode, "UnscrambleLocalFriendCode"}, + {0x001D, nullptr, "UpdateGameModeDescription"}, + {0x001E, nullptr, "UpdateGameMode"}, + {0x001F, nullptr, "SendInvitation"}, + {0x0020, nullptr, "AttachToEventNotification"}, + {0x0021, nullptr, "SetNotificationMask"}, + {0x0022, nullptr, "GetEventNotification"}, + {0x0023, nullptr, "GetLastResponseResult"}, + {0x0024, nullptr, "PrincipalIdToFriendCode"}, + {0x0025, nullptr, "FriendCodeToPrincipalId"}, + {0x0026, nullptr, "IsValidFriendCode"}, + {0x0027, nullptr, "ResultToErrorCode"}, + {0x0028, nullptr, "RequestGameAuthentication"}, + {0x0029, nullptr, "GetGameAuthenticationData"}, + {0x002A, nullptr, "RequestServiceLocator"}, + {0x002B, nullptr, "GetServiceLocatorData"}, + {0x002C, nullptr, "DetectNatProperties"}, + {0x002D, nullptr, "GetNatProperties"}, + {0x002E, nullptr, "GetServerTimeInterval"}, + {0x002F, nullptr, "AllowHalfAwake"}, + {0x0030, nullptr, "GetServerTypes"}, + {0x0031, nullptr, "GetFriendComment"}, + {0x0032, &FRD_U::SetClientSdkVersion, "SetClientSdkVersion"}, + {0x0033, nullptr, "GetMyApproachContext"}, + {0x0034, nullptr, "AddFriendWithApproach"}, + {0x0035, nullptr, "DecryptApproachContext"}, }; RegisterHandlers(functions); } diff --git a/src/core/hle/service/fs/directory.cpp b/src/core/hle/service/fs/directory.cpp index 655c5602e..d617c849a 100644 --- a/src/core/hle/service/fs/directory.cpp +++ b/src/core/hle/service/fs/directory.cpp @@ -31,8 +31,8 @@ Directory::Directory(std::unique_ptr&& backend, Directory::Directory() : ServiceFramework("", 1), path(""), backend(nullptr) { static const FunctionInfo functions[] = { // clang-format off - {0x08010042, &Directory::Read, "Read"}, - {0x08020000, &Directory::Close, "Close"}, + {0x0801, &Directory::Read, "Read"}, + {0x0802, &Directory::Close, "Close"}, // clang-format on }; RegisterHandlers(functions); @@ -41,7 +41,7 @@ Directory::Directory() : ServiceFramework("", 1), path(""), backend(nullptr) { Directory::~Directory() {} void Directory::Read(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0801, 1, 2); + IPC::RequestParser rp(ctx); u32 count = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); std::vector entries(count); @@ -57,7 +57,7 @@ void Directory::Read(Kernel::HLERequestContext& ctx) { } void Directory::Close(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0802, 0, 0); + IPC::RequestParser rp(ctx); LOG_TRACE(Service_FS, "Close {}", GetName()); backend->Close(); diff --git a/src/core/hle/service/fs/file.cpp b/src/core/hle/service/fs/file.cpp index 75d1bb50f..15f7705ae 100644 --- a/src/core/hle/service/fs/file.cpp +++ b/src/core/hle/service/fs/file.cpp @@ -39,22 +39,22 @@ File::File(Kernel::KernelSystem& kernel, std::unique_ptr&& File::File(Kernel::KernelSystem& kernel) : ServiceFramework("", 1), path(""), backend(nullptr), kernel(kernel) { static const FunctionInfo functions[] = { - {0x08010100, &File::OpenSubFile, "OpenSubFile"}, - {0x080200C2, &File::Read, "Read"}, - {0x08030102, &File::Write, "Write"}, - {0x08040000, &File::GetSize, "GetSize"}, - {0x08050080, &File::SetSize, "SetSize"}, - {0x08080000, &File::Close, "Close"}, - {0x08090000, &File::Flush, "Flush"}, - {0x080A0040, &File::SetPriority, "SetPriority"}, - {0x080B0000, &File::GetPriority, "GetPriority"}, - {0x080C0000, &File::OpenLinkFile, "OpenLinkFile"}, + {0x0801, &File::OpenSubFile, "OpenSubFile"}, + {0x0802, &File::Read, "Read"}, + {0x0803, &File::Write, "Write"}, + {0x0804, &File::GetSize, "GetSize"}, + {0x0805, &File::SetSize, "SetSize"}, + {0x0808, &File::Close, "Close"}, + {0x0809, &File::Flush, "Flush"}, + {0x080A, &File::SetPriority, "SetPriority"}, + {0x080B, &File::GetPriority, "GetPriority"}, + {0x080C, &File::OpenLinkFile, "OpenLinkFile"}, }; RegisterHandlers(functions); } void File::Read(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0802, 3, 2); + IPC::RequestParser rp(ctx); u64 offset = rp.Pop(); u32 length = rp.Pop(); auto& buffer = rp.PopMappedBuffer(); @@ -95,7 +95,7 @@ void File::Read(Kernel::HLERequestContext& ctx) { } void File::Write(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0803, 4, 2); + IPC::RequestParser rp(ctx); u64 offset = rp.Pop(); u32 length = rp.Pop(); u32 flush = rp.Pop(); @@ -133,7 +133,7 @@ void File::Write(Kernel::HLERequestContext& ctx) { } void File::GetSize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0804, 0, 0); + IPC::RequestParser rp(ctx); const FileSessionSlot* file = GetSessionData(ctx.Session()); @@ -143,7 +143,7 @@ void File::GetSize(Kernel::HLERequestContext& ctx) { } void File::SetSize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0805, 2, 0); + IPC::RequestParser rp(ctx); u64 size = rp.Pop(); FileSessionSlot* file = GetSessionData(ctx.Session()); @@ -162,7 +162,7 @@ void File::SetSize(Kernel::HLERequestContext& ctx) { } void File::Close(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0808, 0, 0); + IPC::RequestParser rp(ctx); // TODO(Subv): Only close the backend if this client is the only one left. if (connected_sessions.size() > 1) @@ -175,7 +175,7 @@ void File::Close(Kernel::HLERequestContext& ctx) { } void File::Flush(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0809, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -192,7 +192,7 @@ void File::Flush(Kernel::HLERequestContext& ctx) { } void File::SetPriority(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x080A, 1, 0); + IPC::RequestParser rp(ctx); FileSessionSlot* file = GetSessionData(ctx.Session()); file->priority = rp.Pop(); @@ -202,7 +202,7 @@ void File::SetPriority(Kernel::HLERequestContext& ctx) { } void File::GetPriority(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x080B, 0, 0); + IPC::RequestParser rp(ctx); const FileSessionSlot* file = GetSessionData(ctx.Session()); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -214,7 +214,7 @@ void File::OpenLinkFile(Kernel::HLERequestContext& ctx) { LOG_WARNING(Service_FS, "(STUBBED) File command OpenLinkFile {}", GetName()); using Kernel::ClientSession; using Kernel::ServerSession; - IPC::RequestParser rp(ctx, 0x080C, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); auto [server, client] = kernel.CreateSessionPair(GetName()); ClientConnected(server); @@ -232,7 +232,7 @@ void File::OpenLinkFile(Kernel::HLERequestContext& ctx) { } void File::OpenSubFile(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0801, 4, 0); + IPC::RequestParser rp(ctx); s64 offset = rp.PopRaw(); s64 size = rp.PopRaw(); diff --git a/src/core/hle/service/fs/fs_user.cpp b/src/core/hle/service/fs/fs_user.cpp index 54db4e5bd..f32a00df3 100644 --- a/src/core/hle/service/fs/fs_user.cpp +++ b/src/core/hle/service/fs/fs_user.cpp @@ -36,7 +36,7 @@ using Kernel::ServerSession; namespace Service::FS { void FS_USER::Initialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0801, 0, 2); + IPC::RequestParser rp(ctx); u32 pid = rp.PopPID(); ClientSlot* slot = GetSessionData(ctx.Session()); @@ -47,7 +47,7 @@ void FS_USER::Initialize(Kernel::HLERequestContext& ctx) { } void FS_USER::OpenFile(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0802, 7, 2); + IPC::RequestParser rp(ctx); rp.Skip(1, false); // Transaction. const auto archive_handle = rp.PopRaw(); @@ -77,7 +77,7 @@ void FS_USER::OpenFile(Kernel::HLERequestContext& ctx) { } void FS_USER::OpenFileDirectly(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x803, 8, 4); + IPC::RequestParser rp(ctx); rp.Skip(1, false); // Transaction const auto archive_id = rp.PopEnum(); @@ -129,7 +129,7 @@ void FS_USER::OpenFileDirectly(Kernel::HLERequestContext& ctx) { } void FS_USER::DeleteFile(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x804, 5, 2); + IPC::RequestParser rp(ctx); rp.Skip(1, false); // TransactionId const auto archive_handle = rp.PopRaw(); const auto filename_type = rp.PopEnum(); @@ -147,7 +147,7 @@ void FS_USER::DeleteFile(Kernel::HLERequestContext& ctx) { } void FS_USER::RenameFile(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x805, 9, 4); + IPC::RequestParser rp(ctx); rp.Skip(1, false); // TransactionId const auto src_archive_handle = rp.PopRaw(); @@ -175,7 +175,7 @@ void FS_USER::RenameFile(Kernel::HLERequestContext& ctx) { } void FS_USER::DeleteDirectory(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x806, 5, 2); + IPC::RequestParser rp(ctx); rp.Skip(1, false); // TransactionId const auto archive_handle = rp.PopRaw(); @@ -194,7 +194,7 @@ void FS_USER::DeleteDirectory(Kernel::HLERequestContext& ctx) { } void FS_USER::DeleteDirectoryRecursively(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x807, 5, 2); + IPC::RequestParser rp(ctx); rp.Skip(1, false); // TransactionId const auto archive_handle = rp.PopRaw(); @@ -213,7 +213,7 @@ void FS_USER::DeleteDirectoryRecursively(Kernel::HLERequestContext& ctx) { } void FS_USER::CreateFile(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x808, 8, 2); + IPC::RequestParser rp(ctx); rp.Skip(1, false); // TransactionId const auto archive_handle = rp.PopRaw(); @@ -234,7 +234,7 @@ void FS_USER::CreateFile(Kernel::HLERequestContext& ctx) { } void FS_USER::CreateDirectory(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x809, 6, 2); + IPC::RequestParser rp(ctx); rp.Skip(1, false); // TransactionId const auto archive_handle = rp.PopRaw(); const auto dirname_type = rp.PopEnum(); @@ -252,7 +252,7 @@ void FS_USER::CreateDirectory(Kernel::HLERequestContext& ctx) { } void FS_USER::RenameDirectory(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x80A, 9, 4); + IPC::RequestParser rp(ctx); rp.Skip(1, false); // TransactionId const auto src_archive_handle = rp.PopRaw(); const auto src_dirname_type = rp.PopEnum(); @@ -279,7 +279,7 @@ void FS_USER::RenameDirectory(Kernel::HLERequestContext& ctx) { } void FS_USER::OpenDirectory(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x80B, 4, 2); + IPC::RequestParser rp(ctx); const auto archive_handle = rp.PopRaw(); const auto dirname_type = rp.PopEnum(); const auto dirname_size = rp.Pop(); @@ -308,7 +308,7 @@ void FS_USER::OpenDirectory(Kernel::HLERequestContext& ctx) { } void FS_USER::OpenArchive(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x80C, 3, 2); + IPC::RequestParser rp(ctx); const auto archive_id = rp.PopEnum(); const auto archivename_type = rp.PopEnum(); const auto archivename_size = rp.Pop(); @@ -335,7 +335,7 @@ void FS_USER::OpenArchive(Kernel::HLERequestContext& ctx) { } void FS_USER::CloseArchive(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x80E, 2, 0); + IPC::RequestParser rp(ctx); const auto archive_handle = rp.PopRaw(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -343,14 +343,14 @@ void FS_USER::CloseArchive(Kernel::HLERequestContext& ctx) { } void FS_USER::IsSdmcDetected(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x817, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); rb.Push(Settings::values.use_virtual_sd.GetValue()); } void FS_USER::IsSdmcWriteable(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x818, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); // If the SD isn't enabled, it can't be writeable...else, stubbed true @@ -361,7 +361,7 @@ void FS_USER::IsSdmcWriteable(Kernel::HLERequestContext& ctx) { void FS_USER::FormatSaveData(Kernel::HLERequestContext& ctx) { LOG_WARNING(Service_FS, "(STUBBED)"); - IPC::RequestParser rp(ctx, 0x84C, 9, 2); + IPC::RequestParser rp(ctx); const auto archive_id = rp.PopEnum(); const auto archivename_type = rp.PopEnum(); const auto archivename_size = rp.Pop(); @@ -403,7 +403,7 @@ void FS_USER::FormatSaveData(Kernel::HLERequestContext& ctx) { } void FS_USER::FormatThisUserSaveData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x80F, 6, 0); + IPC::RequestParser rp(ctx); const auto block_size = rp.Pop(); const auto number_directories = rp.Pop(); const auto number_files = rp.Pop(); @@ -426,7 +426,7 @@ void FS_USER::FormatThisUserSaveData(Kernel::HLERequestContext& ctx) { } void FS_USER::GetFreeBytes(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x812, 2, 0); + IPC::RequestParser rp(ctx); const auto archive_handle = rp.PopRaw(); ResultVal bytes_res = archives.GetFreeBytesInArchive(archive_handle); @@ -440,7 +440,7 @@ void FS_USER::GetFreeBytes(Kernel::HLERequestContext& ctx) { } void FS_USER::GetSdmcArchiveResource(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x814, 0, 0); + IPC::RequestParser rp(ctx); LOG_WARNING(Service_FS, "(STUBBED) called"); @@ -458,7 +458,7 @@ void FS_USER::GetSdmcArchiveResource(Kernel::HLERequestContext& ctx) { } void FS_USER::GetNandArchiveResource(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x815, 0, 0); + IPC::RequestParser rp(ctx); LOG_WARNING(Service_FS, "(STUBBED) called"); @@ -476,7 +476,7 @@ void FS_USER::GetNandArchiveResource(Kernel::HLERequestContext& ctx) { void FS_USER::CreateExtSaveData(Kernel::HLERequestContext& ctx) { // TODO(Subv): Figure out the other parameters. - IPC::RequestParser rp(ctx, 0x0851, 9, 2); + IPC::RequestParser rp(ctx); MediaType media_type = static_cast(rp.Pop()); // the other bytes are unknown u32 save_low = rp.Pop(); u32 save_high = rp.Pop(); @@ -509,7 +509,7 @@ void FS_USER::CreateExtSaveData(Kernel::HLERequestContext& ctx) { } void FS_USER::DeleteExtSaveData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x852, 4, 0); + IPC::RequestParser rp(ctx); MediaType media_type = static_cast(rp.Pop()); // the other bytes are unknown u32 save_low = rp.Pop(); u32 save_high = rp.Pop(); @@ -524,7 +524,7 @@ void FS_USER::DeleteExtSaveData(Kernel::HLERequestContext& ctx) { } void FS_USER::CardSlotIsInserted(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x821, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); rb.Push(false); @@ -532,7 +532,7 @@ void FS_USER::CardSlotIsInserted(Kernel::HLERequestContext& ctx) { } void FS_USER::DeleteSystemSaveData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x857, 2, 0); + IPC::RequestParser rp(ctx); u32 savedata_high = rp.Pop(); u32 savedata_low = rp.Pop(); @@ -541,7 +541,7 @@ void FS_USER::DeleteSystemSaveData(Kernel::HLERequestContext& ctx) { } void FS_USER::CreateSystemSaveData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x856, 9, 0); + IPC::RequestParser rp(ctx); u32 savedata_high = rp.Pop(); u32 savedata_low = rp.Pop(); u32 total_size = rp.Pop(); @@ -564,7 +564,7 @@ void FS_USER::CreateSystemSaveData(Kernel::HLERequestContext& ctx) { } void FS_USER::CreateLegacySystemSaveData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x810, 8, 0); + IPC::RequestParser rp(ctx); u32 savedata_id = rp.Pop(); u32 total_size = rp.Pop(); u32 block_size = rp.Pop(); @@ -586,7 +586,7 @@ void FS_USER::CreateLegacySystemSaveData(Kernel::HLERequestContext& ctx) { } void FS_USER::InitializeWithSdkVersion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x861, 1, 2); + IPC::RequestParser rp(ctx); const u32 version = rp.Pop(); u32 pid = rp.PopPID(); @@ -600,7 +600,7 @@ void FS_USER::InitializeWithSdkVersion(Kernel::HLERequestContext& ctx) { } void FS_USER::SetPriority(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x862, 1, 0); + IPC::RequestParser rp(ctx); priority = rp.Pop(); @@ -611,7 +611,7 @@ void FS_USER::SetPriority(Kernel::HLERequestContext& ctx) { } void FS_USER::GetPriority(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x863, 0, 0); + IPC::RequestParser rp(ctx); if (priority == UINT32_MAX) { LOG_INFO(Service_FS, "priority was not set, priority=0x{:X}", priority); @@ -625,7 +625,7 @@ void FS_USER::GetPriority(Kernel::HLERequestContext& ctx) { } void FS_USER::GetArchiveResource(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x849, 1, 0); + IPC::RequestParser rp(ctx); auto media_type = rp.PopEnum(); LOG_WARNING(Service_FS, "(STUBBED) called Media type=0x{:08X}", media_type); @@ -643,7 +643,7 @@ void FS_USER::GetArchiveResource(Kernel::HLERequestContext& ctx) { } void FS_USER::GetFormatInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x845, 3, 2); + IPC::RequestParser rp(ctx); const auto archive_id = rp.PopEnum(); const auto archivename_type = rp.PopEnum(); const auto archivename_size = rp.Pop(); @@ -671,7 +671,7 @@ void FS_USER::GetFormatInfo(Kernel::HLERequestContext& ctx) { } void FS_USER::GetProgramLaunchInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x82F, 1, 0); + IPC::RequestParser rp(ctx); u32 process_id = rp.Pop(); @@ -699,7 +699,7 @@ void FS_USER::GetProgramLaunchInfo(Kernel::HLERequestContext& ctx) { } void FS_USER::ObsoletedCreateExtSaveData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x830, 6, 2); + IPC::RequestParser rp(ctx); MediaType media_type = static_cast(rp.Pop()); u32 save_low = rp.Pop(); u32 save_high = rp.Pop(); @@ -730,7 +730,7 @@ void FS_USER::ObsoletedCreateExtSaveData(Kernel::HLERequestContext& ctx) { } void FS_USER::ObsoletedDeleteExtSaveData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x835, 2, 0); + IPC::RequestParser rp(ctx); MediaType media_type = static_cast(rp.Pop()); u32 save_low = rp.Pop(); @@ -741,7 +741,7 @@ void FS_USER::ObsoletedDeleteExtSaveData(Kernel::HLERequestContext& ctx) { } void FS_USER::GetSpecialContentIndex(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x83A, 4, 0); + IPC::RequestParser rp(ctx); const MediaType media_type = static_cast(rp.Pop()); const u64 title_id = rp.Pop(); const auto type = rp.PopEnum(); @@ -767,13 +767,14 @@ void FS_USER::GetSpecialContentIndex(Kernel::HLERequestContext& ctx) { } void FS_USER::GetNumSeeds(Kernel::HLERequestContext& ctx) { - IPC::RequestBuilder rb{ctx, 0x87D, 2, 0}; + IPC::RequestParser rp(ctx); + IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); rb.Push(FileSys::GetSeedCount()); } void FS_USER::AddSeed(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x87A, 6, 0}; + IPC::RequestParser rp(ctx); u64 title_id{rp.Pop()}; FileSys::Seed::Data seed{rp.PopRaw()}; FileSys::AddSeed({title_id, seed, {}}); @@ -782,7 +783,7 @@ void FS_USER::AddSeed(Kernel::HLERequestContext& ctx) { } void FS_USER::SetSaveDataSecureValue(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x865, 5, 0); + IPC::RequestParser rp(ctx); u64 value = rp.Pop(); u32 secure_value_slot = rp.Pop(); u32 unique_id = rp.Pop(); @@ -801,7 +802,7 @@ void FS_USER::SetSaveDataSecureValue(Kernel::HLERequestContext& ctx) { } void FS_USER::GetSaveDataSecureValue(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x866, 3, 0); + IPC::RequestParser rp(ctx); u32 secure_value_slot = rp.Pop(); u32 unique_id = rp.Pop(); @@ -888,117 +889,117 @@ FS_USER::FS_USER(Core::System& system) : ServiceFramework("fs:USER", 30), system(system), archives(system.ArchiveManager()) { static const FunctionInfo functions[] = { // 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"}, + {0x0001, nullptr, "Dummy1"}, + {0x0401, nullptr, "Control"}, + {0x0801, &FS_USER::Initialize, "Initialize"}, + {0x0802, &FS_USER::OpenFile, "OpenFile"}, + {0x0803, &FS_USER::OpenFileDirectly, "OpenFileDirectly"}, + {0x0804, &FS_USER::DeleteFile, "DeleteFile"}, + {0x0805, &FS_USER::RenameFile, "RenameFile"}, + {0x0806, &FS_USER::DeleteDirectory, "DeleteDirectory"}, + {0x0807, &FS_USER::DeleteDirectoryRecursively, "DeleteDirectoryRecursively"}, + {0x0808, &FS_USER::CreateFile, "CreateFile"}, + {0x0809, &FS_USER::CreateDirectory, "CreateDirectory"}, + {0x080A, &FS_USER::RenameDirectory, "RenameDirectory"}, + {0x080B, &FS_USER::OpenDirectory, "OpenDirectory"}, + {0x080C, &FS_USER::OpenArchive, "OpenArchive"}, + {0x080D, nullptr, "ControlArchive"}, + {0x080E, &FS_USER::CloseArchive, "CloseArchive"}, + {0x080F, &FS_USER::FormatThisUserSaveData, "FormatThisUserSaveData"}, + {0x0810, &FS_USER::CreateLegacySystemSaveData, "CreateLegacySystemSaveData"}, + {0x0811, nullptr, "DeleteSystemSaveData"}, + {0x0812, &FS_USER::GetFreeBytes, "GetFreeBytes"}, + {0x0813, nullptr, "GetCardType"}, + {0x0814, &FS_USER::GetSdmcArchiveResource, "GetSdmcArchiveResource"}, + {0x0815, &FS_USER::GetNandArchiveResource, "GetNandArchiveResource"}, + {0x0816, nullptr, "GetSdmcFatfsError"}, + {0x0817, &FS_USER::IsSdmcDetected, "IsSdmcDetected"}, + {0x0818, &FS_USER::IsSdmcWriteable, "IsSdmcWritable"}, + {0x0819, nullptr, "GetSdmcCid"}, + {0x081A, nullptr, "GetNandCid"}, + {0x081B, nullptr, "GetSdmcSpeedInfo"}, + {0x081C, nullptr, "GetNandSpeedInfo"}, + {0x081D, nullptr, "GetSdmcLog"}, + {0x081E, nullptr, "GetNandLog"}, + {0x081F, nullptr, "ClearSdmcLog"}, + {0x0820, nullptr, "ClearNandLog"}, + {0x0821, &FS_USER::CardSlotIsInserted, "CardSlotIsInserted"}, + {0x0822, nullptr, "CardSlotPowerOn"}, + {0x0823, nullptr, "CardSlotPowerOff"}, + {0x0824, nullptr, "CardSlotGetCardIFPowerStatus"}, + {0x0825, nullptr, "CardNorDirectCommand"}, + {0x0826, nullptr, "CardNorDirectCommandWithAddress"}, + {0x0827, nullptr, "CardNorDirectRead"}, + {0x0828, nullptr, "CardNorDirectReadWithAddress"}, + {0x0829, nullptr, "CardNorDirectWrite"}, + {0x082A, nullptr, "CardNorDirectWriteWithAddress"}, + {0x082B, nullptr, "CardNorDirectRead_4xIO"}, + {0x082C, nullptr, "CardNorDirectCpuWriteWithoutVerify"}, + {0x082D, nullptr, "CardNorDirectSectorEraseWithoutVerify"}, + {0x082E, nullptr, "GetProductInfo"}, + {0x082F, &FS_USER::GetProgramLaunchInfo, "GetProgramLaunchInfo"}, + {0x0830, &FS_USER::ObsoletedCreateExtSaveData, "Obsoleted_3_0_CreateExtSaveData"}, + {0x0831, nullptr, "CreateSharedExtSaveData"}, + {0x0832, nullptr, "ReadExtSaveDataIcon"}, + {0x0833, nullptr, "EnumerateExtSaveData"}, + {0x0834, nullptr, "EnumerateSharedExtSaveData"}, + {0x0835, &FS_USER::ObsoletedDeleteExtSaveData, "Obsoleted_3_0_DeleteExtSaveData"}, + {0x0836, nullptr, "DeleteSharedExtSaveData"}, + {0x0837, nullptr, "SetCardSpiBaudRate"}, + {0x0838, nullptr, "SetCardSpiBusMode"}, + {0x0839, nullptr, "SendInitializeInfoTo9"}, + {0x083A, &FS_USER::GetSpecialContentIndex, "GetSpecialContentIndex"}, + {0x083B, nullptr, "GetLegacyRomHeader"}, + {0x083C, nullptr, "GetLegacyBannerData"}, + {0x083D, nullptr, "CheckAuthorityToAccessExtSaveData"}, + {0x083E, nullptr, "QueryTotalQuotaSize"}, + {0x083F, nullptr, "GetExtDataBlockSize"}, + {0x0840, nullptr, "AbnegateAccessRight"}, + {0x0841, nullptr, "DeleteSdmcRoot"}, + {0x0842, nullptr, "DeleteAllExtSaveDataOnNand"}, + {0x0843, nullptr, "InitializeCtrFileSystem"}, + {0x0844, nullptr, "CreateSeed"}, + {0x0845, &FS_USER::GetFormatInfo, "GetFormatInfo"}, + {0x0846, nullptr, "GetLegacyRomHeader2"}, + {0x0847, nullptr, "FormatCtrCardUserSaveData"}, + {0x0848, nullptr, "GetSdmcCtrRootPath"}, + {0x0849, &FS_USER::GetArchiveResource, "GetArchiveResource"}, + {0x084A, nullptr, "ExportIntegrityVerificationSeed"}, + {0x084B, nullptr, "ImportIntegrityVerificationSeed"}, + {0x084C, &FS_USER::FormatSaveData, "FormatSaveData"}, + {0x084D, nullptr, "GetLegacySubBannerData"}, + {0x084E, nullptr, "UpdateSha256Context"}, + {0x084F, nullptr, "ReadSpecialFile"}, + {0x0850, nullptr, "GetSpecialFileSize"}, + {0x0851, &FS_USER::CreateExtSaveData, "CreateExtSaveData"}, + {0x0852, &FS_USER::DeleteExtSaveData, "DeleteExtSaveData"}, + {0x0853, nullptr, "ReadExtSaveDataIcon"}, + {0x0854, nullptr, "GetExtDataBlockSize"}, + {0x0855, nullptr, "EnumerateExtSaveData"}, + {0x0856, &FS_USER::CreateSystemSaveData, "CreateSystemSaveData"}, + {0x0857, &FS_USER::DeleteSystemSaveData, "DeleteSystemSaveData"}, + {0x0858, nullptr, "StartDeviceMoveAsSource"}, + {0x0859, nullptr, "StartDeviceMoveAsDestination"}, + {0x085A, nullptr, "SetArchivePriority"}, + {0x085B, nullptr, "GetArchivePriority"}, + {0x085C, nullptr, "SetCtrCardLatencyParameter"}, + {0x085D, nullptr, "SetFsCompatibilityInfo"}, + {0x085E, nullptr, "ResetCardCompatibilityParameter"}, + {0x085F, nullptr, "SwitchCleanupInvalidSaveData"}, + {0x0860, nullptr, "EnumerateSystemSaveData"}, + {0x0861, &FS_USER::InitializeWithSdkVersion, "InitializeWithSdkVersion"}, + {0x0862, &FS_USER::SetPriority, "SetPriority"}, + {0x0863, &FS_USER::GetPriority, "GetPriority"}, + {0x0864, nullptr, "GetNandInfo"}, + {0x0865, &FS_USER::SetSaveDataSecureValue, "SetSaveDataSecureValue"}, + {0x0866, &FS_USER::GetSaveDataSecureValue, "GetSaveDataSecureValue"}, + {0x0867, nullptr, "ControlSecureSave"}, + {0x0868, nullptr, "GetMediaType"}, + {0x0869, nullptr, "GetNandEraseCount"}, + {0x086A, nullptr, "ReadNandReport"}, + {0x087A, &FS_USER::AddSeed, "AddSeed"}, + {0x087D, &FS_USER::GetNumSeeds, "GetNumSeeds"}, + {0x0886, nullptr, "CheckUpdatedDat"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/gsp/gsp_gpu.cpp b/src/core/hle/service/gsp/gsp_gpu.cpp index 7ef0fe355..f767fea70 100644 --- a/src/core/hle/service/gsp/gsp_gpu.cpp +++ b/src/core/hle/service/gsp/gsp_gpu.cpp @@ -231,7 +231,7 @@ static ResultCode WriteHWRegsWithMask(u32 base_address, u32 size_in_bytes, std:: } void GSP_GPU::WriteHWRegs(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1, 2, 2); + IPC::RequestParser rp(ctx); u32 reg_addr = rp.Pop(); u32 size = rp.Pop(); std::vector src_data = rp.PopStaticBuffer(); @@ -241,7 +241,7 @@ void GSP_GPU::WriteHWRegs(Kernel::HLERequestContext& ctx) { } void GSP_GPU::WriteHWRegsWithMask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2, 2, 4); + IPC::RequestParser rp(ctx); u32 reg_addr = rp.Pop(); u32 size = rp.Pop(); @@ -253,7 +253,7 @@ void GSP_GPU::WriteHWRegsWithMask(Kernel::HLERequestContext& ctx) { } void GSP_GPU::ReadHWRegs(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x4, 2, 0); + IPC::RequestParser rp(ctx); u32 reg_addr = rp.Pop(); u32 input_size = rp.Pop(); @@ -326,7 +326,7 @@ ResultCode SetBufferSwap(u32 screen_id, const FrameBufferInfo& info) { } void GSP_GPU::SetBufferSwap(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x5, 8, 0); + IPC::RequestParser rp(ctx); u32 screen_id = rp.Pop(); auto fb_info = rp.PopRaw(); @@ -335,7 +335,7 @@ void GSP_GPU::SetBufferSwap(Kernel::HLERequestContext& ctx) { } void GSP_GPU::FlushDataCache(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x8, 2, 2); + IPC::RequestParser rp(ctx); u32 address = rp.Pop(); u32 size = rp.Pop(); auto process = rp.PopObject(); @@ -350,7 +350,7 @@ void GSP_GPU::FlushDataCache(Kernel::HLERequestContext& ctx) { } void GSP_GPU::InvalidateDataCache(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 2, 2); + IPC::RequestParser rp(ctx); u32 address = rp.Pop(); u32 size = rp.Pop(); auto process = rp.PopObject(); @@ -365,7 +365,7 @@ void GSP_GPU::InvalidateDataCache(Kernel::HLERequestContext& ctx) { } void GSP_GPU::SetAxiConfigQoSMode(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 1, 0); + IPC::RequestParser rp(ctx); u32 mode = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -375,7 +375,7 @@ void GSP_GPU::SetAxiConfigQoSMode(Kernel::HLERequestContext& ctx) { } void GSP_GPU::RegisterInterruptRelayQueue(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x13, 1, 2); + IPC::RequestParser rp(ctx); u32 flags = rp.Pop(); auto interrupt_event = rp.PopObject(); @@ -405,7 +405,7 @@ void GSP_GPU::RegisterInterruptRelayQueue(Kernel::HLERequestContext& ctx) { } void GSP_GPU::UnregisterInterruptRelayQueue(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 0, 0); + IPC::RequestParser rp(ctx); SessionData* session_data = GetSessionData(ctx.Session()); session_data->interrupt_event = nullptr; @@ -622,7 +622,7 @@ static void ExecuteCommand(const Command& command, u32 thread_id) { } void GSP_GPU::SetLcdForceBlack(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xB, 1, 0); + IPC::RequestParser rp(ctx); bool enable_black = rp.Pop(); LCD::Regs::ColorFill data = {0}; @@ -639,7 +639,7 @@ void GSP_GPU::SetLcdForceBlack(Kernel::HLERequestContext& ctx) { } void GSP_GPU::TriggerCmdReqQueue(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xC, 0, 0); + IPC::RequestParser rp(ctx); // Iterate through each thread's command queue... for (unsigned thread_id = 0; thread_id < 0x4; ++thread_id) { @@ -662,7 +662,7 @@ void GSP_GPU::TriggerCmdReqQueue(Kernel::HLERequestContext& ctx) { } void GSP_GPU::ImportDisplayCaptureInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x18, 0, 0); + IPC::RequestParser rp(ctx); if (active_thread_id == UINT32_MAX) { LOG_WARNING(Service_GSP, "Called without an active thread."); @@ -705,7 +705,7 @@ void GSP_GPU::ImportDisplayCaptureInfo(Kernel::HLERequestContext& ctx) { } void GSP_GPU::SaveVramSysArea(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x19, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_GSP, "called"); @@ -721,7 +721,7 @@ void GSP_GPU::SaveVramSysArea(Kernel::HLERequestContext& ctx) { } void GSP_GPU::RestoreVramSysArea(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1A, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_GSP, "called"); @@ -738,7 +738,7 @@ void GSP_GPU::RestoreVramSysArea(Kernel::HLERequestContext& ctx) { } void GSP_GPU::AcquireRight(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 1, 2); + IPC::RequestParser rp(ctx); u32 flag = rp.Pop(); auto process = rp.PopObject(); @@ -771,7 +771,7 @@ void GSP_GPU::ReleaseRight(const SessionData* session_data) { } void GSP_GPU::ReleaseRight(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 0, 0); + IPC::RequestParser rp(ctx); const SessionData* session_data = GetSessionData(ctx.Session()); ReleaseRight(session_data); @@ -783,7 +783,7 @@ void GSP_GPU::ReleaseRight(Kernel::HLERequestContext& ctx) { } void GSP_GPU::StoreDataCache(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1F, 2, 2); + IPC::RequestParser rp(ctx); u32 address = rp.Pop(); u32 size = rp.Pop(); @@ -797,7 +797,7 @@ void GSP_GPU::StoreDataCache(Kernel::HLERequestContext& ctx) { } void GSP_GPU::SetLedForceOff(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1C, 1, 0); + IPC::RequestParser rp(ctx); u8 state = rp.Pop(); @@ -822,37 +822,37 @@ SessionData* GSP_GPU::FindRegisteredThreadData(u32 thread_id) { GSP_GPU::GSP_GPU(Core::System& system) : ServiceFramework("gsp::Gpu", 2), system(system) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 2, 2), &GSP_GPU::WriteHWRegs, "WriteHWRegs"}, - {IPC::MakeHeader(0x0002, 2, 4), &GSP_GPU::WriteHWRegsWithMask, "WriteHWRegsWithMask"}, - {IPC::MakeHeader(0x0003, 2, 2), nullptr, "WriteHWRegRepeat"}, - {IPC::MakeHeader(0x0004, 2, 0), &GSP_GPU::ReadHWRegs, "ReadHWRegs"}, - {IPC::MakeHeader(0x0005, 8, 0), &GSP_GPU::SetBufferSwap, "SetBufferSwap"}, - {IPC::MakeHeader(0x0006, 2, 2), nullptr, "SetCommandList"}, - {IPC::MakeHeader(0x0007, 3, 2), nullptr, "RequestDma"}, - {IPC::MakeHeader(0x0008, 2, 2), &GSP_GPU::FlushDataCache, "FlushDataCache"}, - {IPC::MakeHeader(0x0009, 2, 2), &GSP_GPU::InvalidateDataCache, "InvalidateDataCache"}, - {IPC::MakeHeader(0x000A, 1, 4), nullptr, "RegisterInterruptEvents"}, - {IPC::MakeHeader(0x000B, 1, 0), &GSP_GPU::SetLcdForceBlack, "SetLcdForceBlack"}, - {IPC::MakeHeader(0x000C, 0, 0), &GSP_GPU::TriggerCmdReqQueue, "TriggerCmdReqQueue"}, - {IPC::MakeHeader(0x000D, 5, 0), nullptr, "SetDisplayTransfer"}, - {IPC::MakeHeader(0x000E, 6, 0), nullptr, "SetTextureCopy"}, - {IPC::MakeHeader(0x000F, 8, 0), nullptr, "SetMemoryFill"}, - {IPC::MakeHeader(0x0010, 1, 0), &GSP_GPU::SetAxiConfigQoSMode, "SetAxiConfigQoSMode"}, - {IPC::MakeHeader(0x0011, 1, 0), nullptr, "SetPerfLogMode"}, - {IPC::MakeHeader(0x0012, 0, 0), nullptr, "GetPerfLog"}, - {IPC::MakeHeader(0x0013, 1, 2), &GSP_GPU::RegisterInterruptRelayQueue, "RegisterInterruptRelayQueue"}, - {IPC::MakeHeader(0x0014, 0, 0), &GSP_GPU::UnregisterInterruptRelayQueue, "UnregisterInterruptRelayQueue"}, - {IPC::MakeHeader(0x0015, 0, 2), nullptr, "TryAcquireRight"}, - {IPC::MakeHeader(0x0016, 1, 2), &GSP_GPU::AcquireRight, "AcquireRight"}, - {IPC::MakeHeader(0x0017, 0, 0), &GSP_GPU::ReleaseRight, "ReleaseRight"}, - {IPC::MakeHeader(0x0018, 0, 0), &GSP_GPU::ImportDisplayCaptureInfo, "ImportDisplayCaptureInfo"}, - {IPC::MakeHeader(0x0019, 0, 0), &GSP_GPU::SaveVramSysArea, "SaveVramSysArea"}, - {IPC::MakeHeader(0x001A, 0, 0), &GSP_GPU::RestoreVramSysArea, "RestoreVramSysArea"}, - {IPC::MakeHeader(0x001B, 0, 0), nullptr, "ResetGpuCore"}, - {IPC::MakeHeader(0x001C, 1, 0), &GSP_GPU::SetLedForceOff, "SetLedForceOff"}, - {IPC::MakeHeader(0x001D, 1, 0), nullptr, "SetTestCommand"}, - {IPC::MakeHeader(0x001E, 2, 0), nullptr, "SetInternalPriorities"}, - {IPC::MakeHeader(0x001F, 2, 2), &GSP_GPU::StoreDataCache, "StoreDataCache"}, + {0x0001, &GSP_GPU::WriteHWRegs, "WriteHWRegs"}, + {0x0002, &GSP_GPU::WriteHWRegsWithMask, "WriteHWRegsWithMask"}, + {0x0003, nullptr, "WriteHWRegRepeat"}, + {0x0004, &GSP_GPU::ReadHWRegs, "ReadHWRegs"}, + {0x0005, &GSP_GPU::SetBufferSwap, "SetBufferSwap"}, + {0x0006, nullptr, "SetCommandList"}, + {0x0007, nullptr, "RequestDma"}, + {0x0008, &GSP_GPU::FlushDataCache, "FlushDataCache"}, + {0x0009, &GSP_GPU::InvalidateDataCache, "InvalidateDataCache"}, + {0x000A, nullptr, "RegisterInterruptEvents"}, + {0x000B, &GSP_GPU::SetLcdForceBlack, "SetLcdForceBlack"}, + {0x000C, &GSP_GPU::TriggerCmdReqQueue, "TriggerCmdReqQueue"}, + {0x000D, nullptr, "SetDisplayTransfer"}, + {0x000E, nullptr, "SetTextureCopy"}, + {0x000F, nullptr, "SetMemoryFill"}, + {0x0010, &GSP_GPU::SetAxiConfigQoSMode, "SetAxiConfigQoSMode"}, + {0x0011, nullptr, "SetPerfLogMode"}, + {0x0012, nullptr, "GetPerfLog"}, + {0x0013, &GSP_GPU::RegisterInterruptRelayQueue, "RegisterInterruptRelayQueue"}, + {0x0014, &GSP_GPU::UnregisterInterruptRelayQueue, "UnregisterInterruptRelayQueue"}, + {0x0015, nullptr, "TryAcquireRight"}, + {0x0016, &GSP_GPU::AcquireRight, "AcquireRight"}, + {0x0017, &GSP_GPU::ReleaseRight, "ReleaseRight"}, + {0x0018, &GSP_GPU::ImportDisplayCaptureInfo, "ImportDisplayCaptureInfo"}, + {0x0019, &GSP_GPU::SaveVramSysArea, "SaveVramSysArea"}, + {0x001A, &GSP_GPU::RestoreVramSysArea, "RestoreVramSysArea"}, + {0x001B, nullptr, "ResetGpuCore"}, + {0x001C, &GSP_GPU::SetLedForceOff, "SetLedForceOff"}, + {0x001D, nullptr, "SetTestCommand"}, + {0x001E, nullptr, "SetInternalPriorities"}, + {0x001F, &GSP_GPU::StoreDataCache, "StoreDataCache"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/gsp/gsp_lcd.cpp b/src/core/hle/service/gsp/gsp_lcd.cpp index 66f0c27e2..4c155990b 100644 --- a/src/core/hle/service/gsp/gsp_lcd.cpp +++ b/src/core/hle/service/gsp/gsp_lcd.cpp @@ -13,15 +13,15 @@ namespace Service::GSP { GSP_LCD::GSP_LCD() : ServiceFramework("gsp::Lcd") { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x000A, 2, 0), nullptr, "SetBrightnessRaw"}, - {IPC::MakeHeader(0x000B, 2, 0), nullptr, "SetBrightness"}, - {IPC::MakeHeader(0x000F, 0, 0), nullptr, "PowerOnAllBacklights"}, - {IPC::MakeHeader(0x0010, 0, 0), nullptr, "PowerOffAllBacklights"}, - {IPC::MakeHeader(0x0011, 1, 0), nullptr, "PowerOnBacklight"}, - {IPC::MakeHeader(0x0012, 1, 0), nullptr, "PowerOffBacklight"}, - {IPC::MakeHeader(0x0013, 1, 0), nullptr, "SetLedForceOff"}, - {IPC::MakeHeader(0x0014, 0, 0), nullptr, "GetVendor"}, - {IPC::MakeHeader(0x0015, 1, 0), nullptr, "GetBrightness"}, + {0x000A, nullptr, "SetBrightnessRaw"}, + {0x000B, nullptr, "SetBrightness"}, + {0x000F, nullptr, "PowerOnAllBacklights"}, + {0x0010, nullptr, "PowerOffAllBacklights"}, + {0x0011, nullptr, "PowerOnBacklight"}, + {0x0012, nullptr, "PowerOffBacklight"}, + {0x0013, nullptr, "SetLedForceOff"}, + {0x0014, nullptr, "GetVendor"}, + {0x0015, nullptr, "GetBrightness"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index 3fb9d22af..2b81f47fb 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp @@ -307,7 +307,7 @@ void Module::UpdateGyroscopeCallback(std::uintptr_t user_data, s64 cycles_late) } void Module::Interface::GetIPCHandles(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0xA, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 7); rb.Push(RESULT_SUCCESS); rb.PushCopyObjects(hid->shared_mem, hid->event_pad_or_touch_1, hid->event_pad_or_touch_2, @@ -315,7 +315,7 @@ void Module::Interface::GetIPCHandles(Kernel::HLERequestContext& ctx) { } void Module::Interface::EnableAccelerometer(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x11, 0, 0}; + IPC::RequestParser rp(ctx); ++hid->enable_accelerometer_count; @@ -332,7 +332,7 @@ void Module::Interface::EnableAccelerometer(Kernel::HLERequestContext& ctx) { } void Module::Interface::DisableAccelerometer(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x12, 0, 0}; + IPC::RequestParser rp(ctx); --hid->enable_accelerometer_count; @@ -348,7 +348,7 @@ void Module::Interface::DisableAccelerometer(Kernel::HLERequestContext& ctx) { } void Module::Interface::EnableGyroscopeLow(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x13, 0, 0}; + IPC::RequestParser rp(ctx); ++hid->enable_gyroscope_count; @@ -364,7 +364,7 @@ void Module::Interface::EnableGyroscopeLow(Kernel::HLERequestContext& ctx) { } void Module::Interface::DisableGyroscopeLow(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x14, 0, 0}; + IPC::RequestParser rp(ctx); --hid->enable_gyroscope_count; @@ -380,7 +380,7 @@ void Module::Interface::DisableGyroscopeLow(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetGyroscopeLowRawToDpsCoefficient(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x15, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -388,7 +388,7 @@ void Module::Interface::GetGyroscopeLowRawToDpsCoefficient(Kernel::HLERequestCon } void Module::Interface::GetGyroscopeLowCalibrateParam(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x16, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(6, 0); rb.Push(RESULT_SUCCESS); @@ -405,7 +405,7 @@ void Module::Interface::GetGyroscopeLowCalibrateParam(Kernel::HLERequestContext& } void Module::Interface::GetSoundVolume(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x17, 0, 0}; + IPC::RequestParser rp(ctx); const u8 volume = static_cast(0x3F * Settings::values.volume.GetValue()); diff --git a/src/core/hle/service/hid/hid_spvr.cpp b/src/core/hle/service/hid/hid_spvr.cpp index 93682a9ad..a82c9795b 100644 --- a/src/core/hle/service/hid/hid_spvr.cpp +++ b/src/core/hle/service/hid/hid_spvr.cpp @@ -12,18 +12,18 @@ namespace Service::HID { Spvr::Spvr(std::shared_ptr hid) : Module::Interface(std::move(hid), "hid:SPVR", 6) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 8, 0), nullptr, "CalibrateTouchScreen"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "UpdateTouchConfig"}, - {IPC::MakeHeader(0x000A, 0, 0), &Spvr::GetIPCHandles, "GetIPCHandles"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "StartAnalogStickCalibration"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "GetAnalogStickCalibrateParam"}, - {IPC::MakeHeader(0x0011, 0, 0), &Spvr::EnableAccelerometer, "EnableAccelerometer"}, - {IPC::MakeHeader(0x0012, 0, 0), &Spvr::DisableAccelerometer, "DisableAccelerometer"}, - {IPC::MakeHeader(0x0013, 0, 0), &Spvr::EnableGyroscopeLow, "EnableGyroscopeLow"}, - {IPC::MakeHeader(0x0014, 0, 0), &Spvr::DisableGyroscopeLow, "DisableGyroscopeLow"}, - {IPC::MakeHeader(0x0015, 0, 0), &Spvr::GetGyroscopeLowRawToDpsCoefficient, "GetGyroscopeLowRawToDpsCoefficient"}, - {IPC::MakeHeader(0x0016, 0, 0), &Spvr::GetGyroscopeLowCalibrateParam, "GetGyroscopeLowCalibrateParam"}, - {IPC::MakeHeader(0x0017, 0, 0), &Spvr::GetSoundVolume, "GetSoundVolume"}, + {0x0001, nullptr, "CalibrateTouchScreen"}, + {0x0002, nullptr, "UpdateTouchConfig"}, + {0x000A, &Spvr::GetIPCHandles, "GetIPCHandles"}, + {0x000B, nullptr, "StartAnalogStickCalibration"}, + {0x000E, nullptr, "GetAnalogStickCalibrateParam"}, + {0x0011, &Spvr::EnableAccelerometer, "EnableAccelerometer"}, + {0x0012, &Spvr::DisableAccelerometer, "DisableAccelerometer"}, + {0x0013, &Spvr::EnableGyroscopeLow, "EnableGyroscopeLow"}, + {0x0014, &Spvr::DisableGyroscopeLow, "DisableGyroscopeLow"}, + {0x0015, &Spvr::GetGyroscopeLowRawToDpsCoefficient, "GetGyroscopeLowRawToDpsCoefficient"}, + {0x0016, &Spvr::GetGyroscopeLowCalibrateParam, "GetGyroscopeLowCalibrateParam"}, + {0x0017, &Spvr::GetSoundVolume, "GetSoundVolume"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/hid/hid_user.cpp b/src/core/hle/service/hid/hid_user.cpp index e1b7e9578..c5b17f180 100644 --- a/src/core/hle/service/hid/hid_user.cpp +++ b/src/core/hle/service/hid/hid_user.cpp @@ -12,18 +12,18 @@ namespace Service::HID { User::User(std::shared_ptr hid) : Module::Interface(std::move(hid), "hid:USER", 6) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 8, 0), nullptr, "CalibrateTouchScreen"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "UpdateTouchConfig"}, - {IPC::MakeHeader(0x000A, 0, 0), &User::GetIPCHandles, "GetIPCHandles"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "StartAnalogStickCalibration"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "GetAnalogStickCalibrateParam"}, - {IPC::MakeHeader(0x0011, 0, 0), &User::EnableAccelerometer, "EnableAccelerometer"}, - {IPC::MakeHeader(0x0012, 0, 0), &User::DisableAccelerometer, "DisableAccelerometer"}, - {IPC::MakeHeader(0x0013, 0, 0), &User::EnableGyroscopeLow, "EnableGyroscopeLow"}, - {IPC::MakeHeader(0x0014, 0, 0), &User::DisableGyroscopeLow, "DisableGyroscopeLow"}, - {IPC::MakeHeader(0x0015, 0, 0), &User::GetGyroscopeLowRawToDpsCoefficient, "GetGyroscopeLowRawToDpsCoefficient"}, - {IPC::MakeHeader(0x0016, 0, 0), &User::GetGyroscopeLowCalibrateParam, "GetGyroscopeLowCalibrateParam"}, - {IPC::MakeHeader(0x0017, 0, 0), &User::GetSoundVolume, "GetSoundVolume"}, + {0x0001, nullptr, "CalibrateTouchScreen"}, + {0x0002, nullptr, "UpdateTouchConfig"}, + {0x000A, &User::GetIPCHandles, "GetIPCHandles"}, + {0x000B, nullptr, "StartAnalogStickCalibration"}, + {0x000E, nullptr, "GetAnalogStickCalibrateParam"}, + {0x0011, &User::EnableAccelerometer, "EnableAccelerometer"}, + {0x0012, &User::DisableAccelerometer, "DisableAccelerometer"}, + {0x0013, &User::EnableGyroscopeLow, "EnableGyroscopeLow"}, + {0x0014, &User::DisableGyroscopeLow, "DisableGyroscopeLow"}, + {0x0015, &User::GetGyroscopeLowRawToDpsCoefficient, "GetGyroscopeLowRawToDpsCoefficient"}, + {0x0016, &User::GetGyroscopeLowCalibrateParam, "GetGyroscopeLowCalibrateParam"}, + {0x0017, &User::GetSoundVolume, "GetSoundVolume"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/http_c.cpp b/src/core/hle/service/http_c.cpp index c9a439220..094f908ba 100644 --- a/src/core/hle/service/http_c.cpp +++ b/src/core/hle/service/http_c.cpp @@ -115,7 +115,7 @@ void Context::MakeRequest() { } void HTTP_C::Initialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1, 1, 4); + IPC::RequestParser rp(ctx); const u32 shmem_size = rp.Pop(); u32 pid = rp.PopPID(); shared_memory = rp.PopObject(); @@ -145,7 +145,7 @@ void HTTP_C::Initialize(Kernel::HLERequestContext& ctx) { } void HTTP_C::InitializeConnectionSession(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x8, 1, 2); + IPC::RequestParser rp(ctx); const Context::Handle context_handle = rp.Pop(); u32 pid = rp.PopPID(); @@ -180,7 +180,7 @@ void HTTP_C::InitializeConnectionSession(Kernel::HLERequestContext& ctx) { } void HTTP_C::BeginRequest(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 1, 0); + IPC::RequestParser rp(ctx); const Context::Handle context_handle = rp.Pop(); LOG_WARNING(Service_HTTP, "(STUBBED) called, context_id={}", context_handle); @@ -233,7 +233,7 @@ void HTTP_C::BeginRequest(Kernel::HLERequestContext& ctx) { } void HTTP_C::BeginRequestAsync(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xA, 1, 0); + IPC::RequestParser rp(ctx); const Context::Handle context_handle = rp.Pop(); LOG_WARNING(Service_HTTP, "(STUBBED) called, context_id={}", context_handle); @@ -286,7 +286,7 @@ void HTTP_C::BeginRequestAsync(Kernel::HLERequestContext& ctx) { } void HTTP_C::CreateContext(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2, 2, 2); + IPC::RequestParser rp(ctx); const u32 url_size = rp.Pop(); RequestMethod method = rp.PopEnum(); Kernel::MappedBuffer& buffer = rp.PopMappedBuffer(); @@ -359,7 +359,7 @@ void HTTP_C::CreateContext(Kernel::HLERequestContext& ctx) { } void HTTP_C::CloseContext(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x3, 1, 0); + IPC::RequestParser rp(ctx); u32 context_handle = rp.Pop(); @@ -399,7 +399,7 @@ void HTTP_C::CloseContext(Kernel::HLERequestContext& ctx) { } void HTTP_C::AddRequestHeader(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 3, 4); + IPC::RequestParser rp(ctx); const u32 context_handle = rp.Pop(); [[maybe_unused]] const u32 name_size = rp.Pop(); const u32 value_size = rp.Pop(); @@ -475,7 +475,7 @@ void HTTP_C::AddRequestHeader(Kernel::HLERequestContext& ctx) { } void HTTP_C::AddPostDataAscii(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 3, 4); + IPC::RequestParser rp(ctx); const u32 context_handle = rp.Pop(); [[maybe_unused]] const u32 name_size = rp.Pop(); const u32 value_size = rp.Pop(); @@ -550,7 +550,7 @@ void HTTP_C::AddPostDataAscii(Kernel::HLERequestContext& ctx) { } void HTTP_C::SetClientCertContext(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x29, 2, 0); + IPC::RequestParser rp(ctx); const u32 context_handle = rp.Pop(); const u32 client_cert_handle = rp.Pop(); @@ -620,7 +620,7 @@ void HTTP_C::SetClientCertContext(Kernel::HLERequestContext& ctx) { } void HTTP_C::GetSSLError(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2a, 2, 0); + IPC::RequestParser rp(ctx); const u32 context_handle = rp.Pop(); const u32 unk = rp.Pop(); @@ -637,7 +637,7 @@ void HTTP_C::GetSSLError(Kernel::HLERequestContext& ctx) { } void HTTP_C::OpenClientCertContext(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x32, 2, 4); + IPC::RequestParser rp(ctx); u32 cert_size = rp.Pop(); u32 key_size = rp.Pop(); Kernel::MappedBuffer& cert_buffer = rp.PopMappedBuffer(); @@ -678,7 +678,7 @@ void HTTP_C::OpenClientCertContext(Kernel::HLERequestContext& ctx) { } void HTTP_C::OpenDefaultClientCertContext(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x33, 1, 0); + IPC::RequestParser rp(ctx); u8 cert_id = rp.Pop(); LOG_DEBUG(Service_HTTP, "called, cert_id={} cert_handle={}", cert_id, client_certs_counter); @@ -750,7 +750,7 @@ void HTTP_C::OpenDefaultClientCertContext(Kernel::HLERequestContext& ctx) { } void HTTP_C::CloseClientCertContext(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x34, 1, 0); + IPC::RequestParser rp(ctx); ClientCertContext::Handle cert_handle = rp.Pop(); LOG_DEBUG(Service_HTTP, "called, cert_handle={}", cert_handle); @@ -782,7 +782,7 @@ void HTTP_C::CloseClientCertContext(Kernel::HLERequestContext& ctx) { } void HTTP_C::Finalize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x39, 0, 0); + IPC::RequestParser rp(ctx); shared_memory = nullptr; @@ -870,62 +870,62 @@ void HTTP_C::DecryptClCertA() { HTTP_C::HTTP_C() : ServiceFramework("http:C", 32) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 4), &HTTP_C::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0002, 2, 2), &HTTP_C::CreateContext, "CreateContext"}, - {IPC::MakeHeader(0x0003, 1, 0), &HTTP_C::CloseContext, "CloseContext"}, - {IPC::MakeHeader(0x0004, 1, 0), nullptr, "CancelConnection"}, - {IPC::MakeHeader(0x0005, 1, 0), nullptr, "GetRequestState"}, - {IPC::MakeHeader(0x0006, 1, 0), nullptr, "GetDownloadSizeState"}, - {IPC::MakeHeader(0x0007, 1, 0), nullptr, "GetRequestError"}, - {IPC::MakeHeader(0x0008, 1, 2), &HTTP_C::InitializeConnectionSession, "InitializeConnectionSession"}, - {IPC::MakeHeader(0x0009, 1, 0), &HTTP_C::BeginRequest, "BeginRequest"}, - {IPC::MakeHeader(0x000A, 1, 0), &HTTP_C::BeginRequestAsync, "BeginRequestAsync"}, - {IPC::MakeHeader(0x000B, 2, 2), nullptr, "ReceiveData"}, - {IPC::MakeHeader(0x000C, 4, 2), nullptr, "ReceiveDataTimeout"}, - {IPC::MakeHeader(0x000D, 5, 6), nullptr, "SetProxy"}, - {IPC::MakeHeader(0x000E, 1, 0), nullptr, "SetProxyDefault"}, - {IPC::MakeHeader(0x000F, 3, 4), nullptr, "SetBasicAuthorization"}, - {IPC::MakeHeader(0x0010, 2, 0), nullptr, "SetSocketBufferSize"}, - {IPC::MakeHeader(0x0011, 3, 4), &HTTP_C::AddRequestHeader, "AddRequestHeader"}, - {IPC::MakeHeader(0x0012, 3, 4), &HTTP_C::AddPostDataAscii, "AddPostDataAscii"}, - {IPC::MakeHeader(0x0013, 3, 4), nullptr, "AddPostDataBinary"}, - {IPC::MakeHeader(0x0014, 2, 2), nullptr, "AddPostDataRaw"}, - {IPC::MakeHeader(0x0015, 2, 0), nullptr, "SetPostDataType"}, - {IPC::MakeHeader(0x0016, 3, 4), nullptr, "SendPostDataAscii"}, - {IPC::MakeHeader(0x0017, 5, 4), nullptr, "SendPostDataAsciiTimeout"}, - {IPC::MakeHeader(0x0018, 3, 4), nullptr, "SendPostDataBinary"}, - {IPC::MakeHeader(0x0019, 5, 4), nullptr, "SendPostDataBinaryTimeout"}, - {IPC::MakeHeader(0x001A, 2, 2), nullptr, "SendPostDataRaw"}, - {IPC::MakeHeader(0x001B, 4, 2), nullptr, "SendPOSTDataRawTimeout"}, - {IPC::MakeHeader(0x001C, 2, 0), nullptr, "SetPostDataEncoding"}, - {IPC::MakeHeader(0x001D, 1, 0), nullptr, "NotifyFinishSendPostData"}, - {IPC::MakeHeader(0x001E, 3, 4), nullptr, "GetResponseHeader"}, - {IPC::MakeHeader(0x001F, 5, 4), nullptr, "GetResponseHeaderTimeout"}, - {IPC::MakeHeader(0x0020, 2, 2), nullptr, "GetResponseData"}, - {IPC::MakeHeader(0x0021, 4, 2), nullptr, "GetResponseDataTimeout"}, - {IPC::MakeHeader(0x0022, 1, 0), nullptr, "GetResponseStatusCode"}, - {IPC::MakeHeader(0x0023, 3, 0), nullptr, "GetResponseStatusCodeTimeout"}, - {IPC::MakeHeader(0x0024, 2, 2), nullptr, "AddTrustedRootCA"}, - {IPC::MakeHeader(0x0025, 2, 0), nullptr, "AddDefaultCert"}, - {IPC::MakeHeader(0x0026, 2, 0), nullptr, "SelectRootCertChain"}, - {IPC::MakeHeader(0x0027, 3, 4), nullptr, "SetClientCert"}, - {IPC::MakeHeader(0x0029, 2, 0), &HTTP_C::SetClientCertContext, "SetClientCertContext"}, - {IPC::MakeHeader(0x002A, 1, 0), &HTTP_C::GetSSLError, "GetSSLError"}, - {IPC::MakeHeader(0x002B, 2, 0), nullptr, "SetSSLOpt"}, - {IPC::MakeHeader(0x002C, 2, 0), nullptr, "SetSSLClearOpt"}, - {IPC::MakeHeader(0x002D, 0, 0), nullptr, "CreateRootCertChain"}, - {IPC::MakeHeader(0x002E, 1, 0), nullptr, "DestroyRootCertChain"}, - {IPC::MakeHeader(0x002F, 2, 2), nullptr, "RootCertChainAddCert"}, - {IPC::MakeHeader(0x0030, 2, 0), nullptr, "RootCertChainAddDefaultCert"}, - {IPC::MakeHeader(0x0031, 2, 0), nullptr, "RootCertChainRemoveCert"}, - {IPC::MakeHeader(0x0032, 2, 4), &HTTP_C::OpenClientCertContext, "OpenClientCertContext"}, - {IPC::MakeHeader(0x0033, 1, 0), &HTTP_C::OpenDefaultClientCertContext, "OpenDefaultClientCertContext"}, - {IPC::MakeHeader(0x0034, 1, 0), &HTTP_C::CloseClientCertContext, "CloseClientCertContext"}, - {IPC::MakeHeader(0x0035, 6, 6), nullptr, "SetDefaultProxy"}, - {IPC::MakeHeader(0x0036, 0, 0), nullptr, "ClearDNSCache"}, - {IPC::MakeHeader(0x0037, 2, 0), nullptr, "SetKeepAlive"}, - {IPC::MakeHeader(0x0038, 3, 0), nullptr, "SetPostDataTypeSize"}, - {IPC::MakeHeader(0x0039, 0, 0), &HTTP_C::Finalize, "Finalize"}, + {0x0001, &HTTP_C::Initialize, "Initialize"}, + {0x0002, &HTTP_C::CreateContext, "CreateContext"}, + {0x0003, &HTTP_C::CloseContext, "CloseContext"}, + {0x0004, nullptr, "CancelConnection"}, + {0x0005, nullptr, "GetRequestState"}, + {0x0006, nullptr, "GetDownloadSizeState"}, + {0x0007, nullptr, "GetRequestError"}, + {0x0008, &HTTP_C::InitializeConnectionSession, "InitializeConnectionSession"}, + {0x0009, &HTTP_C::BeginRequest, "BeginRequest"}, + {0x000A, &HTTP_C::BeginRequestAsync, "BeginRequestAsync"}, + {0x000B, nullptr, "ReceiveData"}, + {0x000C, nullptr, "ReceiveDataTimeout"}, + {0x000D, nullptr, "SetProxy"}, + {0x000E, nullptr, "SetProxyDefault"}, + {0x000F, nullptr, "SetBasicAuthorization"}, + {0x0010, nullptr, "SetSocketBufferSize"}, + {0x0011, &HTTP_C::AddRequestHeader, "AddRequestHeader"}, + {0x0012, &HTTP_C::AddPostDataAscii, "AddPostDataAscii"}, + {0x0013, nullptr, "AddPostDataBinary"}, + {0x0014, nullptr, "AddPostDataRaw"}, + {0x0015, nullptr, "SetPostDataType"}, + {0x0016, nullptr, "SendPostDataAscii"}, + {0x0017, nullptr, "SendPostDataAsciiTimeout"}, + {0x0018, nullptr, "SendPostDataBinary"}, + {0x0019, nullptr, "SendPostDataBinaryTimeout"}, + {0x001A, nullptr, "SendPostDataRaw"}, + {0x001B, nullptr, "SendPOSTDataRawTimeout"}, + {0x001C, nullptr, "SetPostDataEncoding"}, + {0x001D, nullptr, "NotifyFinishSendPostData"}, + {0x001E, nullptr, "GetResponseHeader"}, + {0x001F, nullptr, "GetResponseHeaderTimeout"}, + {0x0020, nullptr, "GetResponseData"}, + {0x0021, nullptr, "GetResponseDataTimeout"}, + {0x0022, nullptr, "GetResponseStatusCode"}, + {0x0023, nullptr, "GetResponseStatusCodeTimeout"}, + {0x0024, nullptr, "AddTrustedRootCA"}, + {0x0025, nullptr, "AddDefaultCert"}, + {0x0026, nullptr, "SelectRootCertChain"}, + {0x0027, nullptr, "SetClientCert"}, + {0x0029, &HTTP_C::SetClientCertContext, "SetClientCertContext"}, + {0x002A, &HTTP_C::GetSSLError, "GetSSLError"}, + {0x002B, nullptr, "SetSSLOpt"}, + {0x002C, nullptr, "SetSSLClearOpt"}, + {0x002D, nullptr, "CreateRootCertChain"}, + {0x002E, nullptr, "DestroyRootCertChain"}, + {0x002F, nullptr, "RootCertChainAddCert"}, + {0x0030, nullptr, "RootCertChainAddDefaultCert"}, + {0x0031, nullptr, "RootCertChainRemoveCert"}, + {0x0032, &HTTP_C::OpenClientCertContext, "OpenClientCertContext"}, + {0x0033, &HTTP_C::OpenDefaultClientCertContext, "OpenDefaultClientCertContext"}, + {0x0034, &HTTP_C::CloseClientCertContext, "CloseClientCertContext"}, + {0x0035, nullptr, "SetDefaultProxy"}, + {0x0036, nullptr, "ClearDNSCache"}, + {0x0037, nullptr, "SetKeepAlive"}, + {0x0038, nullptr, "SetPostDataTypeSize"}, + {0x0039, &HTTP_C::Finalize, "Finalize"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/ir/ir_rst.cpp b/src/core/hle/service/ir/ir_rst.cpp index 0e4d1b920..ad219302a 100644 --- a/src/core/hle/service/ir/ir_rst.cpp +++ b/src/core/hle/service/ir/ir_rst.cpp @@ -128,14 +128,14 @@ void IR_RST::UpdateCallback(std::uintptr_t user_data, s64 cycles_late) { } void IR_RST::GetHandles(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 3); rb.Push(RESULT_SUCCESS); rb.PushMoveObjects(shared_memory, update_event); } void IR_RST::Initialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 2, 0); + IPC::RequestParser rp(ctx); update_period = static_cast(rp.Pop()); raw_c_stick = rp.Pop(); @@ -153,7 +153,7 @@ void IR_RST::Initialize(Kernel::HLERequestContext& ctx) { } void IR_RST::Shutdown(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 0, 0); + IPC::RequestParser rp(ctx); system.CoreTiming().UnscheduleEvent(update_callback_id, 0); UnloadInputDevices(); @@ -181,10 +181,10 @@ IR_RST::IR_RST(Core::System& system) : ServiceFramework("ir:rst", 1), system(sys static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 0), &IR_RST::GetHandles, "GetHandles"}, - {IPC::MakeHeader(0x0002, 2, 0), &IR_RST::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0003, 0, 0), &IR_RST::Shutdown, "Shutdown"}, - {IPC::MakeHeader(0x0009, 0, 0), nullptr, "WriteToTwoFields"}, + {0x0001, &IR_RST::GetHandles, "GetHandles"}, + {0x0002, &IR_RST::Initialize, "Initialize"}, + {0x0003, &IR_RST::Shutdown, "Shutdown"}, + {0x0009, nullptr, "WriteToTwoFields"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/ir/ir_u.cpp b/src/core/hle/service/ir/ir_u.cpp index d4502fe0a..78e900fe2 100644 --- a/src/core/hle/service/ir/ir_u.cpp +++ b/src/core/hle/service/ir/ir_u.cpp @@ -12,24 +12,24 @@ namespace Service::IR { IR_U::IR_U() : ServiceFramework("ir:u", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 0), nullptr, "Initialize"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "Shutdown"}, - {IPC::MakeHeader(0x0003, 1, 2), nullptr, "StartSendTransfer"}, - {IPC::MakeHeader(0x0004, 0, 0), nullptr, "WaitSendTransfer"}, - {IPC::MakeHeader(0x0005, 3, 2), nullptr, "StartRecvTransfer"}, - {IPC::MakeHeader(0x0006, 0, 0), nullptr, "WaitRecvTransfer"}, - {IPC::MakeHeader(0x0007, 2, 0), nullptr, "GetRecvTransferCount"}, - {IPC::MakeHeader(0x0008, 0, 0), nullptr, "GetSendState"}, - {IPC::MakeHeader(0x0009, 1, 0), nullptr, "SetBitRate"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetBitRate"}, - {IPC::MakeHeader(0x000B, 1, 0), nullptr, "SetIRLEDState"}, - {IPC::MakeHeader(0x000C, 0, 0), nullptr, "GetIRLEDRecvState"}, - {IPC::MakeHeader(0x000D, 0, 0), nullptr, "GetSendFinishedEvent"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "GetRecvFinishedEvent"}, - {IPC::MakeHeader(0x000F, 0, 0), nullptr, "GetTransferState"}, - {IPC::MakeHeader(0x0010, 0, 0), nullptr, "GetErrorStatus"}, - {IPC::MakeHeader(0x0011, 1, 0), nullptr, "SetSleepModeActive"}, - {IPC::MakeHeader(0x0012, 1, 0), nullptr, "SetSleepModeState"}, + {0x0001, nullptr, "Initialize"}, + {0x0002, nullptr, "Shutdown"}, + {0x0003, nullptr, "StartSendTransfer"}, + {0x0004, nullptr, "WaitSendTransfer"}, + {0x0005, nullptr, "StartRecvTransfer"}, + {0x0006, nullptr, "WaitRecvTransfer"}, + {0x0007, nullptr, "GetRecvTransferCount"}, + {0x0008, nullptr, "GetSendState"}, + {0x0009, nullptr, "SetBitRate"}, + {0x000A, nullptr, "GetBitRate"}, + {0x000B, nullptr, "SetIRLEDState"}, + {0x000C, nullptr, "GetIRLEDRecvState"}, + {0x000D, nullptr, "GetSendFinishedEvent"}, + {0x000E, nullptr, "GetRecvFinishedEvent"}, + {0x000F, nullptr, "GetTransferState"}, + {0x0010, nullptr, "GetErrorStatus"}, + {0x0011, nullptr, "SetSleepModeActive"}, + {0x0012, nullptr, "SetSleepModeState"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/ir/ir_user.cpp b/src/core/hle/service/ir/ir_user.cpp index 5e921bfdf..e66ca4784 100644 --- a/src/core/hle/service/ir/ir_user.cpp +++ b/src/core/hle/service/ir/ir_user.cpp @@ -274,7 +274,7 @@ void IR_USER::PutToReceive(std::span payload) { } void IR_USER::InitializeIrNopShared(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x18, 6, 2); + IPC::RequestParser rp(ctx); const u32 shared_buff_size = rp.Pop(); const u32 recv_buff_size = rp.Pop(); const u32 recv_buff_packet_count = rp.Pop(); @@ -304,7 +304,7 @@ void IR_USER::InitializeIrNopShared(Kernel::HLERequestContext& ctx) { } void IR_USER::RequireConnection(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 1, 0); + IPC::RequestParser rp(ctx); const u8 device_id = rp.Pop(); u8* shared_memory_ptr = shared_memory->GetPointer(); @@ -390,7 +390,7 @@ void IR_USER::FinalizeIrNop(Kernel::HLERequestContext& ctx) { } void IR_USER::SendIrNop(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0D, 1, 2); + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); std::vector buffer = rp.PopStaticBuffer(); ASSERT(size == buffer.size()); @@ -410,7 +410,7 @@ void IR_USER::SendIrNop(Kernel::HLERequestContext& ctx) { } void IR_USER::ReleaseReceivedData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x19, 1, 0); + IPC::RequestParser rp(ctx); u32 count = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -429,32 +429,32 @@ void IR_USER::ReleaseReceivedData(Kernel::HLERequestContext& ctx) { IR_USER::IR_USER(Core::System& system) : ServiceFramework("ir:USER", 1) { const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 6, 2), nullptr, "InitializeIrNop"}, - {IPC::MakeHeader(0x0002, 0, 0), &IR_USER::FinalizeIrNop, "FinalizeIrNop"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "ClearReceiveBuffer"}, - {IPC::MakeHeader(0x0004, 0, 0), nullptr, "ClearSendBuffer"}, - {IPC::MakeHeader(0x0005, 3, 0), nullptr, "WaitConnection"}, - {IPC::MakeHeader(0x0006, 1, 0), &IR_USER::RequireConnection, "RequireConnection"}, - {IPC::MakeHeader(0x0007, 11, 0), nullptr, "AutoConnection"}, - {IPC::MakeHeader(0x0008, 0, 0), nullptr, "AnyConnection"}, - {IPC::MakeHeader(0x0009, 0, 0), &IR_USER::Disconnect, "Disconnect"}, - {IPC::MakeHeader(0x000A, 0, 0), &IR_USER::GetReceiveEvent, "GetReceiveEvent"}, - {IPC::MakeHeader(0x000B, 0, 0), &IR_USER::GetSendEvent, "GetSendEvent"}, - {IPC::MakeHeader(0x000C, 0, 0), &IR_USER::GetConnectionStatusEvent, "GetConnectionStatusEvent"}, - {IPC::MakeHeader(0x000D, 1, 2), &IR_USER::SendIrNop, "SendIrNop"}, - {IPC::MakeHeader(0x000E, 1, 2), nullptr, "SendIrNopLarge"}, - {IPC::MakeHeader(0x000F, 1, 0), nullptr, "ReceiveIrnop"}, - {IPC::MakeHeader(0x0010, 1, 2), nullptr, "ReceiveIrnopLarge"}, - {IPC::MakeHeader(0x0011, 1, 0), nullptr, "GetLatestReceiveErrorResult"}, - {IPC::MakeHeader(0x0012, 1, 0), nullptr, "GetLatestSendErrorResult"}, - {IPC::MakeHeader(0x0013, 0, 0), nullptr, "GetConnectionStatus"}, - {IPC::MakeHeader(0x0014, 0, 0), nullptr, "GetTryingToConnectStatus"}, - {IPC::MakeHeader(0x0015, 0, 0), nullptr, "GetReceiveSizeFreeAndUsed"}, - {IPC::MakeHeader(0x0016, 0, 0), nullptr, "GetSendSizeFreeAndUsed"}, - {IPC::MakeHeader(0x0017, 0, 0), nullptr, "GetConnectionRole"}, - {IPC::MakeHeader(0x0018, 6, 2), &IR_USER::InitializeIrNopShared, "InitializeIrNopShared"}, - {IPC::MakeHeader(0x0019, 1, 0), &IR_USER::ReleaseReceivedData, "ReleaseReceivedData"}, - {IPC::MakeHeader(0x001A, 1, 0), nullptr, "SetOwnMachineId"}, + {0x0001, nullptr, "InitializeIrNop"}, + {0x0002, &IR_USER::FinalizeIrNop, "FinalizeIrNop"}, + {0x0003, nullptr, "ClearReceiveBuffer"}, + {0x0004, nullptr, "ClearSendBuffer"}, + {0x0005, nullptr, "WaitConnection"}, + {0x0006, &IR_USER::RequireConnection, "RequireConnection"}, + {0x0007, nullptr, "AutoConnection"}, + {0x0008, nullptr, "AnyConnection"}, + {0x0009, &IR_USER::Disconnect, "Disconnect"}, + {0x000A, &IR_USER::GetReceiveEvent, "GetReceiveEvent"}, + {0x000B, &IR_USER::GetSendEvent, "GetSendEvent"}, + {0x000C, &IR_USER::GetConnectionStatusEvent, "GetConnectionStatusEvent"}, + {0x000D, &IR_USER::SendIrNop, "SendIrNop"}, + {0x000E, nullptr, "SendIrNopLarge"}, + {0x000F, nullptr, "ReceiveIrnop"}, + {0x0010, nullptr, "ReceiveIrnopLarge"}, + {0x0011, nullptr, "GetLatestReceiveErrorResult"}, + {0x0012, nullptr, "GetLatestSendErrorResult"}, + {0x0013, nullptr, "GetConnectionStatus"}, + {0x0014, nullptr, "GetTryingToConnectStatus"}, + {0x0015, nullptr, "GetReceiveSizeFreeAndUsed"}, + {0x0016, nullptr, "GetSendSizeFreeAndUsed"}, + {0x0017, nullptr, "GetConnectionRole"}, + {0x0018, &IR_USER::InitializeIrNopShared, "InitializeIrNopShared"}, + {0x0019, &IR_USER::ReleaseReceivedData, "ReleaseReceivedData"}, + {0x001A, nullptr, "SetOwnMachineId"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/ldr_ro/ldr_ro.cpp b/src/core/hle/service/ldr_ro/ldr_ro.cpp index 09c1b45b2..9803cec76 100644 --- a/src/core/hle/service/ldr_ro/ldr_ro.cpp +++ b/src/core/hle/service/ldr_ro/ldr_ro.cpp @@ -60,7 +60,7 @@ static bool VerifyBufferState(Kernel::Process& process, VAddr buffer_ptr, u32 si } void RO::Initialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 3, 2); + IPC::RequestParser rp(ctx); VAddr crs_buffer_ptr = rp.Pop(); u32 crs_size = rp.Pop(); VAddr crs_address = rp.Pop(); @@ -143,7 +143,7 @@ void RO::Initialize(Kernel::HLERequestContext& ctx) { } void RO::LoadCRR(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 2, 2); + IPC::RequestParser rp(ctx); VAddr crr_buffer_ptr = rp.Pop(); u32 crr_size = rp.Pop(); auto process = rp.PopObject(); @@ -156,7 +156,7 @@ void RO::LoadCRR(Kernel::HLERequestContext& ctx) { } void RO::UnloadCRR(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 1, 2); + IPC::RequestParser rp(ctx); u32 crr_buffer_ptr = rp.Pop(); auto process = rp.PopObject(); @@ -167,7 +167,7 @@ void RO::UnloadCRR(Kernel::HLERequestContext& ctx) { } void RO::LoadCRO(Kernel::HLERequestContext& ctx, bool link_on_load_bug_fix) { - IPC::RequestParser rp(ctx, link_on_load_bug_fix ? 0x09 : 0x04, 11, 2); + IPC::RequestParser rp(ctx); VAddr cro_buffer_ptr = rp.Pop(); VAddr cro_address = rp.Pop(); u32 cro_size = rp.Pop(); @@ -334,7 +334,7 @@ void RO::LoadCRO(Kernel::HLERequestContext& ctx, bool link_on_load_bug_fix) { } void RO::UnloadCRO(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 3, 2); + IPC::RequestParser rp(ctx); VAddr cro_address = rp.Pop(); u32 zero = rp.Pop(); VAddr cro_buffer_ptr = rp.Pop(); @@ -404,7 +404,7 @@ void RO::UnloadCRO(Kernel::HLERequestContext& ctx) { } void RO::LinkCRO(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 1, 2); + IPC::RequestParser rp(ctx); VAddr cro_address = rp.Pop(); auto process = rp.PopObject(); @@ -444,7 +444,7 @@ void RO::LinkCRO(Kernel::HLERequestContext& ctx) { } void RO::UnlinkCRO(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x07, 1, 2); + IPC::RequestParser rp(ctx); VAddr cro_address = rp.Pop(); auto process = rp.PopObject(); @@ -484,7 +484,7 @@ void RO::UnlinkCRO(Kernel::HLERequestContext& ctx) { } void RO::Shutdown(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x08, 1, 2); + IPC::RequestParser rp(ctx); VAddr crs_buffer_ptr = rp.Pop(); auto process = rp.PopObject(); @@ -517,15 +517,15 @@ void RO::Shutdown(Kernel::HLERequestContext& ctx) { RO::RO(Core::System& system) : ServiceFramework("ldr:ro", 2), system(system) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 3, 2), &RO::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0002, 2, 2), &RO::LoadCRR, "LoadCRR"}, - {IPC::MakeHeader(0x0003, 1, 2), &RO::UnloadCRR, "UnloadCRR"}, - {IPC::MakeHeader(0x0004, 11, 2), &RO::LoadCRO, "LoadCRO"}, - {IPC::MakeHeader(0x0005, 3, 2), &RO::UnloadCRO, "UnloadCRO"}, - {IPC::MakeHeader(0x0006, 1, 2), &RO::LinkCRO, "LinkCRO"}, - {IPC::MakeHeader(0x0007, 1, 2), &RO::UnlinkCRO, "UnlinkCRO"}, - {IPC::MakeHeader(0x0008, 1, 2), &RO::Shutdown, "Shutdown"}, - {IPC::MakeHeader(0x0009, 11, 2), &RO::LoadCRO, "LoadCRO_New"}, + {0x0001, &RO::Initialize, "Initialize"}, + {0x0002, &RO::LoadCRR, "LoadCRR"}, + {0x0003, &RO::UnloadCRR, "UnloadCRR"}, + {0x0004, &RO::LoadCRO, "LoadCRO"}, + {0x0005, &RO::UnloadCRO, "UnloadCRO"}, + {0x0006, &RO::LinkCRO, "LinkCRO"}, + {0x0007, &RO::UnlinkCRO, "UnlinkCRO"}, + {0x0008, &RO::Shutdown, "Shutdown"}, + {0x0009, &RO::LoadCRO, "LoadCRO_New"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/mic_u.cpp b/src/core/hle/service/mic_u.cpp index 51788fa8e..95c12a9f9 100644 --- a/src/core/hle/service/mic_u.cpp +++ b/src/core/hle/service/mic_u.cpp @@ -141,7 +141,7 @@ struct MIC_U::Impl { } void MapSharedMem(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x01, 1, 2}; + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); shared_memory = rp.PopObject(); @@ -159,7 +159,7 @@ struct MIC_U::Impl { } void UnmapSharedMem(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x02, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); shared_memory = nullptr; rb.Push(RESULT_SUCCESS); @@ -196,7 +196,7 @@ struct MIC_U::Impl { } void StartSampling(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x03, 5, 0}; + IPC::RequestParser rp(ctx); encoding = rp.PopEnum(); SampleRate sample_rate = rp.PopEnum(); @@ -231,7 +231,7 @@ struct MIC_U::Impl { } void AdjustSampling(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x04, 1, 0}; + IPC::RequestParser rp(ctx); SampleRate sample_rate = rp.PopEnum(); mic->AdjustSampleRate(GetSampleRateInHz(sample_rate)); @@ -241,7 +241,7 @@ struct MIC_U::Impl { } void StopSampling(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x05, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -251,7 +251,7 @@ struct MIC_U::Impl { } void IsSampling(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x06, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -261,7 +261,7 @@ struct MIC_U::Impl { } void GetBufferFullEvent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x07, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); rb.Push(RESULT_SUCCESS); @@ -270,7 +270,7 @@ struct MIC_U::Impl { } void SetGain(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x08, 1, 0}; + IPC::RequestParser rp(ctx); u8 gain = rp.Pop(); mic->SetGain(gain); @@ -280,7 +280,7 @@ struct MIC_U::Impl { } void GetGain(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x09, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -290,7 +290,7 @@ struct MIC_U::Impl { } void SetPower(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x0A, 1, 0}; + IPC::RequestParser rp(ctx); bool power = rp.Pop(); mic->SetPower(power); @@ -300,7 +300,7 @@ struct MIC_U::Impl { } void GetPower(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x0B, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -310,7 +310,7 @@ struct MIC_U::Impl { } void SetIirFilterMic(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x0C, 1, 2}; + IPC::RequestParser rp(ctx); const u32 size = rp.Pop(); const Kernel::MappedBuffer& buffer = rp.PopMappedBuffer(); @@ -322,7 +322,7 @@ struct MIC_U::Impl { } void SetClamp(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x0D, 1, 0}; + IPC::RequestParser rp(ctx); clamp = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -331,7 +331,7 @@ struct MIC_U::Impl { } void GetClamp(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x0E, 0, 0}; + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -340,7 +340,7 @@ struct MIC_U::Impl { } void SetAllowShellClosed(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x0F, 1, 0}; + IPC::RequestParser rp(ctx); allow_shell_closed = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -349,7 +349,7 @@ struct MIC_U::Impl { } void SetClientVersion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp{ctx, 0x10, 1, 0}; + IPC::RequestParser rp(ctx); const u32 version = rp.Pop(); LOG_WARNING(Service_MIC, "(STUBBED) called, version: 0x{:08X}", version); @@ -486,22 +486,22 @@ MIC_U::MIC_U(Core::System& system) : ServiceFramework{"mic:u", 1}, impl{std::make_unique(system)} { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 2), &MIC_U::MapSharedMem, "MapSharedMem"}, - {IPC::MakeHeader(0x0002, 0, 0), &MIC_U::UnmapSharedMem, "UnmapSharedMem"}, - {IPC::MakeHeader(0x0003, 5, 0), &MIC_U::StartSampling, "StartSampling"}, - {IPC::MakeHeader(0x0004, 1, 0), &MIC_U::AdjustSampling, "AdjustSampling"}, - {IPC::MakeHeader(0x0005, 0, 0), &MIC_U::StopSampling, "StopSampling"}, - {IPC::MakeHeader(0x0006, 0, 0), &MIC_U::IsSampling, "IsSampling"}, - {IPC::MakeHeader(0x0007, 0, 0), &MIC_U::GetBufferFullEvent, "GetBufferFullEvent"}, - {IPC::MakeHeader(0x0008, 1, 0), &MIC_U::SetGain, "SetGain"}, - {IPC::MakeHeader(0x0009, 0, 0), &MIC_U::GetGain, "GetGain"}, - {IPC::MakeHeader(0x000A, 1, 0), &MIC_U::SetPower, "SetPower"}, - {IPC::MakeHeader(0x000B, 0, 0), &MIC_U::GetPower, "GetPower"}, - {IPC::MakeHeader(0x000C, 1, 2), &MIC_U::SetIirFilterMic, "SetIirFilterMic"}, - {IPC::MakeHeader(0x000D, 1, 0), &MIC_U::SetClamp, "SetClamp"}, - {IPC::MakeHeader(0x000E, 0, 0), &MIC_U::GetClamp, "GetClamp"}, - {IPC::MakeHeader(0x000F, 1, 0), &MIC_U::SetAllowShellClosed, "SetAllowShellClosed"}, - {IPC::MakeHeader(0x0010, 1, 0), &MIC_U::SetClientVersion, "SetClientVersion"}, + {0x0001, &MIC_U::MapSharedMem, "MapSharedMem"}, + {0x0002, &MIC_U::UnmapSharedMem, "UnmapSharedMem"}, + {0x0003, &MIC_U::StartSampling, "StartSampling"}, + {0x0004, &MIC_U::AdjustSampling, "AdjustSampling"}, + {0x0005, &MIC_U::StopSampling, "StopSampling"}, + {0x0006, &MIC_U::IsSampling, "IsSampling"}, + {0x0007, &MIC_U::GetBufferFullEvent, "GetBufferFullEvent"}, + {0x0008, &MIC_U::SetGain, "SetGain"}, + {0x0009, &MIC_U::GetGain, "GetGain"}, + {0x000A, &MIC_U::SetPower, "SetPower"}, + {0x000B, &MIC_U::GetPower, "GetPower"}, + {0x000C, &MIC_U::SetIirFilterMic, "SetIirFilterMic"}, + {0x000D, &MIC_U::SetClamp, "SetClamp"}, + {0x000E, &MIC_U::GetClamp, "GetClamp"}, + {0x000F, &MIC_U::SetAllowShellClosed, "SetAllowShellClosed"}, + {0x0010, &MIC_U::SetClientVersion, "SetClientVersion"}, // clang-format on }; diff --git a/src/core/hle/service/mvd/mvd_std.cpp b/src/core/hle/service/mvd/mvd_std.cpp index 27546d8de..64a5314df 100644 --- a/src/core/hle/service/mvd/mvd_std.cpp +++ b/src/core/hle/service/mvd/mvd_std.cpp @@ -13,18 +13,18 @@ namespace Service::MVD { MVD_STD::MVD_STD() : ServiceFramework("mvd:std", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 2, 2), nullptr, "Initialize"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "Shutdown"}, - {IPC::MakeHeader(0x0003, 12, 0), nullptr, "CalculateWorkBufSize"}, - {IPC::MakeHeader(0x0004, 3, 0), nullptr, "CalculateImageSize"}, - {IPC::MakeHeader(0x0008, 5, 2), nullptr, "ProcessNALUnit"}, - {IPC::MakeHeader(0x0009, 1, 2), nullptr, "ControlFrameRendering"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetStatus"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "GetStatusOther"}, - {IPC::MakeHeader(0x001D, 1, 2), nullptr, "GetConfig"}, - {IPC::MakeHeader(0x001E, 1, 4), nullptr, "SetConfig"}, - {IPC::MakeHeader(0x001F, 36, 2), nullptr, "SetOutputBuffer"}, - {IPC::MakeHeader(0x0021, 4, 0), nullptr, "OverrideOutputBuffers"} + {0x0001, nullptr, "Initialize"}, + {0x0002, nullptr, "Shutdown"}, + {0x0003, nullptr, "CalculateWorkBufSize"}, + {0x0004, nullptr, "CalculateImageSize"}, + {0x0008, nullptr, "ProcessNALUnit"}, + {0x0009, nullptr, "ControlFrameRendering"}, + {0x000A, nullptr, "GetStatus"}, + {0x000B, nullptr, "GetStatusOther"}, + {0x001D, nullptr, "GetConfig"}, + {0x001E, nullptr, "SetConfig"}, + {0x001F, nullptr, "SetOutputBuffer"}, + {0x0021, nullptr, "OverrideOutputBuffers"} // clang-format on }; diff --git a/src/core/hle/service/ndm/ndm_u.cpp b/src/core/hle/service/ndm/ndm_u.cpp index a98e9147c..90d2b0b74 100644 --- a/src/core/hle/service/ndm/ndm_u.cpp +++ b/src/core/hle/service/ndm/ndm_u.cpp @@ -12,7 +12,7 @@ SERIALIZE_EXPORT_IMPL(Service::NDM::NDM_U) namespace Service::NDM { void NDM_U::EnterExclusiveState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 1, 2); + IPC::RequestParser rp(ctx); exclusive_state = rp.PopEnum(); rp.PopPID(); @@ -22,7 +22,7 @@ void NDM_U::EnterExclusiveState(Kernel::HLERequestContext& ctx) { } void NDM_U::LeaveExclusiveState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 0, 2); + IPC::RequestParser rp(ctx); rp.PopPID(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -31,7 +31,7 @@ void NDM_U::LeaveExclusiveState(Kernel::HLERequestContext& ctx) { } void NDM_U::QueryExclusiveMode(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); rb.PushEnum(exclusive_state); @@ -39,7 +39,7 @@ void NDM_U::QueryExclusiveMode(Kernel::HLERequestContext& ctx) { } void NDM_U::LockState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x04, 0, 2); + IPC::RequestParser rp(ctx); rp.PopPID(); daemon_lock_enabled = true; @@ -49,7 +49,7 @@ void NDM_U::LockState(Kernel::HLERequestContext& ctx) { } void NDM_U::UnlockState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 0, 2); + IPC::RequestParser rp(ctx); rp.PopPID(); daemon_lock_enabled = false; @@ -59,7 +59,7 @@ void NDM_U::UnlockState(Kernel::HLERequestContext& ctx) { } void NDM_U::SuspendDaemons(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 1, 0); + IPC::RequestParser rp(ctx); u32 bit_mask = rp.Pop() & 0xF; daemon_bit_mask = static_cast(static_cast(default_daemon_bit_mask) & ~bit_mask); @@ -75,7 +75,7 @@ void NDM_U::SuspendDaemons(Kernel::HLERequestContext& ctx) { } void NDM_U::ResumeDaemons(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x07, 1, 0); + IPC::RequestParser rp(ctx); u32 bit_mask = rp.Pop() & 0xF; daemon_bit_mask = static_cast(static_cast(daemon_bit_mask) & ~bit_mask); for (std::size_t index = 0; index < daemon_status.size(); ++index) { @@ -90,7 +90,7 @@ void NDM_U::ResumeDaemons(Kernel::HLERequestContext& ctx) { } void NDM_U::SuspendScheduler(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x08, 1, 0); + IPC::RequestParser rp(ctx); bool perform_in_background = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -99,14 +99,14 @@ void NDM_U::SuspendScheduler(Kernel::HLERequestContext& ctx) { } void NDM_U::ResumeScheduler(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x09, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); LOG_WARNING(Service_NDM, "(STUBBED)"); } void NDM_U::QueryStatus(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0D, 1, 0); + IPC::RequestParser rp(ctx); u8 daemon = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); @@ -116,7 +116,7 @@ void NDM_U::QueryStatus(Kernel::HLERequestContext& ctx) { } void NDM_U::GetDaemonDisableCount(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0E, 1, 0); + IPC::RequestParser rp(ctx); u8 daemon = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); @@ -127,7 +127,7 @@ void NDM_U::GetDaemonDisableCount(Kernel::HLERequestContext& ctx) { } void NDM_U::GetSchedulerDisableCount(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0F, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); rb.Push(RESULT_SUCCESS); @@ -137,7 +137,7 @@ void NDM_U::GetSchedulerDisableCount(Kernel::HLERequestContext& ctx) { } void NDM_U::SetScanInterval(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 1, 0); + IPC::RequestParser rp(ctx); scan_interval = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -146,7 +146,7 @@ void NDM_U::SetScanInterval(Kernel::HLERequestContext& ctx) { } void NDM_U::GetScanInterval(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); rb.Push(scan_interval); @@ -154,7 +154,7 @@ void NDM_U::GetScanInterval(Kernel::HLERequestContext& ctx) { } void NDM_U::SetRetryInterval(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 1, 0); + IPC::RequestParser rp(ctx); retry_interval = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -163,7 +163,7 @@ void NDM_U::SetRetryInterval(Kernel::HLERequestContext& ctx) { } void NDM_U::GetRetryInterval(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x13, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); rb.Push(retry_interval); @@ -171,7 +171,7 @@ void NDM_U::GetRetryInterval(Kernel::HLERequestContext& ctx) { } void NDM_U::OverrideDefaultDaemons(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 1, 0); + IPC::RequestParser rp(ctx); u32 bit_mask = rp.Pop() & 0xF; default_daemon_bit_mask = static_cast(bit_mask); daemon_bit_mask = default_daemon_bit_mask; @@ -187,7 +187,7 @@ void NDM_U::OverrideDefaultDaemons(Kernel::HLERequestContext& ctx) { } void NDM_U::ResetDefaultDaemons(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x15, 0, 0); + IPC::RequestParser rp(ctx); default_daemon_bit_mask = DaemonMask::Default; IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -196,7 +196,7 @@ void NDM_U::ResetDefaultDaemons(Kernel::HLERequestContext& ctx) { } void NDM_U::GetDefaultDaemons(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); rb.PushEnum(default_daemon_bit_mask); @@ -204,7 +204,7 @@ void NDM_U::GetDefaultDaemons(Kernel::HLERequestContext& ctx) { } void NDM_U::ClearHalfAwakeMacFilter(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); LOG_WARNING(Service_NDM, "(STUBBED)"); @@ -213,29 +213,29 @@ void NDM_U::ClearHalfAwakeMacFilter(Kernel::HLERequestContext& ctx) { NDM_U::NDM_U() : ServiceFramework("ndm:u", 6) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 2), &NDM_U::EnterExclusiveState, "EnterExclusiveState"}, - {IPC::MakeHeader(0x0002, 0, 2), &NDM_U::LeaveExclusiveState, "LeaveExclusiveState"}, - {IPC::MakeHeader(0x0003, 0, 0), &NDM_U::QueryExclusiveMode, "QueryExclusiveMode"}, - {IPC::MakeHeader(0x0004, 0, 2), &NDM_U::LockState, "LockState"}, - {IPC::MakeHeader(0x0005, 0, 2), &NDM_U::UnlockState, "UnlockState"}, - {IPC::MakeHeader(0x0006, 1, 0), &NDM_U::SuspendDaemons, "SuspendDaemons"}, - {IPC::MakeHeader(0x0007, 1, 0), &NDM_U::ResumeDaemons, "ResumeDaemons"}, - {IPC::MakeHeader(0x0008, 1, 0), &NDM_U::SuspendScheduler, "SuspendScheduler"}, - {IPC::MakeHeader(0x0009, 0, 0), &NDM_U::ResumeScheduler, "ResumeScheduler"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetCurrentState"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "GetTargetState"}, - {IPC::MakeHeader(0x000C, 0, 0), nullptr, ""}, - {IPC::MakeHeader(0x000D, 1, 0), &NDM_U::QueryStatus, "QueryStatus"}, - {IPC::MakeHeader(0x000E, 1, 0), &NDM_U::GetDaemonDisableCount, "GetDaemonDisableCount"}, - {IPC::MakeHeader(0x000F, 0, 0), &NDM_U::GetSchedulerDisableCount, "GetSchedulerDisableCount"}, - {IPC::MakeHeader(0x0010, 1, 0), &NDM_U::SetScanInterval, "SetScanInterval"}, - {IPC::MakeHeader(0x0011, 0, 0), &NDM_U::GetScanInterval, "GetScanInterval"}, - {IPC::MakeHeader(0x0012, 1, 0), &NDM_U::SetRetryInterval, "SetRetryInterval"}, - {IPC::MakeHeader(0x0013, 0, 0), &NDM_U::GetRetryInterval, "GetRetryInterval"}, - {IPC::MakeHeader(0x0014, 1, 0), &NDM_U::OverrideDefaultDaemons, "OverrideDefaultDaemons"}, - {IPC::MakeHeader(0x0015, 0, 0), &NDM_U::ResetDefaultDaemons, "ResetDefaultDaemons"}, - {IPC::MakeHeader(0x0016, 0, 0), &NDM_U::GetDefaultDaemons, "GetDefaultDaemons"}, - {IPC::MakeHeader(0x0017, 0, 0), &NDM_U::ClearHalfAwakeMacFilter, "ClearHalfAwakeMacFilter"}, + {0x0001, &NDM_U::EnterExclusiveState, "EnterExclusiveState"}, + {0x0002, &NDM_U::LeaveExclusiveState, "LeaveExclusiveState"}, + {0x0003, &NDM_U::QueryExclusiveMode, "QueryExclusiveMode"}, + {0x0004, &NDM_U::LockState, "LockState"}, + {0x0005, &NDM_U::UnlockState, "UnlockState"}, + {0x0006, &NDM_U::SuspendDaemons, "SuspendDaemons"}, + {0x0007, &NDM_U::ResumeDaemons, "ResumeDaemons"}, + {0x0008, &NDM_U::SuspendScheduler, "SuspendScheduler"}, + {0x0009, &NDM_U::ResumeScheduler, "ResumeScheduler"}, + {0x000A, nullptr, "GetCurrentState"}, + {0x000B, nullptr, "GetTargetState"}, + {0x000C, nullptr, ""}, + {0x000D, &NDM_U::QueryStatus, "QueryStatus"}, + {0x000E, &NDM_U::GetDaemonDisableCount, "GetDaemonDisableCount"}, + {0x000F, &NDM_U::GetSchedulerDisableCount, "GetSchedulerDisableCount"}, + {0x0010, &NDM_U::SetScanInterval, "SetScanInterval"}, + {0x0011, &NDM_U::GetScanInterval, "GetScanInterval"}, + {0x0012, &NDM_U::SetRetryInterval, "SetRetryInterval"}, + {0x0013, &NDM_U::GetRetryInterval, "GetRetryInterval"}, + {0x0014, &NDM_U::OverrideDefaultDaemons, "OverrideDefaultDaemons"}, + {0x0015, &NDM_U::ResetDefaultDaemons, "ResetDefaultDaemons"}, + {0x0016, &NDM_U::GetDefaultDaemons, "GetDefaultDaemons"}, + {0x0017, &NDM_U::ClearHalfAwakeMacFilter, "ClearHalfAwakeMacFilter"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/news/news_s.cpp b/src/core/hle/service/news/news_s.cpp index 1d4ecf677..771ad691d 100644 --- a/src/core/hle/service/news/news_s.cpp +++ b/src/core/hle/service/news/news_s.cpp @@ -18,7 +18,7 @@ struct NewsDbHeader { static_assert(sizeof(NewsDbHeader) == 0x10, "News DB Header structure size is wrong"); void NEWS_S::GetTotalNotifications(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x5, 0, 0); + IPC::RequestParser rp(ctx); LOG_WARNING(Service, "(STUBBED) called"); @@ -29,7 +29,7 @@ void NEWS_S::GetTotalNotifications(Kernel::HLERequestContext& ctx) { } void NEWS_S::GetNewsDBHeader(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xA, 1, 2); + IPC::RequestParser rp(ctx); const auto size = rp.Pop(); auto output_buffer = rp.PopMappedBuffer(); @@ -47,19 +47,19 @@ void NEWS_S::GetNewsDBHeader(Kernel::HLERequestContext& ctx) { NEWS_S::NEWS_S() : ServiceFramework("news:s", 2) { const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 3, 6), nullptr, "AddNotification"}, - {IPC::MakeHeader(0x0005, 0, 0), &NEWS_S::GetTotalNotifications, "GetTotalNotifications"}, - {IPC::MakeHeader(0x0006, 1, 2), nullptr, "SetNewsDBHeader"}, - {IPC::MakeHeader(0x0007, 2, 2), nullptr, "SetNotificationHeader"}, - {IPC::MakeHeader(0x0008, 2, 2), nullptr, "SetNotificationMessage"}, - {IPC::MakeHeader(0x0009, 2, 2), nullptr, "SetNotificationImage"}, - {IPC::MakeHeader(0x000A, 1, 2), &NEWS_S::GetNewsDBHeader, "GetNewsDBHeader"}, - {IPC::MakeHeader(0x000B, 2, 2), nullptr, "GetNotificationHeader"}, - {IPC::MakeHeader(0x000C, 2, 2), nullptr, "GetNotificationMessage"}, - {IPC::MakeHeader(0x000D, 2, 2), nullptr, "GetNotificationImage"}, - {IPC::MakeHeader(0x000E, 1, 0), nullptr, "SetInfoLEDPattern"}, - {IPC::MakeHeader(0x0012, 2, 2), nullptr, "GetNotificationHeaderOther"}, - {IPC::MakeHeader(0x0013, 0, 0), nullptr, "WriteNewsDBSavedata"}, + {0x0001, nullptr, "AddNotification"}, + {0x0005, &NEWS_S::GetTotalNotifications, "GetTotalNotifications"}, + {0x0006, nullptr, "SetNewsDBHeader"}, + {0x0007, nullptr, "SetNotificationHeader"}, + {0x0008, nullptr, "SetNotificationMessage"}, + {0x0009, nullptr, "SetNotificationImage"}, + {0x000A, &NEWS_S::GetNewsDBHeader, "GetNewsDBHeader"}, + {0x000B, nullptr, "GetNotificationHeader"}, + {0x000C, nullptr, "GetNotificationMessage"}, + {0x000D, nullptr, "GetNotificationImage"}, + {0x000E, nullptr, "SetInfoLEDPattern"}, + {0x0012, nullptr, "GetNotificationHeaderOther"}, + {0x0013, nullptr, "WriteNewsDBSavedata"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/news/news_u.cpp b/src/core/hle/service/news/news_u.cpp index 4dcec69e2..1753b8e18 100644 --- a/src/core/hle/service/news/news_u.cpp +++ b/src/core/hle/service/news/news_u.cpp @@ -12,7 +12,7 @@ namespace Service::NEWS { NEWS_U::NEWS_U() : ServiceFramework("news:u", 1) { const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 3, 8), nullptr, "AddNotification"}, + {0x0001, nullptr, "AddNotification"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/nfc/nfc.cpp b/src/core/hle/service/nfc/nfc.cpp index 3c0963de6..62f82d8ba 100644 --- a/src/core/hle/service/nfc/nfc.cpp +++ b/src/core/hle/service/nfc/nfc.cpp @@ -24,7 +24,7 @@ void Module::serialize(Archive& ar, const unsigned int) { SERIALIZE_IMPL(Module) void Module::Interface::Initialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 1, 0); + IPC::RequestParser rp(ctx); const auto communication_mode = rp.PopEnum(); LOG_INFO(Service_NFC, "called, communication_mode={}", communication_mode); @@ -58,7 +58,7 @@ void Module::Interface::Initialize(Kernel::HLERequestContext& ctx) { } void Module::Interface::Finalize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 1, 0); + IPC::RequestParser rp(ctx); const auto communication_mode = rp.PopEnum(); LOG_INFO(Service_NFC, "called, communication_mode={}", communication_mode); @@ -92,7 +92,7 @@ void Module::Interface::Finalize(Kernel::HLERequestContext& ctx) { } void Module::Interface::Connect(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 0, 0); + IPC::RequestParser rp(ctx); LOG_WARNING(Service_NFC, "(STUBBED) called"); @@ -109,7 +109,7 @@ void Module::Interface::Connect(Kernel::HLERequestContext& ctx) { } void Module::Interface::Disconnect(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x04, 0, 0); + IPC::RequestParser rp(ctx); LOG_WARNING(Service_NFC, "(STUBBED) called"); @@ -126,7 +126,7 @@ void Module::Interface::Disconnect(Kernel::HLERequestContext& ctx) { } void Module::Interface::StartDetection(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 1, 0); + IPC::RequestParser rp(ctx); u16 in_val = rp.Pop(); LOG_INFO(Service_NFC, "called, in_val={:04x}", in_val); @@ -148,7 +148,7 @@ void Module::Interface::StartDetection(Kernel::HLERequestContext& ctx) { } void Module::Interface::StopDetection(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x06, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -171,7 +171,7 @@ void Module::Interface::StopDetection(Kernel::HLERequestContext& ctx) { } void Module::Interface::Mount(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x07, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -195,7 +195,7 @@ void Module::Interface::Mount(Kernel::HLERequestContext& ctx) { } void Module::Interface::Unmount(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x08, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -215,7 +215,7 @@ void Module::Interface::Unmount(Kernel::HLERequestContext& ctx) { } void Module::Interface::Flush(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x09, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -237,7 +237,7 @@ void Module::Interface::Flush(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetActivateEvent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0B, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -254,7 +254,7 @@ void Module::Interface::GetActivateEvent(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetDeactivateEvent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0C, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -271,7 +271,7 @@ void Module::Interface::GetDeactivateEvent(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetStatus(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0D, 0, 0); + IPC::RequestParser rp(ctx); DeviceState state = DeviceState::NotInitialized; LOG_DEBUG(Service_NFC, "called"); @@ -288,7 +288,7 @@ void Module::Interface::GetStatus(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTargetConnectionStatus(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0F, 0, 0); + IPC::RequestParser rp(ctx); LOG_DEBUG(Service_NFC, "called"); @@ -308,7 +308,7 @@ void Module::Interface::GetTargetConnectionStatus(Kernel::HLERequestContext& ctx } void Module::Interface::GetTagInfo2(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -330,7 +330,7 @@ void Module::Interface::GetTagInfo2(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTagInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -352,7 +352,7 @@ void Module::Interface::GetTagInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetConnectResult(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -361,7 +361,7 @@ void Module::Interface::GetConnectResult(Kernel::HLERequestContext& ctx) { } void Module::Interface::OpenApplicationArea(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x13, 1, 0); + IPC::RequestParser rp(ctx); u32 access_id = rp.Pop(); LOG_INFO(Service_NFC, "called, access_id={}", access_id); @@ -381,7 +381,7 @@ void Module::Interface::OpenApplicationArea(Kernel::HLERequestContext& ctx) { } void Module::Interface::CreateApplicationArea(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 18, 2); + IPC::RequestParser rp(ctx); u32 access_id = rp.Pop(); [[maybe_unused]] u32 size = rp.Pop(); std::vector buffer = rp.PopStaticBuffer(); @@ -401,7 +401,7 @@ void Module::Interface::CreateApplicationArea(Kernel::HLERequestContext& ctx) { } void Module::Interface::ReadApplicationArea(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x15, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -422,7 +422,7 @@ void Module::Interface::ReadApplicationArea(Kernel::HLERequestContext& ctx) { } void Module::Interface::WriteApplicationArea(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 12, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] u32 size = rp.Pop(); std::vector tag_uuid_info = rp.PopStaticBuffer(); std::vector buffer = rp.PopStaticBuffer(); @@ -442,7 +442,7 @@ void Module::Interface::WriteApplicationArea(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNfpRegisterInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -463,7 +463,7 @@ void Module::Interface::GetNfpRegisterInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetNfpCommonInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x18, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -484,7 +484,7 @@ void Module::Interface::GetNfpCommonInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::InitializeCreateInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x19, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -503,7 +503,7 @@ void Module::Interface::InitializeCreateInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::MountRom(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1A, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -525,7 +525,7 @@ void Module::Interface::MountRom(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetIdentificationBlock(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1B, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -546,7 +546,7 @@ void Module::Interface::GetIdentificationBlock(Kernel::HLERequestContext& ctx) { } void Module::Interface::Format(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x401, 3, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] u32 unknown1 = rp.Pop(); [[maybe_unused]] u32 unknown2 = rp.Pop(); [[maybe_unused]] u32 unknown3 = rp.Pop(); @@ -560,7 +560,7 @@ void Module::Interface::Format(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetAdminInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x402, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -581,7 +581,7 @@ void Module::Interface::GetAdminInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetEmptyRegisterInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x403, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -597,7 +597,7 @@ void Module::Interface::GetEmptyRegisterInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::SetRegisterInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x404, 41, 0); + IPC::RequestParser rp(ctx); const auto register_info = rp.PopRaw(); LOG_INFO(Service_NFC, "called"); @@ -615,7 +615,7 @@ void Module::Interface::SetRegisterInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::DeleteRegisterInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x405, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -632,7 +632,7 @@ void Module::Interface::DeleteRegisterInfo(Kernel::HLERequestContext& ctx) { } void Module::Interface::DeleteApplicationArea(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x406, 0, 0); + IPC::RequestParser rp(ctx); LOG_INFO(Service_NFC, "called"); @@ -649,7 +649,7 @@ void Module::Interface::DeleteApplicationArea(Kernel::HLERequestContext& ctx) { } void Module::Interface::ExistsApplicationArea(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x407, 0, 0); + IPC::RequestParser rp(ctx); if (nfc->nfc_mode != CommunicationMode::Amiibo) { IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); diff --git a/src/core/hle/service/nfc/nfc_m.cpp b/src/core/hle/service/nfc/nfc_m.cpp index 4d41883c0..c4c7e89f7 100644 --- a/src/core/hle/service/nfc/nfc_m.cpp +++ b/src/core/hle/service/nfc/nfc_m.cpp @@ -13,41 +13,41 @@ NFC_M::NFC_M(std::shared_ptr nfc) : Module::Interface(std::move(nfc), "n static const FunctionInfo functions[] = { // nfc:u shared commands // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &NFC_M::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0002, 1, 0), &NFC_M::Finalize, "Finalize"}, - {IPC::MakeHeader(0x0003, 0, 0), &NFC_M::Connect, "Connect"}, - {IPC::MakeHeader(0x0004, 0, 0), &NFC_M::Disconnect, "Disconnect"}, - {IPC::MakeHeader(0x0005, 1, 0), &NFC_M::StartDetection, "StartDetection"}, - {IPC::MakeHeader(0x0006, 0, 0), &NFC_M::StopDetection, "StopDetection"}, - {IPC::MakeHeader(0x0007, 0, 0), &NFC_M::Mount, "Mount"}, - {IPC::MakeHeader(0x0008, 0, 0), &NFC_M::Unmount, "Unmount"}, - {IPC::MakeHeader(0x0009, 0, 2), &NFC_M::Flush, "Flush"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "Restore"}, - {IPC::MakeHeader(0x000B, 0, 0), &NFC_M::GetActivateEvent, "GetActivateEvent"}, - {IPC::MakeHeader(0x000C, 0, 0), &NFC_M::GetDeactivateEvent, "GetDeactivateEvent"}, - {IPC::MakeHeader(0x000D, 0, 0), &NFC_M::GetStatus, "GetStatus"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "Unknown0x0E"}, - {IPC::MakeHeader(0x000F, 0, 0), &NFC_M::GetTargetConnectionStatus, "GetTargetConnectionStatus"}, - {IPC::MakeHeader(0x0010, 0, 0), &NFC_M::GetTagInfo2, "GetTagInfo2"}, - {IPC::MakeHeader(0x0011, 0, 0), &NFC_M::GetTagInfo, "GetTagInfo"}, - {IPC::MakeHeader(0x0012, 0, 0), &NFC_M::GetConnectResult, "GetConnectResult"}, - {IPC::MakeHeader(0x0013, 1, 0), &NFC_M::OpenApplicationArea, "OpenApplicationArea"}, - {IPC::MakeHeader(0x0014, 14, 4), &NFC_M::CreateApplicationArea, "CreateApplicationArea"}, - {IPC::MakeHeader(0x0015, 1, 0), &NFC_M::ReadApplicationArea, "ReadApplicationArea"}, - {IPC::MakeHeader(0x0016, 9, 2), &NFC_M::WriteApplicationArea, "WriteApplicationArea"}, - {IPC::MakeHeader(0x0017, 0, 0), &NFC_M::GetNfpRegisterInfo, "GetNfpRegisterInfo"}, - {IPC::MakeHeader(0x0018, 0, 0), &NFC_M::GetNfpCommonInfo, "GetNfpCommonInfo"}, - {IPC::MakeHeader(0x0019, 0, 0), &NFC_M::InitializeCreateInfo, "InitializeCreateInfo"}, - {IPC::MakeHeader(0x001A, 0, 0), &NFC_M::MountRom, "MountRom"}, - {IPC::MakeHeader(0x001B, 0, 0), &NFC_M::GetIdentificationBlock, "GetIdentificationBlock"}, + {0x0001, &NFC_M::Initialize, "Initialize"}, + {0x0002, &NFC_M::Finalize, "Finalize"}, + {0x0003, &NFC_M::Connect, "Connect"}, + {0x0004, &NFC_M::Disconnect, "Disconnect"}, + {0x0005, &NFC_M::StartDetection, "StartDetection"}, + {0x0006, &NFC_M::StopDetection, "StopDetection"}, + {0x0007, &NFC_M::Mount, "Mount"}, + {0x0008, &NFC_M::Unmount, "Unmount"}, + {0x0009, &NFC_M::Flush, "Flush"}, + {0x000A, nullptr, "Restore"}, + {0x000B, &NFC_M::GetActivateEvent, "GetActivateEvent"}, + {0x000C, &NFC_M::GetDeactivateEvent, "GetDeactivateEvent"}, + {0x000D, &NFC_M::GetStatus, "GetStatus"}, + {0x000E, nullptr, "Unknown0x0E"}, + {0x000F, &NFC_M::GetTargetConnectionStatus, "GetTargetConnectionStatus"}, + {0x0010, &NFC_M::GetTagInfo2, "GetTagInfo2"}, + {0x0011, &NFC_M::GetTagInfo, "GetTagInfo"}, + {0x0012, &NFC_M::GetConnectResult, "GetConnectResult"}, + {0x0013, &NFC_M::OpenApplicationArea, "OpenApplicationArea"}, + {0x0014, &NFC_M::CreateApplicationArea, "CreateApplicationArea"}, + {0x0015, &NFC_M::ReadApplicationArea, "ReadApplicationArea"}, + {0x0016, &NFC_M::WriteApplicationArea, "WriteApplicationArea"}, + {0x0017, &NFC_M::GetNfpRegisterInfo, "GetNfpRegisterInfo"}, + {0x0018, &NFC_M::GetNfpCommonInfo, "GetNfpCommonInfo"}, + {0x0019, &NFC_M::InitializeCreateInfo, "InitializeCreateInfo"}, + {0x001A, &NFC_M::MountRom, "MountRom"}, + {0x001B, &NFC_M::GetIdentificationBlock, "GetIdentificationBlock"}, // nfc:m - {IPC::MakeHeader(0x0401, 3, 2), &NFC_M::Format, "Format"}, - {IPC::MakeHeader(0x0402, 0, 0), &NFC_M::GetAdminInfo, "GetAdminInfo"}, - {IPC::MakeHeader(0x0403, 0, 0), &NFC_M::GetEmptyRegisterInfo, "GetEmptyRegisterInfo"}, - {IPC::MakeHeader(0x0404, 41, 0), &NFC_M::SetRegisterInfo, "SetRegisterInfo"}, - {IPC::MakeHeader(0x0405, 0, 0), &NFC_M::DeleteRegisterInfo, "DeleteRegisterInfo"}, - {IPC::MakeHeader(0x0406, 0, 0), &NFC_M::DeleteApplicationArea, "DeleteApplicationArea"}, - {IPC::MakeHeader(0x0407, 0, 0), &NFC_M::ExistsApplicationArea, "ExistsApplicationArea"} + {0x0401, &NFC_M::Format, "Format"}, + {0x0402, &NFC_M::GetAdminInfo, "GetAdminInfo"}, + {0x0403, &NFC_M::GetEmptyRegisterInfo, "GetEmptyRegisterInfo"}, + {0x0404, &NFC_M::SetRegisterInfo, "SetRegisterInfo"}, + {0x0405, &NFC_M::DeleteRegisterInfo, "DeleteRegisterInfo"}, + {0x0406, &NFC_M::DeleteApplicationArea, "DeleteApplicationArea"}, + {0x0407, &NFC_M::ExistsApplicationArea, "ExistsApplicationArea"} // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/nfc/nfc_u.cpp b/src/core/hle/service/nfc/nfc_u.cpp index eca1812fa..7345407fb 100644 --- a/src/core/hle/service/nfc/nfc_u.cpp +++ b/src/core/hle/service/nfc/nfc_u.cpp @@ -12,40 +12,40 @@ namespace Service::NFC { NFC_U::NFC_U(std::shared_ptr nfc) : Module::Interface(std::move(nfc), "nfc:u", 1) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &NFC_U::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0002, 1, 0), &NFC_U::Finalize, "Finalize"}, - {IPC::MakeHeader(0x0003, 0, 0), &NFC_U::Connect, "Connect"}, - {IPC::MakeHeader(0x0004, 0, 0), &NFC_U::Disconnect, "Disconnect"}, - {IPC::MakeHeader(0x0005, 1, 0), &NFC_U::StartDetection, "StartDetection"}, - {IPC::MakeHeader(0x0006, 0, 0), &NFC_U::StopDetection, "StopDetection"}, - {IPC::MakeHeader(0x0007, 0, 0), &NFC_U::Mount, "Mount"}, - {IPC::MakeHeader(0x0008, 0, 0), &NFC_U::Unmount, "Unmount"}, - {IPC::MakeHeader(0x0009, 0, 2), &NFC_U::Flush, "Flush"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "Restore"}, - {IPC::MakeHeader(0x000B, 0, 0), &NFC_U::GetActivateEvent, "GetActivateEvent"}, - {IPC::MakeHeader(0x000C, 0, 0), &NFC_U::GetDeactivateEvent, "GetDeactivateEvent"}, - {IPC::MakeHeader(0x000D, 0, 0), &NFC_U::GetStatus, "GetStatus"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "Unknown0x0E"}, - {IPC::MakeHeader(0x000F, 0, 0), &NFC_U::GetTargetConnectionStatus, "GetTargetConnectionStatus"}, - {IPC::MakeHeader(0x0010, 0, 0), &NFC_U::GetTagInfo2, "GetTagInfo2"}, - {IPC::MakeHeader(0x0011, 0, 0), &NFC_U::GetTagInfo, "GetTagInfo"}, - {IPC::MakeHeader(0x0012, 0, 0), &NFC_U::GetConnectResult, "GetConnectResult"}, - {IPC::MakeHeader(0x0013, 1, 0), &NFC_U::OpenApplicationArea, "OpenApplicationArea"}, - {IPC::MakeHeader(0x0014, 14, 4), &NFC_U::CreateApplicationArea, "CreateApplicationArea"}, - {IPC::MakeHeader(0x0015, 1, 0), &NFC_U::ReadApplicationArea, "ReadApplicationArea"}, - {IPC::MakeHeader(0x0016, 9, 2), &NFC_U::WriteApplicationArea, "WriteApplicationArea"}, - {IPC::MakeHeader(0x0017, 0, 0), &NFC_U::GetNfpRegisterInfo, "GetNfpRegisterInfo"}, - {IPC::MakeHeader(0x0018, 0, 0), &NFC_U::GetNfpCommonInfo, "GetNfpCommonInfo"}, - {IPC::MakeHeader(0x0019, 0, 0), &NFC_U::InitializeCreateInfo, "InitializeCreateInfo"}, - {IPC::MakeHeader(0x001A, 0, 0), &NFC_U::MountRom, "MountRom"}, - {IPC::MakeHeader(0x001B, 0, 0), &NFC_U::GetIdentificationBlock, "GetIdentificationBlock"}, - {IPC::MakeHeader(0x001C, 0, 0), nullptr, "Unknown0x1C"}, - {IPC::MakeHeader(0x001D, 0, 0), nullptr, "Unknown0x1D"}, - {IPC::MakeHeader(0x001E, 0, 0), nullptr, "Unknown0x1E"}, - {IPC::MakeHeader(0x001F, 0, 0), nullptr, "Unknown0x1F"}, - {IPC::MakeHeader(0x0020, 0, 0), nullptr, "Unknown0x20"}, - {IPC::MakeHeader(0x0021, 0, 0), nullptr, "Unknown0x21"}, - {IPC::MakeHeader(0x0022, 0, 0), nullptr, "Unknown0x22"}, + {0x0001, &NFC_U::Initialize, "Initialize"}, + {0x0002, &NFC_U::Finalize, "Finalize"}, + {0x0003, &NFC_U::Connect, "Connect"}, + {0x0004, &NFC_U::Disconnect, "Disconnect"}, + {0x0005, &NFC_U::StartDetection, "StartDetection"}, + {0x0006, &NFC_U::StopDetection, "StopDetection"}, + {0x0007, &NFC_U::Mount, "Mount"}, + {0x0008, &NFC_U::Unmount, "Unmount"}, + {0x0009, &NFC_U::Flush, "Flush"}, + {0x000A, nullptr, "Restore"}, + {0x000B, &NFC_U::GetActivateEvent, "GetActivateEvent"}, + {0x000C, &NFC_U::GetDeactivateEvent, "GetDeactivateEvent"}, + {0x000D, &NFC_U::GetStatus, "GetStatus"}, + {0x000E, nullptr, "Unknown0x0E"}, + {0x000F, &NFC_U::GetTargetConnectionStatus, "GetTargetConnectionStatus"}, + {0x0010, &NFC_U::GetTagInfo2, "GetTagInfo2"}, + {0x0011, &NFC_U::GetTagInfo, "GetTagInfo"}, + {0x0012, &NFC_U::GetConnectResult, "GetConnectResult"}, + {0x0013, &NFC_U::OpenApplicationArea, "OpenApplicationArea"}, + {0x0014, &NFC_U::CreateApplicationArea, "CreateApplicationArea"}, + {0x0015, &NFC_U::ReadApplicationArea, "ReadApplicationArea"}, + {0x0016, &NFC_U::WriteApplicationArea, "WriteApplicationArea"}, + {0x0017, &NFC_U::GetNfpRegisterInfo, "GetNfpRegisterInfo"}, + {0x0018, &NFC_U::GetNfpCommonInfo, "GetNfpCommonInfo"}, + {0x0019, &NFC_U::InitializeCreateInfo, "InitializeCreateInfo"}, + {0x001A, &NFC_U::MountRom, "MountRom"}, + {0x001B, &NFC_U::GetIdentificationBlock, "GetIdentificationBlock"}, + {0x001C, nullptr, "Unknown0x1C"}, + {0x001D, nullptr, "Unknown0x1D"}, + {0x001E, nullptr, "Unknown0x1E"}, + {0x001F, nullptr, "Unknown0x1F"}, + {0x0020, nullptr, "Unknown0x20"}, + {0x0021, nullptr, "Unknown0x21"}, + {0x0022, nullptr, "Unknown0x22"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/nim/nim_aoc.cpp b/src/core/hle/service/nim/nim_aoc.cpp index ee2222efb..27137a2bc 100644 --- a/src/core/hle/service/nim/nim_aoc.cpp +++ b/src/core/hle/service/nim/nim_aoc.cpp @@ -12,14 +12,14 @@ namespace Service::NIM { NIM_AOC::NIM_AOC() : ServiceFramework("nim:aoc", 2) { const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0003, 1, 2), nullptr, "SetApplicationId"}, - {IPC::MakeHeader(0x0004, 1, 2), nullptr, "SetTin"}, - {IPC::MakeHeader(0x0009, 11, 16), nullptr, "ListContentSetsEx"}, - {IPC::MakeHeader(0x0018, 0, 0), nullptr, "GetBalance"}, - {IPC::MakeHeader(0x001D, 0, 0), nullptr, "GetCustomerSupportCode"}, - {IPC::MakeHeader(0x0021, 0, 0), nullptr, "Initialize"}, - {IPC::MakeHeader(0x0024, 10, 2), nullptr, "CalculateContentsRequiredSize"}, - {IPC::MakeHeader(0x0025, 0, 0), nullptr, "RefreshServerTime"}, + {0x0003, nullptr, "SetApplicationId"}, + {0x0004, nullptr, "SetTin"}, + {0x0009, nullptr, "ListContentSetsEx"}, + {0x0018, nullptr, "GetBalance"}, + {0x001D, nullptr, "GetCustomerSupportCode"}, + {0x0021, nullptr, "Initialize"}, + {0x0024, nullptr, "CalculateContentsRequiredSize"}, + {0x0025, nullptr, "RefreshServerTime"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/nim/nim_s.cpp b/src/core/hle/service/nim/nim_s.cpp index 7040f66ab..06d91043f 100644 --- a/src/core/hle/service/nim/nim_s.cpp +++ b/src/core/hle/service/nim/nim_s.cpp @@ -12,11 +12,11 @@ namespace Service::NIM { NIM_S::NIM_S() : ServiceFramework("nim:s", 1) { const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "CheckSysupdateAvailableSOAP"}, - {IPC::MakeHeader(0x0016, 8, 10), nullptr, "ListTitles"}, - {IPC::MakeHeader(0x0029, 0, 0), nullptr, "AccountCheckBalanceSOAP"}, - {IPC::MakeHeader(0x002D, 1, 2), nullptr, "DownloadTickets"}, - {IPC::MakeHeader(0x0042, 9, 0), nullptr, "StartDownload"}, + {0x000A, nullptr, "CheckSysupdateAvailableSOAP"}, + {0x0016, nullptr, "ListTitles"}, + {0x0029, nullptr, "AccountCheckBalanceSOAP"}, + {0x002D, nullptr, "DownloadTickets"}, + {0x0042, nullptr, "StartDownload"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/nim/nim_u.cpp b/src/core/hle/service/nim/nim_u.cpp index 3f7f8a50b..153e86643 100644 --- a/src/core/hle/service/nim/nim_u.cpp +++ b/src/core/hle/service/nim/nim_u.cpp @@ -126,52 +126,52 @@ static_assert(sizeof(AutoDbgDat) == 0x108, "AutoDbgDat structure size is wrong") NIM_U::NIM_U(Core::System& system) : ServiceFramework("nim:u", 2) { const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 0), &NIM_U::StartNetworkUpdate, "StartNetworkUpdate"}, - {IPC::MakeHeader(0x0002, 0, 0), &NIM_U::GetProgress, "GetProgress"}, - {IPC::MakeHeader(0x0003, 0, 0), &NIM_U::Cancel, "Cancel"}, - {IPC::MakeHeader(0x0004, 0, 0), &NIM_U::CommitSystemTitles, "CommitSystemTitles"}, - {IPC::MakeHeader(0x0005, 0, 0), &NIM_U::GetBackgroundEventForMenu, "GetBackgroundEventForMenu"}, - {IPC::MakeHeader(0x0006, 0, 0), &NIM_U::GetBackgroundEventForNews, "GetBackgroundEventForNews"}, - {IPC::MakeHeader(0x0007, 0, 0), &NIM_U::FormatSaveData, "FormatSaveData"}, - {IPC::MakeHeader(0x0008, 0, 0), &NIM_U::GetCustomerSupportCode, "GetCustomerSupportCode"}, - {IPC::MakeHeader(0x0009, 0, 0), &NIM_U::IsCommittableAllSystemTitles, "IsCommittableAllSystemTitles"}, - {IPC::MakeHeader(0x000A, 0, 0), &NIM_U::GetBackgroundProgress, "GetBackgroundProgress"}, - {IPC::MakeHeader(0x000B, 0, 0), &NIM_U::GetSavedHash, "GetSavedHash"}, - {IPC::MakeHeader(0x000C, 2, 2), &NIM_U::UnregisterTask, "UnregisterTask"}, - {IPC::MakeHeader(0x000D, 2, 0), &NIM_U::IsRegistered, "IsRegistered"}, - {IPC::MakeHeader(0x000E, 2, 0), &NIM_U::FindTaskInfo, "FindTaskInfo"}, - {IPC::MakeHeader(0x000F, 1, 2), &NIM_U::GetTaskInfos, "GetTaskInfos"}, - {IPC::MakeHeader(0x0010, 0, 0), &NIM_U::DeleteUnmanagedContexts, "DeleteUnmanagedContexts"}, - {IPC::MakeHeader(0x0011, 0, 0), &NIM_U::UpdateAutoTitleDownloadTasksAsync, "UpdateAutoTitleDownloadTasksAsync"}, - {IPC::MakeHeader(0x0012, 0, 0), &NIM_U::StartPendingAutoTitleDownloadTasksAsync, "StartPendingAutoTitleDownloadTasksAsync"}, - {IPC::MakeHeader(0x0013, 0, 0), &NIM_U::GetAsyncResult, "GetAsyncResult"}, - {IPC::MakeHeader(0x0014, 0, 0), &NIM_U::CancelAsyncCall, "CancelAsyncCall"}, - {IPC::MakeHeader(0x0015, 0, 0), &NIM_U::IsPendingAutoTitleDownloadTasks, "IsPendingAutoTitleDownloadTasks"}, - {IPC::MakeHeader(0x0016, 0, 0), &NIM_U::GetNumAutoTitleDownloadTasks, "GetNumAutoTitleDownloadTasks"}, - {IPC::MakeHeader(0x0017, 1, 2), &NIM_U::GetAutoTitleDownloadTaskInfos, "GetAutoTitleDownloadTaskInfos"}, - {IPC::MakeHeader(0x0018, 2, 0), &NIM_U::CancelAutoTitleDownloadTask, "CancelAutoTitleDownloadTask"}, - {IPC::MakeHeader(0x0019, 0, 2), &NIM_U::SetAutoDbgDat, "SetAutoDbgDat"}, - {IPC::MakeHeader(0x001A, 0, 2), &NIM_U::GetAutoDbgDat, "GetAutoDbgDat"}, - {IPC::MakeHeader(0x001B, 1, 2), &NIM_U::SetDbgTasks, "SetDbgTasks"}, - {IPC::MakeHeader(0x001C, 1, 2), &NIM_U::GetDbgTasks, "GetDbgTasks"}, - {IPC::MakeHeader(0x001D, 0, 0), &NIM_U::DeleteDbgData, "DeleteDbgData"}, - {IPC::MakeHeader(0x001E, 1, 2), &NIM_U::SetTslXml, "SetTslXml"}, - {IPC::MakeHeader(0x001F, 0, 0), &NIM_U::GetTslXmlSize, "GetTslXmlSize"}, - {IPC::MakeHeader(0x0020, 1, 2), &NIM_U::GetTslXml, "GetTslXml"}, - {IPC::MakeHeader(0x0021, 0, 0), &NIM_U::DeleteTslXml, "DeleteTslXml"}, - {IPC::MakeHeader(0x0022, 1, 2), &NIM_U::SetDtlXml, "SetDtlXml"}, - {IPC::MakeHeader(0x0023, 0, 0), &NIM_U::GetDtlXmlSize, "GetDtlXmlSize"}, - {IPC::MakeHeader(0x0024, 1, 2), &NIM_U::GetDtlXml, "GetDtlXml"}, - {IPC::MakeHeader(0x0025, 0, 0), &NIM_U::UpdateAccountStatus, "UpdateAccountStatus"}, - {IPC::MakeHeader(0x0026, 6, 0), &NIM_U::StartTitleDownload, "StartTitleDownload"}, - {IPC::MakeHeader(0x0027, 0, 0), &NIM_U::StopTitleDownload, "StopTitleDownload"}, - {IPC::MakeHeader(0x0028, 0, 0), &NIM_U::GetTitleDownloadProgress, "GetTitleDownloadProgress"}, - {IPC::MakeHeader(0x0029, 9, 6), &NIM_U::RegisterTask, "RegisterTask"}, - {IPC::MakeHeader(0x002A, 0, 0), &NIM_U::IsSystemUpdateAvailable, "IsSystemUpdateAvailable"}, - {IPC::MakeHeader(0x002B, 0, 0), &NIM_U::Unknown2B, "Unknown2B"}, - {IPC::MakeHeader(0x002C, 0, 0), &NIM_U::UpdateTickets, "UpdateTickets"}, - {IPC::MakeHeader(0x002D, 3, 0), &NIM_U::DownloadTitleSeedAsync, "DownloadTitleSeedAsync"}, - {IPC::MakeHeader(0x002E, 0, 0), &NIM_U::DownloadMissingTitleSeedsAsync, "DownloadMissingTitleSeedsAsync"}, + {0x0001, &NIM_U::StartNetworkUpdate, "StartNetworkUpdate"}, + {0x0002, &NIM_U::GetProgress, "GetProgress"}, + {0x0003, &NIM_U::Cancel, "Cancel"}, + {0x0004, &NIM_U::CommitSystemTitles, "CommitSystemTitles"}, + {0x0005, &NIM_U::GetBackgroundEventForMenu, "GetBackgroundEventForMenu"}, + {0x0006, &NIM_U::GetBackgroundEventForNews, "GetBackgroundEventForNews"}, + {0x0007, &NIM_U::FormatSaveData, "FormatSaveData"}, + {0x0008, &NIM_U::GetCustomerSupportCode, "GetCustomerSupportCode"}, + {0x0009, &NIM_U::IsCommittableAllSystemTitles, "IsCommittableAllSystemTitles"}, + {0x000A, &NIM_U::GetBackgroundProgress, "GetBackgroundProgress"}, + {0x000B, &NIM_U::GetSavedHash, "GetSavedHash"}, + {0x000C, &NIM_U::UnregisterTask, "UnregisterTask"}, + {0x000D, &NIM_U::IsRegistered, "IsRegistered"}, + {0x000E, &NIM_U::FindTaskInfo, "FindTaskInfo"}, + {0x000F, &NIM_U::GetTaskInfos, "GetTaskInfos"}, + {0x0010, &NIM_U::DeleteUnmanagedContexts, "DeleteUnmanagedContexts"}, + {0x0011, &NIM_U::UpdateAutoTitleDownloadTasksAsync, "UpdateAutoTitleDownloadTasksAsync"}, + {0x0012, &NIM_U::StartPendingAutoTitleDownloadTasksAsync, "StartPendingAutoTitleDownloadTasksAsync"}, + {0x0013, &NIM_U::GetAsyncResult, "GetAsyncResult"}, + {0x0014, &NIM_U::CancelAsyncCall, "CancelAsyncCall"}, + {0x0015, &NIM_U::IsPendingAutoTitleDownloadTasks, "IsPendingAutoTitleDownloadTasks"}, + {0x0016, &NIM_U::GetNumAutoTitleDownloadTasks, "GetNumAutoTitleDownloadTasks"}, + {0x0017, &NIM_U::GetAutoTitleDownloadTaskInfos, "GetAutoTitleDownloadTaskInfos"}, + {0x0018, &NIM_U::CancelAutoTitleDownloadTask, "CancelAutoTitleDownloadTask"}, + {0x0019, &NIM_U::SetAutoDbgDat, "SetAutoDbgDat"}, + {0x001A, &NIM_U::GetAutoDbgDat, "GetAutoDbgDat"}, + {0x001B, &NIM_U::SetDbgTasks, "SetDbgTasks"}, + {0x001C, &NIM_U::GetDbgTasks, "GetDbgTasks"}, + {0x001D, &NIM_U::DeleteDbgData, "DeleteDbgData"}, + {0x001E, &NIM_U::SetTslXml, "SetTslXml"}, + {0x001F, &NIM_U::GetTslXmlSize, "GetTslXmlSize"}, + {0x0020, &NIM_U::GetTslXml, "GetTslXml"}, + {0x0021, &NIM_U::DeleteTslXml, "DeleteTslXml"}, + {0x0022, &NIM_U::SetDtlXml, "SetDtlXml"}, + {0x0023, &NIM_U::GetDtlXmlSize, "GetDtlXmlSize"}, + {0x0024, &NIM_U::GetDtlXml, "GetDtlXml"}, + {0x0025, &NIM_U::UpdateAccountStatus, "UpdateAccountStatus"}, + {0x0026, &NIM_U::StartTitleDownload, "StartTitleDownload"}, + {0x0027, &NIM_U::StopTitleDownload, "StopTitleDownload"}, + {0x0028, &NIM_U::GetTitleDownloadProgress, "GetTitleDownloadProgress"}, + {0x0029, &NIM_U::RegisterTask, "RegisterTask"}, + {0x002A, &NIM_U::IsSystemUpdateAvailable, "IsSystemUpdateAvailable"}, + {0x002B, &NIM_U::Unknown2B, "Unknown2B"}, + {0x002C, &NIM_U::UpdateTickets, "UpdateTickets"}, + {0x002D, &NIM_U::DownloadTitleSeedAsync, "DownloadTitleSeedAsync"}, + {0x002E, &NIM_U::DownloadMissingTitleSeedsAsync, "DownloadMissingTitleSeedsAsync"}, // clang-format on }; RegisterHandlers(functions); @@ -186,7 +186,7 @@ NIM_U::NIM_U(Core::System& system) : ServiceFramework("nim:u", 2) { NIM_U::~NIM_U() = default; void NIM_U::StartNetworkUpdate(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1, 0, 0); // 0x10000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -195,7 +195,7 @@ void NIM_U::StartNetworkUpdate(Kernel::HLERequestContext& ctx) { } void NIM_U::GetProgress(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2, 0, 0); // 0x20000 + IPC::RequestParser rp(ctx); SystemUpdateProgress progress{}; std::memset(&progress, 0, sizeof(progress)); @@ -210,7 +210,7 @@ void NIM_U::GetProgress(Kernel::HLERequestContext& ctx) { } void NIM_U::Cancel(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x3, 0, 0); // 0x30000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -219,7 +219,7 @@ void NIM_U::Cancel(Kernel::HLERequestContext& ctx) { } void NIM_U::CommitSystemTitles(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x4, 0, 0); // 0x40000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -228,7 +228,7 @@ void NIM_U::CommitSystemTitles(Kernel::HLERequestContext& ctx) { } void NIM_U::GetBackgroundEventForMenu(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x5, 0, 0); // 0x50000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); rb.Push(RESULT_SUCCESS); @@ -238,7 +238,7 @@ void NIM_U::GetBackgroundEventForMenu(Kernel::HLERequestContext& ctx) { } void NIM_U::GetBackgroundEventForNews(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x6, 0, 0); // 0x60000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); rb.Push(RESULT_SUCCESS); @@ -248,7 +248,7 @@ void NIM_U::GetBackgroundEventForNews(Kernel::HLERequestContext& ctx) { } void NIM_U::FormatSaveData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x7, 0, 0); // 0x70000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -257,7 +257,7 @@ void NIM_U::FormatSaveData(Kernel::HLERequestContext& ctx) { } void NIM_U::GetCustomerSupportCode(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x8, 0, 0); // 0x80000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -267,7 +267,7 @@ void NIM_U::GetCustomerSupportCode(Kernel::HLERequestContext& ctx) { } void NIM_U::IsCommittableAllSystemTitles(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 0, 0); // 0x90000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -277,7 +277,7 @@ void NIM_U::IsCommittableAllSystemTitles(Kernel::HLERequestContext& ctx) { } void NIM_U::GetBackgroundProgress(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xA, 0, 0); // 0xA0000 + IPC::RequestParser rp(ctx); SystemUpdateProgress progress{}; std::memset(&progress, 0, sizeof(progress)); @@ -292,7 +292,7 @@ void NIM_U::GetBackgroundProgress(Kernel::HLERequestContext& ctx) { } void NIM_U::GetSavedHash(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xB, 0, 0); // 0xB0000 + IPC::RequestParser rp(ctx); std::array hash{}; std::memset(&hash, 0, sizeof(hash)); @@ -305,7 +305,7 @@ void NIM_U::GetSavedHash(Kernel::HLERequestContext& ctx) { } void NIM_U::UnregisterTask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xC, 2, 2); // 0xC0082 + IPC::RequestParser rp(ctx); const u64 title_id = rp.Pop(); const u32 process_id = rp.PopPID(); @@ -319,7 +319,7 @@ void NIM_U::UnregisterTask(Kernel::HLERequestContext& ctx) { } void NIM_U::IsRegistered(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xD, 2, 0); // 0xD0080 + IPC::RequestParser rp(ctx); const u64 title_id = rp.Pop(); @@ -331,7 +331,7 @@ void NIM_U::IsRegistered(Kernel::HLERequestContext& ctx) { } void NIM_U::FindTaskInfo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xE, 2, 0); // 0xE0080 + IPC::RequestParser rp(ctx); const u64 title_id = rp.Pop(); @@ -346,7 +346,7 @@ void NIM_U::FindTaskInfo(Kernel::HLERequestContext& ctx) { } void NIM_U::GetTaskInfos(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xF, 1, 2); // 0xF0042 + IPC::RequestParser rp(ctx); const u64 max_task_infos = rp.Pop(); auto& task_infos_buffer = rp.PopMappedBuffer(); @@ -361,7 +361,7 @@ void NIM_U::GetTaskInfos(Kernel::HLERequestContext& ctx) { } void NIM_U::DeleteUnmanagedContexts(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 0, 0); // 0x100000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -370,7 +370,7 @@ void NIM_U::DeleteUnmanagedContexts(Kernel::HLERequestContext& ctx) { } void NIM_U::UpdateAutoTitleDownloadTasksAsync(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 0, 0); // 0x110000 + IPC::RequestParser rp(ctx); // Since this is a stub, signal the completion event so the caller won't get stuck waiting. nim_async_completion_event->Signal(); @@ -383,7 +383,7 @@ void NIM_U::UpdateAutoTitleDownloadTasksAsync(Kernel::HLERequestContext& ctx) { } void NIM_U::StartPendingAutoTitleDownloadTasksAsync(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 0, 0); // 0x120000 + IPC::RequestParser rp(ctx); // Since this is a stub, signal the completion event so the caller won't get stuck waiting. nim_async_completion_event->Signal(); @@ -396,7 +396,7 @@ void NIM_U::StartPendingAutoTitleDownloadTasksAsync(Kernel::HLERequestContext& c } void NIM_U::GetAsyncResult(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x13, 0, 0); // 0x130000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); rb.Push(RESULT_SUCCESS); @@ -407,7 +407,7 @@ void NIM_U::GetAsyncResult(Kernel::HLERequestContext& ctx) { } void NIM_U::CancelAsyncCall(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 0, 0); // 0x140000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -416,7 +416,7 @@ void NIM_U::CancelAsyncCall(Kernel::HLERequestContext& ctx) { } void NIM_U::IsPendingAutoTitleDownloadTasks(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x15, 0, 0); // 0x150000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -426,7 +426,7 @@ void NIM_U::IsPendingAutoTitleDownloadTasks(Kernel::HLERequestContext& ctx) { } void NIM_U::GetNumAutoTitleDownloadTasks(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 0, 0); // 0x160000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -436,7 +436,7 @@ void NIM_U::GetNumAutoTitleDownloadTasks(Kernel::HLERequestContext& ctx) { } void NIM_U::GetAutoTitleDownloadTaskInfos(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 1, 2); // 0x170042 + IPC::RequestParser rp(ctx); const u64 max_task_infos = rp.Pop(); auto& task_infos_buffer = rp.PopMappedBuffer(); @@ -451,7 +451,7 @@ void NIM_U::GetAutoTitleDownloadTaskInfos(Kernel::HLERequestContext& ctx) { } void NIM_U::CancelAutoTitleDownloadTask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x18, 2, 0); // 0x180080 + IPC::RequestParser rp(ctx); const u64 task_id = rp.Pop(); @@ -462,7 +462,7 @@ void NIM_U::CancelAutoTitleDownloadTask(Kernel::HLERequestContext& ctx) { } void NIM_U::SetAutoDbgDat(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x19, 0, 2); // 0x190002 + IPC::RequestParser rp(ctx); auto& auto_dbg_dat_buffer = rp.PopMappedBuffer(); @@ -475,7 +475,7 @@ void NIM_U::SetAutoDbgDat(Kernel::HLERequestContext& ctx) { } void NIM_U::GetAutoDbgDat(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1A, 0, 2); // 0x1A0002 + IPC::RequestParser rp(ctx); auto& auto_dbg_dat_buffer = rp.PopMappedBuffer(); @@ -488,7 +488,7 @@ void NIM_U::GetAutoDbgDat(Kernel::HLERequestContext& ctx) { } void NIM_U::SetDbgTasks(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1B, 1, 2); // 0x1B0042 + IPC::RequestParser rp(ctx); const u64 max_task_infos = rp.Pop(); auto& task_infos_buffer = rp.PopMappedBuffer(); @@ -502,7 +502,7 @@ void NIM_U::SetDbgTasks(Kernel::HLERequestContext& ctx) { } void NIM_U::GetDbgTasks(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1C, 1, 2); // 0x1C0042 + IPC::RequestParser rp(ctx); const u64 max_task_infos = rp.Pop(); auto& task_infos_buffer = rp.PopMappedBuffer(); @@ -517,7 +517,7 @@ void NIM_U::GetDbgTasks(Kernel::HLERequestContext& ctx) { } void NIM_U::DeleteDbgData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1D, 0, 0); // 0x1D0000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -526,7 +526,7 @@ void NIM_U::DeleteDbgData(Kernel::HLERequestContext& ctx) { } void NIM_U::SetTslXml(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1E, 1, 2); // 0x1E0042 + IPC::RequestParser rp(ctx); const u32 buffer_size = rp.Pop(); auto& xml_buffer = rp.PopMappedBuffer(); @@ -540,7 +540,7 @@ void NIM_U::SetTslXml(Kernel::HLERequestContext& ctx) { } void NIM_U::GetTslXmlSize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1F, 0, 0); // 0x1F0000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); rb.Push(RESULT_SUCCESS); @@ -550,7 +550,7 @@ void NIM_U::GetTslXmlSize(Kernel::HLERequestContext& ctx) { } void NIM_U::GetTslXml(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x20, 1, 2); // 0x200042 + IPC::RequestParser rp(ctx); const u32 buffer_capacity = rp.Pop(); auto& xml_buffer = rp.PopMappedBuffer(); @@ -564,7 +564,7 @@ void NIM_U::GetTslXml(Kernel::HLERequestContext& ctx) { } void NIM_U::DeleteTslXml(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x21, 0, 0); // 0x210000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -573,7 +573,7 @@ void NIM_U::DeleteTslXml(Kernel::HLERequestContext& ctx) { } void NIM_U::SetDtlXml(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x22, 1, 2); // 0x220042 + IPC::RequestParser rp(ctx); const u32 buffer_size = rp.Pop(); auto& xml_buffer = rp.PopMappedBuffer(); @@ -587,7 +587,7 @@ void NIM_U::SetDtlXml(Kernel::HLERequestContext& ctx) { } void NIM_U::GetDtlXmlSize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x23, 0, 0); // 0x230000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); rb.Push(RESULT_SUCCESS); @@ -597,7 +597,7 @@ void NIM_U::GetDtlXmlSize(Kernel::HLERequestContext& ctx) { } void NIM_U::GetDtlXml(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x24, 1, 2); // 0x240042 + IPC::RequestParser rp(ctx); const u32 buffer_capacity = rp.Pop(); auto& xml_buffer = rp.PopMappedBuffer(); @@ -611,7 +611,7 @@ void NIM_U::GetDtlXml(Kernel::HLERequestContext& ctx) { } void NIM_U::UpdateAccountStatus(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x25, 0, 0); // 0x250000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); rb.Push(RESULT_SUCCESS); @@ -622,7 +622,7 @@ void NIM_U::UpdateAccountStatus(Kernel::HLERequestContext& ctx) { } void NIM_U::StartTitleDownload(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x26, 6, 0); // 0x260180 + IPC::RequestParser rp(ctx); const auto& download_config = rp.PopRaw(); @@ -633,7 +633,7 @@ void NIM_U::StartTitleDownload(Kernel::HLERequestContext& ctx) { } void NIM_U::StopTitleDownload(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x27, 0, 0); // 0x270000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -642,7 +642,7 @@ void NIM_U::StopTitleDownload(Kernel::HLERequestContext& ctx) { } void NIM_U::GetTitleDownloadProgress(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x28, 0, 0); // 0x280000 + IPC::RequestParser rp(ctx); TitleDownloadProgress progress{}; std::memset(&progress, 0, sizeof(progress)); @@ -657,7 +657,7 @@ void NIM_U::GetTitleDownloadProgress(Kernel::HLERequestContext& ctx) { } void NIM_U::RegisterTask(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x29, 9, 6); // 0x290246 + IPC::RequestParser rp(ctx); const auto& download_config = rp.PopRaw(); const u32 unknown_1 = rp.Pop(); @@ -686,7 +686,7 @@ void NIM_U::RegisterTask(Kernel::HLERequestContext& ctx) { } void NIM_U::IsSystemUpdateAvailable(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2A, 0, 0); // 0x2A0000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(4, 0); rb.Push(RESULT_SUCCESS); @@ -698,7 +698,7 @@ void NIM_U::IsSystemUpdateAvailable(Kernel::HLERequestContext& ctx) { } void NIM_U::Unknown2B(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2B, 0, 0); // 0x2B0000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -707,7 +707,7 @@ void NIM_U::Unknown2B(Kernel::HLERequestContext& ctx) { } void NIM_U::UpdateTickets(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2C, 0, 0); // 0x2C0000 + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(3, 0); rb.Push(RESULT_SUCCESS); @@ -718,7 +718,7 @@ void NIM_U::UpdateTickets(Kernel::HLERequestContext& ctx) { } void NIM_U::DownloadTitleSeedAsync(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2D, 3, 0); // 0x2D00C0 + IPC::RequestParser rp(ctx); const u64 title_id = rp.Pop(); const u16 country_code = rp.Pop(); @@ -735,7 +735,7 @@ void NIM_U::DownloadTitleSeedAsync(Kernel::HLERequestContext& ctx) { } void NIM_U::DownloadMissingTitleSeedsAsync(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2E, 0, 0); // 0x2E0000 + IPC::RequestParser rp(ctx); // Since this is a stub, signal the completion event so the caller won't get stuck waiting. nim_async_completion_event->Signal(); diff --git a/src/core/hle/service/nwm/nwm_cec.cpp b/src/core/hle/service/nwm/nwm_cec.cpp index c0a2d4393..416384045 100644 --- a/src/core/hle/service/nwm/nwm_cec.cpp +++ b/src/core/hle/service/nwm/nwm_cec.cpp @@ -12,7 +12,7 @@ namespace Service::NWM { NWM_CEC::NWM_CEC() : ServiceFramework("nwm::CEC") { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x000D, 2, 2), nullptr, "SendProbeRequest"}, + {0x000D, nullptr, "SendProbeRequest"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/nwm/nwm_ext.cpp b/src/core/hle/service/nwm/nwm_ext.cpp index 99c07cb94..f4831dce2 100644 --- a/src/core/hle/service/nwm/nwm_ext.cpp +++ b/src/core/hle/service/nwm/nwm_ext.cpp @@ -12,7 +12,7 @@ namespace Service::NWM { NWM_EXT::NWM_EXT() : ServiceFramework("nwm::EXT") { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0008, 1, 0), nullptr, "ControlWirelessEnabled"}, + {0x0008, nullptr, "ControlWirelessEnabled"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/nwm/nwm_inf.cpp b/src/core/hle/service/nwm/nwm_inf.cpp index b4f13addc..dca2cbaee 100644 --- a/src/core/hle/service/nwm/nwm_inf.cpp +++ b/src/core/hle/service/nwm/nwm_inf.cpp @@ -12,9 +12,9 @@ namespace Service::NWM { NWM_INF::NWM_INF() : ServiceFramework("nwm::INF") { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0006, 15, 4), nullptr, "RecvBeaconBroadcastData"}, - {IPC::MakeHeader(0x0007, 29, 2), nullptr, "ConnectToEncryptedAP"}, - {IPC::MakeHeader(0x0008, 12, 2), nullptr, "ConnectToAP"}, + {0x0006, nullptr, "RecvBeaconBroadcastData"}, + {0x0007, nullptr, "ConnectToEncryptedAP"}, + {0x0008, nullptr, "ConnectToAP"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/nwm/nwm_uds.cpp b/src/core/hle/service/nwm/nwm_uds.cpp index e22b9d780..c263003c4 100644 --- a/src/core/hle/service/nwm/nwm_uds.cpp +++ b/src/core/hle/service/nwm/nwm_uds.cpp @@ -569,7 +569,7 @@ boost::optional NWM_UDS::GetNodeMacAddress(u16 dest_node_id } void NWM_UDS::Shutdown(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 0, 0); + IPC::RequestParser rp(ctx); initialized = false; @@ -587,7 +587,7 @@ void NWM_UDS::Shutdown(Kernel::HLERequestContext& ctx) { } void NWM_UDS::RecvBeaconBroadcastData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0F, 16, 4); + IPC::RequestParser rp(ctx); u32 out_buffer_size = rp.Pop(); u32 unk1 = rp.Pop(); @@ -677,7 +677,7 @@ ResultVal> NWM_UDS::Initialize( } void NWM_UDS::InitializeWithVersion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1B, 12, 2); + IPC::RequestParser rp(ctx); u32 sharedmem_size = rp.Pop(); auto node = rp.PopRaw(); u16 version = rp.Pop(); @@ -694,7 +694,7 @@ void NWM_UDS::InitializeWithVersion(Kernel::HLERequestContext& ctx) { } void NWM_UDS::InitializeDeprecated(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 11, 2); + IPC::RequestParser rp(ctx); u32 sharedmem_size = rp.Pop(); auto node = rp.PopRaw(); auto sharedmem = rp.PopObject(); @@ -710,7 +710,7 @@ void NWM_UDS::InitializeDeprecated(Kernel::HLERequestContext& ctx) { } void NWM_UDS::GetConnectionStatus(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xB, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(13, 0); rb.Push(RESULT_SUCCESS); @@ -729,7 +729,7 @@ void NWM_UDS::GetConnectionStatus(Kernel::HLERequestContext& ctx) { } void NWM_UDS::GetNodeInformation(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xD, 1, 0); + IPC::RequestParser rp(ctx); u16 network_node_id = rp.Pop(); if (!initialized) { @@ -760,7 +760,7 @@ void NWM_UDS::GetNodeInformation(Kernel::HLERequestContext& ctx) { } void NWM_UDS::Bind(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 4, 0); + IPC::RequestParser rp(ctx); u32 bind_node_id = rp.Pop(); u32 recv_buffer_size = rp.Pop(); @@ -811,7 +811,7 @@ void NWM_UDS::Bind(Kernel::HLERequestContext& ctx) { } void NWM_UDS::Unbind(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 1, 0); + IPC::RequestParser rp(ctx); u32 bind_node_id = rp.Pop(); if (bind_node_id == 0) { @@ -911,7 +911,7 @@ ResultCode NWM_UDS::BeginHostingNetwork(std::span network_info_buffer, } void NWM_UDS::BeginHostingNetwork(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1D, 1, 4); + IPC::RequestParser rp(ctx); const u32 passphrase_size = rp.Pop(); @@ -929,7 +929,7 @@ void NWM_UDS::BeginHostingNetwork(Kernel::HLERequestContext& ctx) { } void NWM_UDS::BeginHostingNetworkDeprecated(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x04, 0x10, 2); + IPC::RequestParser rp(ctx); // Real NWM module reads 0x108 bytes from the command buffer into the network info, where the // last 0xCC bytes (application_data and size) are undefined values. Here we just read the first // 0x3C defined bytes and zero application_data in BeginHostingNetwork. @@ -947,7 +947,7 @@ void NWM_UDS::BeginHostingNetworkDeprecated(Kernel::HLERequestContext& ctx) { } void NWM_UDS::EjectClient(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 1, 0); + IPC::RequestParser rp(ctx); const u16 network_node_id = rp.Pop(); LOG_WARNING(Service_NWM, "(stubbed) called"); @@ -998,7 +998,7 @@ void NWM_UDS::EjectClient(Kernel::HLERequestContext& ctx) { } void NWM_UDS::UpdateNetworkAttribute(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x07, 2, 0); + IPC::RequestParser rp(ctx); rp.Skip(2, false); LOG_WARNING(Service_NWM, "stubbed"); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -1006,7 +1006,7 @@ void NWM_UDS::UpdateNetworkAttribute(Kernel::HLERequestContext& ctx) { } void NWM_UDS::DestroyNetwork(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x08, 0, 0); + IPC::RequestParser rp(ctx); // Unschedule the beacon broadcast event. system.CoreTiming().UnscheduleEvent(beacon_broadcast_event, 0); @@ -1044,7 +1044,7 @@ void NWM_UDS::DestroyNetwork(Kernel::HLERequestContext& ctx) { } void NWM_UDS::DisconnectNetwork(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xA, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); using Network::WifiPacket; @@ -1089,7 +1089,7 @@ void NWM_UDS::DisconnectNetwork(Kernel::HLERequestContext& ctx) { } void NWM_UDS::SendTo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 6, 2); + IPC::RequestParser rp(ctx); rp.Skip(1, false); u16 dest_node_id = rp.Pop(); @@ -1167,7 +1167,7 @@ void NWM_UDS::SendTo(Kernel::HLERequestContext& ctx) { } void NWM_UDS::PullPacket(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 3, 0); + IPC::RequestParser rp(ctx); u32 bind_node_id = rp.Pop(); u32 max_out_buff_size_aligned = rp.Pop(); @@ -1236,7 +1236,7 @@ void NWM_UDS::PullPacket(Kernel::HLERequestContext& ctx) { } void NWM_UDS::GetChannel(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1A, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); std::lock_guard lock(connection_status_mutex); @@ -1292,7 +1292,7 @@ void NWM_UDS::ConnectToNetwork(Kernel::HLERequestContext& ctx, u16 command_id, } void NWM_UDS::ConnectToNetwork(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1E, 2, 4); + IPC::RequestParser rp(ctx); const auto connection_type = rp.Pop(); [[maybe_unused]] const auto passphrase_size = rp.Pop(); @@ -1308,7 +1308,7 @@ void NWM_UDS::ConnectToNetwork(Kernel::HLERequestContext& ctx) { } void NWM_UDS::ConnectToNetworkDeprecated(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x09, 0x11, 2); + IPC::RequestParser rp(ctx); // Similar to BeginHostingNetworkDeprecated, we only read the first 0x3C bytes into the network // info @@ -1325,7 +1325,7 @@ void NWM_UDS::ConnectToNetworkDeprecated(Kernel::HLERequestContext& ctx) { } void NWM_UDS::SetApplicationData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 1, 2); + IPC::RequestParser rp(ctx); u32 size = rp.Pop(); @@ -1349,7 +1349,7 @@ void NWM_UDS::SetApplicationData(Kernel::HLERequestContext& ctx) { } void NWM_UDS::GetApplicationData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 1, 0); + IPC::RequestParser rp(ctx); u32 input_size = rp.Pop(); u8 appdata_size = network_info.application_data_size; @@ -1367,8 +1367,8 @@ void NWM_UDS::GetApplicationData(Kernel::HLERequestContext& ctx) { rb.PushStaticBuffer(std::move(appdata), 0); } -void NWM_UDS::DecryptBeaconData(Kernel::HLERequestContext& ctx, u16 command_id) { - IPC::RequestParser rp(ctx, command_id, 0, 6); +void NWM_UDS::DecryptBeaconData(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp(ctx); const std::vector network_struct_buffer = rp.PopStaticBuffer(); ASSERT(network_struct_buffer.size() == sizeof(NetworkInfo)); @@ -1433,11 +1433,6 @@ void NWM_UDS::DecryptBeaconData(Kernel::HLERequestContext& ctx, u16 command_id) rb.PushStaticBuffer(std::move(output_buffer), 0); } -template -void NWM_UDS::DecryptBeaconData(Kernel::HLERequestContext& ctx) { - DecryptBeaconData(ctx, command_id); -} - // Sends a 802.11 beacon frame with information about the current network. void NWM_UDS::BeaconBroadcastCallback(std::uintptr_t user_data, s64 cycles_late) { // Don't do anything if we're not actually hosting a network @@ -1464,35 +1459,35 @@ void NWM_UDS::BeaconBroadcastCallback(std::uintptr_t user_data, s64 cycles_late) NWM_UDS::NWM_UDS(Core::System& system) : ServiceFramework("nwm::UDS"), system(system) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 11, 2), &NWM_UDS::InitializeDeprecated, "Initialize (deprecated)"}, - {IPC::MakeHeader(0x0002, 0, 0), nullptr, "Scrap"}, - {IPC::MakeHeader(0x0003, 0, 0), &NWM_UDS::Shutdown, "Shutdown"}, - {IPC::MakeHeader(0x0004, 16, 2), &NWM_UDS::BeginHostingNetworkDeprecated, "BeginHostingNetwork (deprecated)"}, - {IPC::MakeHeader(0x0005, 1, 0), &NWM_UDS::EjectClient, "EjectClient"}, - {IPC::MakeHeader(0x0006, 0, 0), nullptr, "EjectSpectator"}, - {IPC::MakeHeader(0x0007, 2, 0), &NWM_UDS::UpdateNetworkAttribute, "UpdateNetworkAttribute"}, - {IPC::MakeHeader(0x0008, 0, 0), &NWM_UDS::DestroyNetwork, "DestroyNetwork"}, - {IPC::MakeHeader(0x0009, 17, 2), &NWM_UDS::ConnectToNetworkDeprecated, "ConnectToNetwork (deprecated)"}, - {IPC::MakeHeader(0x000A, 0, 0), &NWM_UDS::DisconnectNetwork, "DisconnectNetwork"}, - {IPC::MakeHeader(0x000B, 0, 0), &NWM_UDS::GetConnectionStatus, "GetConnectionStatus"}, - {IPC::MakeHeader(0x000D, 1, 0), &NWM_UDS::GetNodeInformation, "GetNodeInformation"}, - {IPC::MakeHeader(0x000E, 0, 6), &NWM_UDS::DecryptBeaconData<0x0E>, "DecryptBeaconData (deprecated)"}, - {IPC::MakeHeader(0x000F, 16, 4), &NWM_UDS::RecvBeaconBroadcastData, "RecvBeaconBroadcastData"}, - {IPC::MakeHeader(0x0010, 1, 2), &NWM_UDS::SetApplicationData, "SetApplicationData"}, - {IPC::MakeHeader(0x0011, 1, 0), &NWM_UDS::GetApplicationData, "GetApplicationData"}, - {IPC::MakeHeader(0x0012, 4, 0), &NWM_UDS::Bind, "Bind"}, - {IPC::MakeHeader(0x0013, 1, 0), &NWM_UDS::Unbind, "Unbind"}, - {IPC::MakeHeader(0x0014, 3, 0), &NWM_UDS::PullPacket, "PullPacket"}, - {IPC::MakeHeader(0x0015, 2, 0), nullptr, "SetMaxSendDelay"}, - {IPC::MakeHeader(0x0017, 6, 2), &NWM_UDS::SendTo, "SendTo"}, - {IPC::MakeHeader(0x001A, 0, 0), &NWM_UDS::GetChannel, "GetChannel"}, - {IPC::MakeHeader(0x001B, 12, 2), &NWM_UDS::InitializeWithVersion, "InitializeWithVersion"}, - {IPC::MakeHeader(0x001D, 1, 4), &NWM_UDS::BeginHostingNetwork, "BeginHostingNetwork"}, - {IPC::MakeHeader(0x001E, 2, 4), &NWM_UDS::ConnectToNetwork, "ConnectToNetwork"}, - {IPC::MakeHeader(0x001F, 0, 6), &NWM_UDS::DecryptBeaconData<0x1F>, "DecryptBeaconData"}, - {IPC::MakeHeader(0x0020, 1, 0), nullptr, "Flush"}, - {IPC::MakeHeader(0x0021, 2, 0), nullptr, "SetProbeResponseParam"}, - {IPC::MakeHeader(0x0022, 16, 2), nullptr, "ScanOnConnection"}, + {0x0001, &NWM_UDS::InitializeDeprecated, "Initialize (deprecated)"}, + {0x0002, nullptr, "Scrap"}, + {0x0003, &NWM_UDS::Shutdown, "Shutdown"}, + {0x0004, &NWM_UDS::BeginHostingNetworkDeprecated, "BeginHostingNetwork (deprecated)"}, + {0x0005, &NWM_UDS::EjectClient, "EjectClient"}, + {0x0006, nullptr, "EjectSpectator"}, + {0x0007, &NWM_UDS::UpdateNetworkAttribute, "UpdateNetworkAttribute"}, + {0x0008, &NWM_UDS::DestroyNetwork, "DestroyNetwork"}, + {0x0009, &NWM_UDS::ConnectToNetworkDeprecated, "ConnectToNetwork (deprecated)"}, + {0x000A, &NWM_UDS::DisconnectNetwork, "DisconnectNetwork"}, + {0x000B, &NWM_UDS::GetConnectionStatus, "GetConnectionStatus"}, + {0x000D, &NWM_UDS::GetNodeInformation, "GetNodeInformation"}, + {0x000E, &NWM_UDS::DecryptBeaconData, "DecryptBeaconData (deprecated)"}, + {0x000F, &NWM_UDS::RecvBeaconBroadcastData, "RecvBeaconBroadcastData"}, + {0x0010, &NWM_UDS::SetApplicationData, "SetApplicationData"}, + {0x0011, &NWM_UDS::GetApplicationData, "GetApplicationData"}, + {0x0012, &NWM_UDS::Bind, "Bind"}, + {0x0013, &NWM_UDS::Unbind, "Unbind"}, + {0x0014, &NWM_UDS::PullPacket, "PullPacket"}, + {0x0015, nullptr, "SetMaxSendDelay"}, + {0x0017, &NWM_UDS::SendTo, "SendTo"}, + {0x001A, &NWM_UDS::GetChannel, "GetChannel"}, + {0x001B, &NWM_UDS::InitializeWithVersion, "InitializeWithVersion"}, + {0x001D, &NWM_UDS::BeginHostingNetwork, "BeginHostingNetwork"}, + {0x001E, &NWM_UDS::ConnectToNetwork, "ConnectToNetwork"}, + {0x001F, &NWM_UDS::DecryptBeaconData, "DecryptBeaconData"}, + {0x0020, nullptr, "Flush"}, + {0x0021, nullptr, "SetProbeResponseParam"}, + {0x0022, nullptr, "ScanOnConnection"}, // clang-format on }; connection_status_event = diff --git a/src/core/hle/service/nwm/nwm_uds.h b/src/core/hle/service/nwm/nwm_uds.h index 45395b1be..ed8bf0791 100644 --- a/src/core/hle/service/nwm/nwm_uds.h +++ b/src/core/hle/service/nwm/nwm_uds.h @@ -443,9 +443,6 @@ private: * 1 : Result of function, 0 on success, otherwise error code * 2, 3: output buffer return descriptor & ptr */ - void DecryptBeaconData(Kernel::HLERequestContext& ctx, u16 command_id); - - template void DecryptBeaconData(Kernel::HLERequestContext& ctx); ResultVal> Initialize( diff --git a/src/core/hle/service/plgldr/plgldr.cpp b/src/core/hle/service/plgldr/plgldr.cpp index 62379dd8b..dd8fe7b6f 100644 --- a/src/core/hle/service/plgldr/plgldr.cpp +++ b/src/core/hle/service/plgldr/plgldr.cpp @@ -47,19 +47,19 @@ PAddr PLG_LDR::plugin_fb_addr = 0; PLG_LDR::PLG_LDR() : ServiceFramework{"plg:ldr", 1} { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 2), nullptr, "LoadPlugin"}, - {IPC::MakeHeader(0x0002, 0, 0), &PLG_LDR::IsEnabled, "IsEnabled"}, - {IPC::MakeHeader(0x0003, 1, 0), &PLG_LDR::SetEnabled, "SetEnabled"}, - {IPC::MakeHeader(0x0004, 2, 4), &PLG_LDR::SetLoadSettings, "SetLoadSettings"}, - {IPC::MakeHeader(0x0005, 1, 8), nullptr, "DisplayMenu"}, - {IPC::MakeHeader(0x0006, 0, 4), nullptr, "DisplayMessage"}, - {IPC::MakeHeader(0x0007, 1, 4), &PLG_LDR::DisplayErrorMessage, "DisplayErrorMessage"}, - {IPC::MakeHeader(0x0008, 0, 0), &PLG_LDR::GetPLGLDRVersion, "GetPLGLDRVersion"}, - {IPC::MakeHeader(0x0009, 0, 0), &PLG_LDR::GetArbiter, "GetArbiter"}, - {IPC::MakeHeader(0x000A, 0, 2), &PLG_LDR::GetPluginPath, "GetPluginPath"}, - {IPC::MakeHeader(0x000B, 1, 0), nullptr, "SetRosalinaMenuBlock"}, - {IPC::MakeHeader(0x000C, 2, 4), nullptr, "SetSwapParam"}, - {IPC::MakeHeader(0x000D, 1, 2), nullptr, "SetLoadExeParam"}, + {0x0001, nullptr, "LoadPlugin"}, + {0x0002, &PLG_LDR::IsEnabled, "IsEnabled"}, + {0x0003, &PLG_LDR::SetEnabled, "SetEnabled"}, + {0x0004, &PLG_LDR::SetLoadSettings, "SetLoadSettings"}, + {0x0005, nullptr, "DisplayMenu"}, + {0x0006, nullptr, "DisplayMessage"}, + {0x0007, &PLG_LDR::DisplayErrorMessage, "DisplayErrorMessage"}, + {0x0008, &PLG_LDR::GetPLGLDRVersion, "GetPLGLDRVersion"}, + {0x0009, &PLG_LDR::GetArbiter, "GetArbiter"}, + {0x000A, &PLG_LDR::GetPluginPath, "GetPluginPath"}, + {0x000B, nullptr, "SetRosalinaMenuBlock"}, + {0x000C, nullptr, "SetSwapParam"}, + {0x000D, nullptr, "SetLoadExeParam"}, // clang-format on }; RegisterHandlers(functions); @@ -156,7 +156,7 @@ void PLG_LDR::OnMemoryChanged(Kernel::Process& process, Kernel::KernelSystem& ke } void PLG_LDR::IsEnabled(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 2, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -164,7 +164,7 @@ void PLG_LDR::IsEnabled(Kernel::HLERequestContext& ctx) { } void PLG_LDR::SetEnabled(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 3, 1, 0); + IPC::RequestParser rp(ctx); bool enabled = rp.Pop() == 1; bool can_change = enabled == plgldr_context.is_enabled || allow_game_change; @@ -177,7 +177,7 @@ void PLG_LDR::SetEnabled(Kernel::HLERequestContext& ctx) { } void PLG_LDR::SetLoadSettings(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 4, 2, 4); + IPC::RequestParser rp(ctx); plgldr_context.use_user_load_parameters = true; plgldr_context.user_load_parameters.no_flash = rp.Pop() == 1; @@ -201,7 +201,7 @@ void PLG_LDR::SetLoadSettings(Kernel::HLERequestContext& ctx) { } void PLG_LDR::DisplayErrorMessage(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 7, 1, 4); + IPC::RequestParser rp(ctx); u32 error_code = rp.Pop(); auto title = rp.PopMappedBuffer(); auto desc = rp.PopMappedBuffer(); @@ -223,7 +223,7 @@ void PLG_LDR::DisplayErrorMessage(Kernel::HLERequestContext& ctx) { } void PLG_LDR::GetPLGLDRVersion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 8, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -231,7 +231,7 @@ void PLG_LDR::GetPLGLDRVersion(Kernel::HLERequestContext& ctx) { } void PLG_LDR::GetArbiter(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 9, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); // NOTE: It doesn't make sense to send an arbiter in HLE, as it's used to @@ -242,7 +242,7 @@ void PLG_LDR::GetArbiter(Kernel::HLERequestContext& ctx) { } void PLG_LDR::GetPluginPath(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 10, 0, 2); + IPC::RequestParser rp(ctx); auto path = rp.PopMappedBuffer(); // Same behaviour as strncpy diff --git a/src/core/hle/service/pm/pm_app.cpp b/src/core/hle/service/pm/pm_app.cpp index 3ed5e0ac1..ba14d1bdc 100644 --- a/src/core/hle/service/pm/pm_app.cpp +++ b/src/core/hle/service/pm/pm_app.cpp @@ -13,19 +13,19 @@ namespace Service::PM { PM_APP::PM_APP() : ServiceFramework("pm:app", 3) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 5, 0), nullptr, "LaunchTitle"}, - {IPC::MakeHeader(0x0002, 2, 2), nullptr, "LaunchFIRM"}, - {IPC::MakeHeader(0x0003, 2, 0), nullptr, "TerminateApplication"}, - {IPC::MakeHeader(0x0004, 4, 0), nullptr, "TerminateTitle"}, - {IPC::MakeHeader(0x0005, 3, 0), nullptr, "TerminateProcess"}, - {IPC::MakeHeader(0x0006, 2, 2), nullptr, "PrepareForReboot"}, - {IPC::MakeHeader(0x0007, 1, 2), nullptr, "GetFIRMLaunchParams"}, - {IPC::MakeHeader(0x0008, 4, 0), nullptr, "GetTitleExheaderFlags"}, - {IPC::MakeHeader(0x0009, 1, 2), nullptr, "SetFIRMLaunchParams"}, - {IPC::MakeHeader(0x000A, 5, 0), nullptr, "SetAppResourceLimit"}, - {IPC::MakeHeader(0x000B, 5, 0), nullptr, "GetAppResourceLimit"}, - {IPC::MakeHeader(0x000C, 2, 0), nullptr, "UnregisterProcess"}, - {IPC::MakeHeader(0x000D, 9, 0), nullptr, "LaunchTitleUpdate"}, + {0x0001, nullptr, "LaunchTitle"}, + {0x0002, nullptr, "LaunchFIRM"}, + {0x0003, nullptr, "TerminateApplication"}, + {0x0004, nullptr, "TerminateTitle"}, + {0x0005, nullptr, "TerminateProcess"}, + {0x0006, nullptr, "PrepareForReboot"}, + {0x0007, nullptr, "GetFIRMLaunchParams"}, + {0x0008, nullptr, "GetTitleExheaderFlags"}, + {0x0009, nullptr, "SetFIRMLaunchParams"}, + {0x000A, nullptr, "SetAppResourceLimit"}, + {0x000B, nullptr, "GetAppResourceLimit"}, + {0x000C, nullptr, "UnregisterProcess"}, + {0x000D, nullptr, "LaunchTitleUpdate"}, // clang-format on }; diff --git a/src/core/hle/service/pm/pm_dbg.cpp b/src/core/hle/service/pm/pm_dbg.cpp index e1577f695..50d1ff570 100644 --- a/src/core/hle/service/pm/pm_dbg.cpp +++ b/src/core/hle/service/pm/pm_dbg.cpp @@ -13,9 +13,9 @@ namespace Service::PM { PM_DBG::PM_DBG() : ServiceFramework("pm:dbg", 3) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 5, 0), nullptr, "LaunchAppDebug"}, - {IPC::MakeHeader(0x0002, 5, 0), nullptr, "LaunchApp"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "RunQueuedProcess"}, + {0x0001, nullptr, "LaunchAppDebug"}, + {0x0002, nullptr, "LaunchApp"}, + {0x0003, nullptr, "RunQueuedProcess"}, // clang-format on }; diff --git a/src/core/hle/service/ps/ps_ps.cpp b/src/core/hle/service/ps/ps_ps.cpp index e6b2d0f10..32026fa0c 100644 --- a/src/core/hle/service/ps/ps_ps.cpp +++ b/src/core/hle/service/ps/ps_ps.cpp @@ -40,7 +40,7 @@ constexpr std::array KeyTypes{{ }}; void PS_PS::EncryptDecryptAes(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x4, 8, 4); + IPC::RequestParser rp(ctx); auto src_size = rp.Pop(); [[maybe_unused]] const auto dest_size = rp.Pop(); @@ -149,22 +149,22 @@ void PS_PS::EncryptDecryptAes(Kernel::HLERequestContext& ctx) { PS_PS::PS_PS() : ServiceFramework("ps:ps", DefaultMaxSessions) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 9, 4), nullptr, "SignRsaSha256"}, - {IPC::MakeHeader(0x0002, 9, 4), nullptr, "VerifyRsaSha256"}, - {IPC::MakeHeader(0x0004, 8, 4), &PS_PS::EncryptDecryptAes, "EncryptDecryptAes"}, - {IPC::MakeHeader(0x0005, 10, 4), nullptr, "EncryptSignDecryptVerifyAesCcm"}, - {IPC::MakeHeader(0x0006, 1, 0), nullptr, "GetRomId"}, - {IPC::MakeHeader(0x0007, 1, 0), nullptr, "GetRomId2"}, - {IPC::MakeHeader(0x0008, 1, 0), nullptr, "GetRomMakerCode"}, - {IPC::MakeHeader(0x0009, 0, 0), nullptr, "GetCTRCardAutoStartupBit"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetLocalFriendCodeSeed"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "GetDeviceId"}, - {IPC::MakeHeader(0x000C, 0, 0), nullptr, "SeedRNG"}, - {IPC::MakeHeader(0x000D, 1, 2), nullptr, "GenerateRandomBytes"}, - {IPC::MakeHeader(0x000E, 2, 2), nullptr, "InterfaceForPXI_0x04010084"}, - {IPC::MakeHeader(0x000F, 2, 2), nullptr, "InterfaceForPXI_0x04020082"}, - {IPC::MakeHeader(0x0010, 1, 2), nullptr, "InterfaceForPXI_0x04030044"}, - {IPC::MakeHeader(0x0011, 1, 2), nullptr, "InterfaceForPXI_0x04040044"}, + {0x0001, nullptr, "SignRsaSha256"}, + {0x0002, nullptr, "VerifyRsaSha256"}, + {0x0004, &PS_PS::EncryptDecryptAes, "EncryptDecryptAes"}, + {0x0005, nullptr, "EncryptSignDecryptVerifyAesCcm"}, + {0x0006, nullptr, "GetRomId"}, + {0x0007, nullptr, "GetRomId2"}, + {0x0008, nullptr, "GetRomMakerCode"}, + {0x0009, nullptr, "GetCTRCardAutoStartupBit"}, + {0x000A, nullptr, "GetLocalFriendCodeSeed"}, + {0x000B, nullptr, "GetDeviceId"}, + {0x000C, nullptr, "SeedRNG"}, + {0x000D, nullptr, "GenerateRandomBytes"}, + {0x000E, nullptr, "InterfaceForPXI_0x04010084"}, + {0x000F, nullptr, "InterfaceForPXI_0x04020082"}, + {0x0010, nullptr, "InterfaceForPXI_0x04030044"}, + {0x0011, nullptr, "InterfaceForPXI_0x04040044"}, // clang-format on }; diff --git a/src/core/hle/service/ptm/ptm.cpp b/src/core/hle/service/ptm/ptm.cpp index 120af5276..96cd944d2 100644 --- a/src/core/hle/service/ptm/ptm.cpp +++ b/src/core/hle/service/ptm/ptm.cpp @@ -27,7 +27,7 @@ namespace Service::PTM { static const GameCoin default_game_coin = {0x4F00, 42, 0, 0, 0, 2014, 12, 29}; void Module::Interface::GetAdapterState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x5, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -37,7 +37,7 @@ void Module::Interface::GetAdapterState(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetShellState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x6, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -45,7 +45,7 @@ void Module::Interface::GetShellState(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetBatteryLevel(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x7, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -55,7 +55,7 @@ void Module::Interface::GetBatteryLevel(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetBatteryChargeState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x8, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -65,7 +65,7 @@ void Module::Interface::GetBatteryChargeState(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetPedometerState(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -75,7 +75,7 @@ void Module::Interface::GetPedometerState(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetStepHistory(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xB, 3, 2); + IPC::RequestParser rp(ctx); u32 hours = rp.Pop(); u64 start_time = rp.Pop(); @@ -98,7 +98,7 @@ void Module::Interface::GetStepHistory(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetTotalStepCount(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xC, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -108,7 +108,7 @@ void Module::Interface::GetTotalStepCount(Kernel::HLERequestContext& ctx) { } void Module::Interface::GetSoftwareClosedFlag(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x80F, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -127,14 +127,14 @@ void CheckNew3DS(IPC::RequestBuilder& rb) { } void Module::Interface::CheckNew3DS(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x40A, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); Service::PTM::CheckNew3DS(rb); } void Module::Interface::GetSystemTime(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x401, 0, 0); + IPC::RequestParser rp(ctx); auto& share_page = Core::System::GetInstance().Kernel().GetSharedPageHandler(); const u64 console_time = share_page.GetSystemTimeSince2000(); diff --git a/src/core/hle/service/ptm/ptm_gets.cpp b/src/core/hle/service/ptm/ptm_gets.cpp index 717b49748..a1a5dc774 100644 --- a/src/core/hle/service/ptm/ptm_gets.cpp +++ b/src/core/hle/service/ptm/ptm_gets.cpp @@ -14,23 +14,23 @@ PTM_Gets::PTM_Gets(std::shared_ptr ptm) static const FunctionInfo functions[] = { // ptm:u common commands // clang-format off - {IPC::MakeHeader(0x0001, 0, 2), nullptr, "RegisterAlarmClient"}, - {IPC::MakeHeader(0x0002, 2, 0), nullptr, "SetRtcAlarm"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "GetRtcAlarm"}, - {IPC::MakeHeader(0x0004, 0, 0), nullptr, "CancelRtcAlarm"}, - {IPC::MakeHeader(0x0005, 0, 0), &PTM_Gets::GetAdapterState, "GetAdapterState"}, - {IPC::MakeHeader(0x0006, 0, 0), &PTM_Gets::GetShellState, "GetShellState"}, - {IPC::MakeHeader(0x0007, 0, 0), &PTM_Gets::GetBatteryLevel, "GetBatteryLevel"}, - {IPC::MakeHeader(0x0008, 0, 0), &PTM_Gets::GetBatteryChargeState, "GetBatteryChargeState"}, - {IPC::MakeHeader(0x0009, 0, 0), nullptr, "GetPedometerState"}, - {IPC::MakeHeader(0x000A, 1, 2), nullptr, "GetStepHistoryEntry"}, - {IPC::MakeHeader(0x000B, 3, 2), &PTM_Gets::GetStepHistory, "GetStepHistory"}, - {IPC::MakeHeader(0x000C, 0, 0), &PTM_Gets::GetTotalStepCount, "GetTotalStepCount"}, - {IPC::MakeHeader(0x000D, 1, 0), nullptr, "SetPedometerRecordingMode"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "GetPedometerRecordingMode"}, - {IPC::MakeHeader(0x000F, 2, 4), nullptr, "GetStepHistoryAll"}, + {0x0001, nullptr, "RegisterAlarmClient"}, + {0x0002, nullptr, "SetRtcAlarm"}, + {0x0003, nullptr, "GetRtcAlarm"}, + {0x0004, nullptr, "CancelRtcAlarm"}, + {0x0005, &PTM_Gets::GetAdapterState, "GetAdapterState"}, + {0x0006, &PTM_Gets::GetShellState, "GetShellState"}, + {0x0007, &PTM_Gets::GetBatteryLevel, "GetBatteryLevel"}, + {0x0008, &PTM_Gets::GetBatteryChargeState, "GetBatteryChargeState"}, + {0x0009, nullptr, "GetPedometerState"}, + {0x000A, nullptr, "GetStepHistoryEntry"}, + {0x000B, &PTM_Gets::GetStepHistory, "GetStepHistory"}, + {0x000C, &PTM_Gets::GetTotalStepCount, "GetTotalStepCount"}, + {0x000D, nullptr, "SetPedometerRecordingMode"}, + {0x000E, nullptr, "GetPedometerRecordingMode"}, + {0x000F, nullptr, "GetStepHistoryAll"}, // ptm:gets - {IPC::MakeHeader(0x0401, 0, 0), &PTM_Gets::GetSystemTime, "GetSystemTime"}, + {0x0401, &PTM_Gets::GetSystemTime, "GetSystemTime"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/ptm/ptm_play.cpp b/src/core/hle/service/ptm/ptm_play.cpp index 6a286f672..823b45b80 100644 --- a/src/core/hle/service/ptm/ptm_play.cpp +++ b/src/core/hle/service/ptm/ptm_play.cpp @@ -14,26 +14,26 @@ PTM_Play::PTM_Play(std::shared_ptr ptm) static const FunctionInfo functions[] = { // ptm:u common commands // clang-format off - {IPC::MakeHeader(0x0001, 0, 2), nullptr, "RegisterAlarmClient"}, - {IPC::MakeHeader(0x0002, 2, 0), nullptr, "SetRtcAlarm"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "GetRtcAlarm"}, - {IPC::MakeHeader(0x0004, 0, 0), nullptr, "CancelRtcAlarm"}, - {IPC::MakeHeader(0x0005, 0, 0), &PTM_Play::GetAdapterState, "GetAdapterState"}, - {IPC::MakeHeader(0x0006, 0, 0), &PTM_Play::GetShellState, "GetShellState"}, - {IPC::MakeHeader(0x0007, 0, 0), &PTM_Play::GetBatteryLevel, "GetBatteryLevel"}, - {IPC::MakeHeader(0x0008, 0, 0), &PTM_Play::GetBatteryChargeState, "GetBatteryChargeState"}, - {IPC::MakeHeader(0x0009, 0, 0), nullptr, "GetPedometerState"}, - {IPC::MakeHeader(0x000A, 1, 2), nullptr, "GetStepHistoryEntry"}, - {IPC::MakeHeader(0x000B, 3, 2), &PTM_Play::GetStepHistory, "GetStepHistory"}, - {IPC::MakeHeader(0x000C, 0, 0), &PTM_Play::GetTotalStepCount, "GetTotalStepCount"}, - {IPC::MakeHeader(0x000D, 1, 0), nullptr, "SetPedometerRecordingMode"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "GetPedometerRecordingMode"}, - {IPC::MakeHeader(0x000F, 2, 4), nullptr, "GetStepHistoryAll"}, + {0x0001, nullptr, "RegisterAlarmClient"}, + {0x0002, nullptr, "SetRtcAlarm"}, + {0x0003, nullptr, "GetRtcAlarm"}, + {0x0004, nullptr, "CancelRtcAlarm"}, + {0x0005, &PTM_Play::GetAdapterState, "GetAdapterState"}, + {0x0006, &PTM_Play::GetShellState, "GetShellState"}, + {0x0007, &PTM_Play::GetBatteryLevel, "GetBatteryLevel"}, + {0x0008, &PTM_Play::GetBatteryChargeState, "GetBatteryChargeState"}, + {0x0009, nullptr, "GetPedometerState"}, + {0x000A, nullptr, "GetStepHistoryEntry"}, + {0x000B, &PTM_Play::GetStepHistory, "GetStepHistory"}, + {0x000C, &PTM_Play::GetTotalStepCount, "GetTotalStepCount"}, + {0x000D, nullptr, "SetPedometerRecordingMode"}, + {0x000E, nullptr, "GetPedometerRecordingMode"}, + {0x000F, nullptr, "GetStepHistoryAll"}, // ptm:play - {IPC::MakeHeader(0x0807, 2, 2), nullptr, "GetPlayHistory"}, - {IPC::MakeHeader(0x0808, 0, 0), nullptr, "GetPlayHistoryStart"}, - {IPC::MakeHeader(0x0809, 0, 0), nullptr, "GetPlayHistoryLength"}, - {IPC::MakeHeader(0x080B, 2, 0), nullptr, "CalcPlayHistoryStart"}, + {0x0807, nullptr, "GetPlayHistory"}, + {0x0808, nullptr, "GetPlayHistoryStart"}, + {0x0809, nullptr, "GetPlayHistoryLength"}, + {0x080B, nullptr, "CalcPlayHistoryStart"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/ptm/ptm_sets.cpp b/src/core/hle/service/ptm/ptm_sets.cpp index 6045b06e3..0fea24b68 100644 --- a/src/core/hle/service/ptm/ptm_sets.cpp +++ b/src/core/hle/service/ptm/ptm_sets.cpp @@ -13,7 +13,7 @@ PTM_Sets::PTM_Sets(std::shared_ptr ptm) : Module::Interface(std::move(pt static const FunctionInfo functions[] = { // Note that this service does not have access to ptm:u's common commands // clang-format off - {IPC::MakeHeader(0x0001, 2, 0), nullptr, "SetSystemTime"}, + {0x0001, nullptr, "SetSystemTime"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/ptm/ptm_sysm.cpp b/src/core/hle/service/ptm/ptm_sysm.cpp index db807115c..f827517d3 100644 --- a/src/core/hle/service/ptm/ptm_sysm.cpp +++ b/src/core/hle/service/ptm/ptm_sysm.cpp @@ -15,53 +15,53 @@ PTM_S_Common::PTM_S_Common(std::shared_ptr ptm, const char* name) static const FunctionInfo functions[] = { // ptm:u common commands // clang-format off - {IPC::MakeHeader(0x0001, 0, 2), nullptr, "RegisterAlarmClient"}, - {IPC::MakeHeader(0x0002, 2, 0), nullptr, "SetRtcAlarm"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "GetRtcAlarm"}, - {IPC::MakeHeader(0x0004, 0, 0), nullptr, "CancelRtcAlarm"}, - {IPC::MakeHeader(0x0005, 0, 0), &PTM_S_Common::GetAdapterState, "GetAdapterState"}, - {IPC::MakeHeader(0x0006, 0, 0), &PTM_S_Common::GetShellState, "GetShellState"}, - {IPC::MakeHeader(0x0007, 0, 0), &PTM_S_Common::GetBatteryLevel, "GetBatteryLevel"}, - {IPC::MakeHeader(0x0008, 0, 0), &PTM_S_Common::GetBatteryChargeState, "GetBatteryChargeState"}, - {IPC::MakeHeader(0x0009, 0, 0), nullptr, "GetPedometerState"}, - {IPC::MakeHeader(0x000A, 1, 2), nullptr, "GetStepHistoryEntry"}, - {IPC::MakeHeader(0x000B, 3, 2), &PTM_S_Common::GetStepHistory, "GetStepHistory"}, - {IPC::MakeHeader(0x000C, 0, 0), &PTM_S_Common::GetTotalStepCount, "GetTotalStepCount"}, - {IPC::MakeHeader(0x000D, 1, 0), nullptr, "SetPedometerRecordingMode"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "GetPedometerRecordingMode"}, - {IPC::MakeHeader(0x000F, 2, 4), nullptr, "GetStepHistoryAll"}, + {0x0001, nullptr, "RegisterAlarmClient"}, + {0x0002, nullptr, "SetRtcAlarm"}, + {0x0003, nullptr, "GetRtcAlarm"}, + {0x0004, nullptr, "CancelRtcAlarm"}, + {0x0005, &PTM_S_Common::GetAdapterState, "GetAdapterState"}, + {0x0006, &PTM_S_Common::GetShellState, "GetShellState"}, + {0x0007, &PTM_S_Common::GetBatteryLevel, "GetBatteryLevel"}, + {0x0008, &PTM_S_Common::GetBatteryChargeState, "GetBatteryChargeState"}, + {0x0009, nullptr, "GetPedometerState"}, + {0x000A, nullptr, "GetStepHistoryEntry"}, + {0x000B, &PTM_S_Common::GetStepHistory, "GetStepHistory"}, + {0x000C, &PTM_S_Common::GetTotalStepCount, "GetTotalStepCount"}, + {0x000D, nullptr, "SetPedometerRecordingMode"}, + {0x000E, nullptr, "GetPedometerRecordingMode"}, + {0x000F, nullptr, "GetStepHistoryAll"}, // ptm:sysm & ptm:s - {IPC::MakeHeader(0x0401, 3, 0), nullptr, "SetRtcAlarmEx"}, - {IPC::MakeHeader(0x0402, 1, 2), nullptr, "ReplySleepQuery"}, - {IPC::MakeHeader(0x0403, 1, 2), nullptr, "NotifySleepPreparationComplete"}, - {IPC::MakeHeader(0x0404, 4, 2), nullptr, "SetWakeupTrigger"}, - {IPC::MakeHeader(0x0405, 0, 0), nullptr, "GetAwakeReason"}, - {IPC::MakeHeader(0x0406, 0, 0), nullptr, "RequestSleep"}, - {IPC::MakeHeader(0x0407, 3, 0), nullptr, "ShutdownAsync"}, - {IPC::MakeHeader(0x0408, 0, 0), nullptr, "Awake"}, - {IPC::MakeHeader(0x0409, 2, 0), nullptr, "RebootAsync"}, - {IPC::MakeHeader(0x040A, 0, 0), &PTM_S_Common::CheckNew3DS, "CheckNew3DS"}, - {IPC::MakeHeader(0x0801, 25, 0), nullptr, "SetInfoLEDPattern"}, - {IPC::MakeHeader(0x0802, 1, 0), nullptr, "SetInfoLEDPatternHeader"}, - {IPC::MakeHeader(0x0803, 0, 0), nullptr, "GetInfoLEDStatus"}, - {IPC::MakeHeader(0x0804, 1, 0), nullptr, "SetBatteryEmptyLEDPattern"}, - {IPC::MakeHeader(0x0805, 0, 0), nullptr, "ClearStepHistory"}, - {IPC::MakeHeader(0x0806, 3, 2), nullptr, "SetStepHistory"}, - {IPC::MakeHeader(0x0807, 2, 2), nullptr, "GetPlayHistory"}, - {IPC::MakeHeader(0x0808, 0, 0), nullptr, "GetPlayHistoryStart"}, - {IPC::MakeHeader(0x0809, 0, 0), nullptr, "GetPlayHistoryLength"}, - {IPC::MakeHeader(0x080A, 0, 0), nullptr, "ClearPlayHistory"}, - {IPC::MakeHeader(0x080B, 2, 0), nullptr, "CalcPlayHistoryStart"}, - {IPC::MakeHeader(0x080C, 2, 0), nullptr, "SetUserTime"}, - {IPC::MakeHeader(0x080D, 0, 0), nullptr, "InvalidateSystemTime"}, - {IPC::MakeHeader(0x080E, 5, 0), nullptr, "NotifyPlayEvent"}, - {IPC::MakeHeader(0x080F, 0, 0), &PTM_S_Common::GetSoftwareClosedFlag, "GetSoftwareClosedFlag"}, - {IPC::MakeHeader(0x0810, 0, 0), nullptr, "ClearSoftwareClosedFlag"}, - {IPC::MakeHeader(0x0811, 0, 0), &PTM_S_Common::GetShellState, "GetShellState"}, - {IPC::MakeHeader(0x0812, 0, 0), nullptr, "IsShutdownByBatteryEmpty"}, - {IPC::MakeHeader(0x0813, 0, 0), nullptr, "FormatSavedata"}, - {IPC::MakeHeader(0x0814, 0, 0), nullptr, "GetLegacyJumpProhibitedFlag"}, - {IPC::MakeHeader(0x0818, 1, 0), nullptr, "ConfigureNew3DSCPU"}, + {0x0401, nullptr, "SetRtcAlarmEx"}, + {0x0402, nullptr, "ReplySleepQuery"}, + {0x0403, nullptr, "NotifySleepPreparationComplete"}, + {0x0404, nullptr, "SetWakeupTrigger"}, + {0x0405, nullptr, "GetAwakeReason"}, + {0x0406, nullptr, "RequestSleep"}, + {0x0407, nullptr, "ShutdownAsync"}, + {0x0408, nullptr, "Awake"}, + {0x0409, nullptr, "RebootAsync"}, + {0x040A, &PTM_S_Common::CheckNew3DS, "CheckNew3DS"}, + {0x0801, nullptr, "SetInfoLEDPattern"}, + {0x0802, nullptr, "SetInfoLEDPatternHeader"}, + {0x0803, nullptr, "GetInfoLEDStatus"}, + {0x0804, nullptr, "SetBatteryEmptyLEDPattern"}, + {0x0805, nullptr, "ClearStepHistory"}, + {0x0806, nullptr, "SetStepHistory"}, + {0x0807, nullptr, "GetPlayHistory"}, + {0x0808, nullptr, "GetPlayHistoryStart"}, + {0x0809, nullptr, "GetPlayHistoryLength"}, + {0x080A, nullptr, "ClearPlayHistory"}, + {0x080B, nullptr, "CalcPlayHistoryStart"}, + {0x080C, nullptr, "SetUserTime"}, + {0x080D, nullptr, "InvalidateSystemTime"}, + {0x080E, nullptr, "NotifyPlayEvent"}, + {0x080F, &PTM_S_Common::GetSoftwareClosedFlag, "GetSoftwareClosedFlag"}, + {0x0810, nullptr, "ClearSoftwareClosedFlag"}, + {0x0811, &PTM_S_Common::GetShellState, "GetShellState"}, + {0x0812, nullptr, "IsShutdownByBatteryEmpty"}, + {0x0813, nullptr, "FormatSavedata"}, + {0x0814, nullptr, "GetLegacyJumpProhibitedFlag"}, + {0x0818, nullptr, "ConfigureNew3DSCPU"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/ptm/ptm_u.cpp b/src/core/hle/service/ptm/ptm_u.cpp index 07d62d2de..7234a0c0f 100644 --- a/src/core/hle/service/ptm/ptm_u.cpp +++ b/src/core/hle/service/ptm/ptm_u.cpp @@ -12,21 +12,21 @@ namespace Service::PTM { PTM_U::PTM_U(std::shared_ptr ptm) : Module::Interface(std::move(ptm), "ptm:u", 26) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 2), nullptr, "RegisterAlarmClient"}, - {IPC::MakeHeader(0x0002, 2, 0), nullptr, "SetRtcAlarm"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "GetRtcAlarm"}, - {IPC::MakeHeader(0x0004, 0, 0), nullptr, "CancelRtcAlarm"}, - {IPC::MakeHeader(0x0005, 0, 0), &PTM_U::GetAdapterState, "GetAdapterState"}, - {IPC::MakeHeader(0x0006, 0, 0), &PTM_U::GetShellState, "GetShellState"}, - {IPC::MakeHeader(0x0007, 0, 0), &PTM_U::GetBatteryLevel, "GetBatteryLevel"}, - {IPC::MakeHeader(0x0008, 0, 0), &PTM_U::GetBatteryChargeState, "GetBatteryChargeState"}, - {IPC::MakeHeader(0x0009, 0, 0), &PTM_U::GetPedometerState, "GetPedometerState"}, - {IPC::MakeHeader(0x000A, 1, 2), nullptr, "GetStepHistoryEntry"}, - {IPC::MakeHeader(0x000B, 3, 2), &PTM_U::GetStepHistory, "GetStepHistory"}, - {IPC::MakeHeader(0x000C, 0, 0), &PTM_U::GetTotalStepCount, "GetTotalStepCount"}, - {IPC::MakeHeader(0x000D, 1, 0), nullptr, "SetPedometerRecordingMode"}, - {IPC::MakeHeader(0x000E, 0, 0), nullptr, "GetPedometerRecordingMode"}, - {IPC::MakeHeader(0x000F, 2, 4), nullptr, "GetStepHistoryAll"}, + {0x0001, nullptr, "RegisterAlarmClient"}, + {0x0002, nullptr, "SetRtcAlarm"}, + {0x0003, nullptr, "GetRtcAlarm"}, + {0x0004, nullptr, "CancelRtcAlarm"}, + {0x0005, &PTM_U::GetAdapterState, "GetAdapterState"}, + {0x0006, &PTM_U::GetShellState, "GetShellState"}, + {0x0007, &PTM_U::GetBatteryLevel, "GetBatteryLevel"}, + {0x0008, &PTM_U::GetBatteryChargeState, "GetBatteryChargeState"}, + {0x0009, &PTM_U::GetPedometerState, "GetPedometerState"}, + {0x000A, nullptr, "GetStepHistoryEntry"}, + {0x000B, &PTM_U::GetStepHistory, "GetStepHistory"}, + {0x000C, &PTM_U::GetTotalStepCount, "GetTotalStepCount"}, + {0x000D, nullptr, "SetPedometerRecordingMode"}, + {0x000E, nullptr, "GetPedometerRecordingMode"}, + {0x000F, nullptr, "GetStepHistoryAll"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/pxi/dev.cpp b/src/core/hle/service/pxi/dev.cpp index 02a062529..02573d0ff 100644 --- a/src/core/hle/service/pxi/dev.cpp +++ b/src/core/hle/service/pxi/dev.cpp @@ -13,21 +13,21 @@ DEV::DEV() : ServiceFramework("pxi:dev", 1) { // clang-format off static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 7, 2), nullptr, "ReadHostIO"}, - {IPC::MakeHeader(0x0002, 7, 2), nullptr, "WriteHostIO"}, - {IPC::MakeHeader(0x0003, 4, 2), nullptr, "ReadHostEx"}, - {IPC::MakeHeader(0x0004, 4, 2), nullptr, "WriteHostEx"}, - {IPC::MakeHeader(0x0005, 4, 2), nullptr, "WriteHostExStart"}, - {IPC::MakeHeader(0x0006, 4, 2), nullptr, "WriteHostExChunk"}, - {IPC::MakeHeader(0x0007, 0, 0), nullptr, "WriteHostExEnd"}, - {IPC::MakeHeader(0x0008, 0, 0), nullptr, "InitializeMIDI"}, - {IPC::MakeHeader(0x0009, 0, 0), nullptr, "FinalizeMIDI"}, - {IPC::MakeHeader(0x000A, 0, 0), nullptr, "GetMIDIInfo"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "GetMIDIBufferSize"}, - {IPC::MakeHeader(0x000C, 1, 2), nullptr, "ReadMIDI"}, - {IPC::MakeHeader(0x000D, 26, 8), nullptr, "SPIMultiWriteRead"}, - {IPC::MakeHeader(0x000E, 10, 4), nullptr, "SPIWriteRead"}, - {IPC::MakeHeader(0x000F, 0, 0), nullptr, "GetCardDevice"}, + {0x0001, nullptr, "ReadHostIO"}, + {0x0002, nullptr, "WriteHostIO"}, + {0x0003, nullptr, "ReadHostEx"}, + {0x0004, nullptr, "WriteHostEx"}, + {0x0005, nullptr, "WriteHostExStart"}, + {0x0006, nullptr, "WriteHostExChunk"}, + {0x0007, nullptr, "WriteHostExEnd"}, + {0x0008, nullptr, "InitializeMIDI"}, + {0x0009, nullptr, "FinalizeMIDI"}, + {0x000A, nullptr, "GetMIDIInfo"}, + {0x000B, nullptr, "GetMIDIBufferSize"}, + {0x000C, nullptr, "ReadMIDI"}, + {0x000D, nullptr, "SPIMultiWriteRead"}, + {0x000E, nullptr, "SPIWriteRead"}, + {0x000F, nullptr, "GetCardDevice"}, // clang-format on }; // clang-format on diff --git a/src/core/hle/service/qtm/qtm_c.cpp b/src/core/hle/service/qtm/qtm_c.cpp index 5aa8b147d..ea3bb2f93 100644 --- a/src/core/hle/service/qtm/qtm_c.cpp +++ b/src/core/hle/service/qtm/qtm_c.cpp @@ -14,8 +14,8 @@ QTM_C::QTM_C() : ServiceFramework("qtm:c", 2) { static const FunctionInfo functions[] = { // qtm calibration commands // clang-format off - {IPC::MakeHeader(0x0001, 0, 0), nullptr, "InitializeHardwareCheck"}, - {IPC::MakeHeader(0x0005, 1, 0), nullptr, "SetIrLedCheck"}, + {0x0001, nullptr, "InitializeHardwareCheck"}, + {0x0005, nullptr, "SetIrLedCheck"}, // clang-format on }; diff --git a/src/core/hle/service/qtm/qtm_s.cpp b/src/core/hle/service/qtm/qtm_s.cpp index da1ca9080..1a7f12616 100644 --- a/src/core/hle/service/qtm/qtm_s.cpp +++ b/src/core/hle/service/qtm/qtm_s.cpp @@ -14,8 +14,8 @@ QTM_S::QTM_S() : ServiceFramework("qtm:s", 2) { static const FunctionInfo functions[] = { // qtm common commands // clang-format off - {IPC::MakeHeader(0x0001, 2, 0), nullptr, "GetHeadtrackingInfoRaw"}, - {IPC::MakeHeader(0x0002, 2, 0), nullptr, "GetHeadtrackingInfo"}, + {0x0001, nullptr, "GetHeadtrackingInfoRaw"}, + {0x0002, nullptr, "GetHeadtrackingInfo"}, // clang-format on }; diff --git a/src/core/hle/service/qtm/qtm_sp.cpp b/src/core/hle/service/qtm/qtm_sp.cpp index 25b6b90c9..114b385bd 100644 --- a/src/core/hle/service/qtm/qtm_sp.cpp +++ b/src/core/hle/service/qtm/qtm_sp.cpp @@ -14,8 +14,8 @@ QTM_SP::QTM_SP() : ServiceFramework("qtm:sp", 2) { static const FunctionInfo functions[] = { // qtm common commands // clang-format off - {IPC::MakeHeader(0x0001, 2, 0), nullptr, "GetHeadtrackingInfoRaw"}, - {IPC::MakeHeader(0x0002, 2, 0), nullptr, "GetHeadtrackingInfo"}, + {0x0001, nullptr, "GetHeadtrackingInfoRaw"}, + {0x0002, nullptr, "GetHeadtrackingInfo"}, // clang-format on }; diff --git a/src/core/hle/service/qtm/qtm_u.cpp b/src/core/hle/service/qtm/qtm_u.cpp index 0fce4974d..92736db9f 100644 --- a/src/core/hle/service/qtm/qtm_u.cpp +++ b/src/core/hle/service/qtm/qtm_u.cpp @@ -14,8 +14,8 @@ QTM_U::QTM_U() : ServiceFramework("qtm:u", 2) { static const FunctionInfo functions[] = { // qtm common commands // clang-format off - {IPC::MakeHeader(0x0001, 2, 0), nullptr, "GetHeadtrackingInfoRaw"}, - {IPC::MakeHeader(0x0002, 2, 0), nullptr, "GetHeadtrackingInfo"}, + {0x0001, nullptr, "GetHeadtrackingInfoRaw"}, + {0x0002, nullptr, "GetHeadtrackingInfo"}, // clang-format on }; diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index dafababc5..e1b8f62c5 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp @@ -143,7 +143,7 @@ void ServiceFrameworkBase::RegisterHandlersBase(const FunctionInfoBase* function handlers.reserve(handlers.size() + n); for (std::size_t i = 0; i < n; ++i) { // Usually this array is sorted by id already, so hint to insert at the end - handlers.emplace_hint(handlers.cend(), functions[i].expected_header, functions[i]); + handlers.emplace_hint(handlers.cend(), functions[i].command_id, functions[i]); } } @@ -171,8 +171,7 @@ void ServiceFrameworkBase::ReportUnimplementedFunction(u32* cmd_buf, const Funct } void ServiceFrameworkBase::HandleSyncRequest(Kernel::HLERequestContext& context) { - u32 header_code = context.CommandBuffer()[0]; - auto itr = handlers.find(header_code); + auto itr = handlers.find(context.CommandHeader().command_id.Value()); const FunctionInfoBase* info = itr == handlers.end() ? nullptr : &itr->second; if (info == nullptr || info->handler_callback == nullptr) { context.ReportUnimplemented(); @@ -184,12 +183,13 @@ void ServiceFrameworkBase::HandleSyncRequest(Kernel::HLERequestContext& context) handler_invoker(this, info->handler_callback, context); } -std::string ServiceFrameworkBase::GetFunctionName(u32 header) const { - if (!handlers.count(header)) { +std::string ServiceFrameworkBase::GetFunctionName(IPC::Header header) const { + auto itr = handlers.find(header.command_id.Value()); + if (itr == handlers.end()) { return ""; } - return handlers.at(header).name; + return itr->second.name; } static bool AttemptLLE(const ServiceModuleInfo& service_module) { diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index fd783cefc..0b4b3ec54 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h @@ -68,7 +68,7 @@ public: void HandleSyncRequest(Kernel::HLERequestContext& context) override; /// Retrieves name of a function based on the header code. For IPC Recorder. - std::string GetFunctionName(u32 header) const; + std::string GetFunctionName(IPC::Header header) const; protected: /// Member-function pointer type of SyncRequest handlers. @@ -80,7 +80,7 @@ private: friend class ServiceFramework; struct FunctionInfoBase { - u32 expected_header; + u32 command_id; HandlerFnP handler_callback; const char* name; }; @@ -122,21 +122,18 @@ class ServiceFramework : public ServiceFrameworkBase { protected: /// Contains information about a request type which is handled by the service. struct FunctionInfo : FunctionInfoBase { - // TODO(yuriks): This function could be constexpr, but clang is the only compiler that - // doesn't emit an ICE or a wrong diagnostic because of the static_cast. - /** * Constructs a FunctionInfo for a function. * - * @param expected_header request header in the command buffer which will trigger dispatch + * @param command_id command ID in the command buffer which will trigger dispatch * to this handler * @param handler_callback member function in this service which will be called to handle * the request * @param name human-friendly name for the request. Used mostly for logging purposes. */ - FunctionInfo(u32 expected_header, HandlerFnP handler_callback, const char* name) + constexpr FunctionInfo(u32 command_id, HandlerFnP handler_callback, const char* name) : FunctionInfoBase{ - expected_header, + command_id, // Type-erase member function pointer by casting it down to the base class. static_cast>(handler_callback), name} {} }; diff --git a/src/core/hle/service/sm/srv.cpp b/src/core/hle/service/sm/srv.cpp index ff16e2519..c5b295622 100644 --- a/src/core/hle/service/sm/srv.cpp +++ b/src/core/hle/service/sm/srv.cpp @@ -48,7 +48,7 @@ constexpr int MAX_PENDING_NOTIFICATIONS = 16; * 1: ResultCode */ void SRV::RegisterClient(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1, 0, 2); + IPC::RequestParser rp(ctx); const auto pid_descriptor = rp.Pop(); if (pid_descriptor != IPC::CallingPidDesc()) { @@ -74,7 +74,7 @@ void SRV::RegisterClient(Kernel::HLERequestContext& ctx) { * 3: Handle to semaphore signaled on process notification */ void SRV::EnableNotification(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2, 0, 0); + IPC::RequestParser rp(ctx); notification_semaphore = system.Kernel().CreateSemaphore(0, MAX_PENDING_NOTIFICATIONS, "SRV:Notification").Unwrap(); @@ -139,7 +139,7 @@ private: * 3: Service handle */ void SRV::GetServiceHandle(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x5, 4, 0); + IPC::RequestParser rp(ctx); auto name_buf = rp.PopRaw>(); std::size_t name_len = rp.Pop(); u32 flags = rp.Pop(); @@ -202,7 +202,7 @@ void SRV::GetServiceHandle(Kernel::HLERequestContext& ctx) { * 1: ResultCode */ void SRV::Subscribe(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 1, 0); + IPC::RequestParser rp(ctx); u32 notification_id = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -220,7 +220,7 @@ void SRV::Subscribe(Kernel::HLERequestContext& ctx) { * 1: ResultCode */ void SRV::Unsubscribe(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xA, 1, 0); + IPC::RequestParser rp(ctx); u32 notification_id = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -239,7 +239,7 @@ void SRV::Unsubscribe(Kernel::HLERequestContext& ctx) { * 1: ResultCode */ void SRV::PublishToSubscriber(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xC, 2, 0); + IPC::RequestParser rp(ctx); u32 notification_id = rp.Pop(); u8 flags = rp.Pop(); @@ -258,7 +258,7 @@ void SRV::PublishToSubscriber(Kernel::HLERequestContext& ctx) { } void SRV::RegisterService(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x3, 4, 0); + IPC::RequestParser rp(ctx); auto name_buf = rp.PopRaw>(); std::size_t name_len = rp.Pop(); @@ -289,20 +289,20 @@ void SRV::RegisterService(Kernel::HLERequestContext& ctx) { SRV::SRV(Core::System& system) : ServiceFramework("srv:", 4), system(system) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 2), &SRV::RegisterClient, "RegisterClient"}, - {IPC::MakeHeader(0x0002, 0, 0), &SRV::EnableNotification, "EnableNotification"}, - {IPC::MakeHeader(0x0003, 4, 0), &SRV::RegisterService, "RegisterService"}, - {IPC::MakeHeader(0x0004, 3, 0), nullptr, "UnregisterService"}, - {IPC::MakeHeader(0x0005, 4, 0), &SRV::GetServiceHandle, "GetServiceHandle"}, - {IPC::MakeHeader(0x0006, 3, 2), nullptr, "RegisterPort"}, - {IPC::MakeHeader(0x0007, 3, 0), nullptr, "UnregisterPort"}, - {IPC::MakeHeader(0x0008, 4, 0), nullptr, "GetPort"}, - {IPC::MakeHeader(0x0009, 1, 0), &SRV::Subscribe, "Subscribe"}, - {IPC::MakeHeader(0x000A, 1, 0), &SRV::Unsubscribe, "Unsubscribe"}, - {IPC::MakeHeader(0x000B, 0, 0), nullptr, "ReceiveNotification"}, - {IPC::MakeHeader(0x000C, 2, 0), &SRV::PublishToSubscriber, "PublishToSubscriber"}, - {IPC::MakeHeader(0x000D, 1, 0), nullptr, "PublishAndGetSubscriber"}, - {IPC::MakeHeader(0x000E, 3, 0), nullptr, "IsServiceRegistered"}, + {0x0001, &SRV::RegisterClient, "RegisterClient"}, + {0x0002, &SRV::EnableNotification, "EnableNotification"}, + {0x0003, &SRV::RegisterService, "RegisterService"}, + {0x0004, nullptr, "UnregisterService"}, + {0x0005, &SRV::GetServiceHandle, "GetServiceHandle"}, + {0x0006, nullptr, "RegisterPort"}, + {0x0007, nullptr, "UnregisterPort"}, + {0x0008, nullptr, "GetPort"}, + {0x0009, &SRV::Subscribe, "Subscribe"}, + {0x000A, &SRV::Unsubscribe, "Unsubscribe"}, + {0x000B, nullptr, "ReceiveNotification"}, + {0x000C, &SRV::PublishToSubscriber, "PublishToSubscriber"}, + {0x000D, nullptr, "PublishAndGetSubscriber"}, + {0x000E, nullptr, "IsServiceRegistered"}, // clang-format on }; RegisterHandlers(functions); diff --git a/src/core/hle/service/soc_u.cpp b/src/core/hle/service/soc_u.cpp index 581652ae8..60e5f92ea 100644 --- a/src/core/hle/service/soc_u.cpp +++ b/src/core/hle/service/soc_u.cpp @@ -722,7 +722,7 @@ void SOC_U::CleanupSockets() { } void SOC_U::Socket(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x02, 3, 2); + IPC::RequestParser rp(ctx); u32 domain = SocketDomainToPlatform(rp.Pop()); // Address family u32 type = SocketTypeToPlatform(rp.Pop()); u32 protocol = SocketProtocolToPlatform(rp.Pop()); @@ -771,7 +771,7 @@ void SOC_U::Socket(Kernel::HLERequestContext& ctx) { } void SOC_U::Bind(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x05, 2, 4); + IPC::RequestParser rp(ctx); u32 socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -800,7 +800,7 @@ void SOC_U::Bind(Kernel::HLERequestContext& ctx) { } void SOC_U::Fcntl(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x13, 3, 2); + IPC::RequestParser rp(ctx); u32 socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -834,7 +834,7 @@ void SOC_U::Fcntl(Kernel::HLERequestContext& ctx) { } void SOC_U::Listen(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x03, 2, 2); + IPC::RequestParser rp(ctx); u32 socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -859,7 +859,7 @@ void SOC_U::Accept(Kernel::HLERequestContext& ctx) { // TODO(Subv): Calling this function on a blocking socket will block the emu thread, // 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); + IPC::RequestParser rp(ctx); const auto socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -896,7 +896,7 @@ void SOC_U::Accept(Kernel::HLERequestContext& ctx) { } void SOC_U::GetHostId(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 0, 0); + IPC::RequestParser rp(ctx); u32 host_id = 0; auto info = GetDefaultInterfaceInfo(); @@ -910,7 +910,7 @@ void SOC_U::GetHostId(Kernel::HLERequestContext& ctx) { } void SOC_U::Close(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0B, 1, 2); + IPC::RequestParser rp(ctx); u32 socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -936,7 +936,7 @@ void SOC_U::Close(Kernel::HLERequestContext& ctx) { } void SOC_U::SendToOther(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x09, 4, 6); + IPC::RequestParser rp(ctx); const u32 socket_handle = rp.Pop(); const auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -998,7 +998,7 @@ void SOC_U::SendToOther(Kernel::HLERequestContext& ctx) { } void SOC_U::SendTo(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0A, 4, 6); + IPC::RequestParser rp(ctx); u32 socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -1055,7 +1055,7 @@ void SOC_U::SendTo(Kernel::HLERequestContext& ctx) { } void SOC_U::RecvFromOther(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x7, 4, 4); + IPC::RequestParser rp(ctx); u32 socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -1131,7 +1131,7 @@ void SOC_U::RecvFrom(Kernel::HLERequestContext& ctx) { // TODO(Subv): Calling this function on a blocking socket will block the emu thread, // 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, 0x08, 4, 2); + IPC::RequestParser rp(ctx); u32 socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -1207,7 +1207,7 @@ void SOC_U::RecvFrom(Kernel::HLERequestContext& ctx) { } void SOC_U::Poll(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 2, 4); + IPC::RequestParser rp(ctx); u32 nfds = rp.Pop(); s32 timeout = rp.Pop(); rp.PopPID(); @@ -1255,7 +1255,7 @@ void SOC_U::Poll(Kernel::HLERequestContext& ctx) { } void SOC_U::GetSockName(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 2, 2); + IPC::RequestParser rp(ctx); const auto socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -1285,7 +1285,7 @@ void SOC_U::GetSockName(Kernel::HLERequestContext& ctx) { } void SOC_U::Shutdown(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0C, 2, 2); + IPC::RequestParser rp(ctx); u32 socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -1306,7 +1306,7 @@ void SOC_U::Shutdown(Kernel::HLERequestContext& ctx) { } void SOC_U::GetHostByName(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0D, 2, 2); + IPC::RequestParser rp(ctx); [[maybe_unused]] u32 name_len = rp.Pop(); [[maybe_unused]] u32 out_buf_len = rp.Pop(); auto host_name = rp.PopStaticBuffer(); @@ -1349,7 +1349,7 @@ void SOC_U::GetHostByName(Kernel::HLERequestContext& ctx) { } void SOC_U::GetPeerName(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x18, 2, 2); + IPC::RequestParser rp(ctx); const auto socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -1384,7 +1384,7 @@ void SOC_U::Connect(Kernel::HLERequestContext& ctx) { // TODO(Subv): Calling this function on a blocking socket will block the emu thread, // 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); + IPC::RequestParser rp(ctx); const auto socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -1418,7 +1418,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); + IPC::RequestParser rp(ctx); [[maybe_unused]] const auto memory_block_size = rp.Pop(); rp.PopPID(); rp.PopObject(); @@ -1429,7 +1429,7 @@ void SOC_U::InitializeSockets(Kernel::HLERequestContext& ctx) { void SOC_U::ShutdownSockets(Kernel::HLERequestContext& ctx) { // TODO(Subv): Implement - IPC::RequestParser rp(ctx, 0x19, 0, 0); + IPC::RequestParser rp(ctx); CleanupSockets(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -1437,7 +1437,7 @@ void SOC_U::ShutdownSockets(Kernel::HLERequestContext& ctx) { } void SOC_U::GetSockOpt(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 4, 2); + IPC::RequestParser rp(ctx); u32 socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -1485,7 +1485,7 @@ void SOC_U::GetSockOpt(Kernel::HLERequestContext& ctx) { } void SOC_U::SetSockOpt(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 4, 4); + IPC::RequestParser rp(ctx); const auto socket_handle = rp.Pop(); auto fd_info = open_sockets.find(socket_handle); if (fd_info == open_sockets.end()) { @@ -1528,7 +1528,7 @@ void SOC_U::SetSockOpt(Kernel::HLERequestContext& ctx) { } void SOC_U::GetNetworkOpt(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1A, 3, 0); + IPC::RequestParser rp(ctx); u32 level = rp.Pop(); u32 opt_name = rp.Pop(); u32 opt_len = rp.Pop(); @@ -1583,7 +1583,7 @@ void SOC_U::GetNetworkOpt(Kernel::HLERequestContext& ctx) { } void SOC_U::GetAddrInfoImpl(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x0F, 4, 6); + IPC::RequestParser rp(ctx); u32 node_length = rp.Pop(); u32 service_length = rp.Pop(); u32 hints_size = rp.Pop(); @@ -1646,7 +1646,7 @@ void SOC_U::GetAddrInfoImpl(Kernel::HLERequestContext& ctx) { } void SOC_U::GetNameInfoImpl(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 4, 2); + IPC::RequestParser rp(ctx); u32 socklen = rp.Pop(); u32 hostlen = rp.Pop(); u32 servlen = rp.Pop(); @@ -1677,39 +1677,39 @@ void SOC_U::GetNameInfoImpl(Kernel::HLERequestContext& ctx) { SOC_U::SOC_U() : ServiceFramework("soc:U") { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 4), &SOC_U::InitializeSockets, "InitializeSockets"}, - {IPC::MakeHeader(0x0002, 3, 2), &SOC_U::Socket, "Socket"}, - {IPC::MakeHeader(0x0003, 2, 2), &SOC_U::Listen, "Listen"}, - {IPC::MakeHeader(0x0004, 2, 2), &SOC_U::Accept, "Accept"}, - {IPC::MakeHeader(0x0005, 2, 4), &SOC_U::Bind, "Bind"}, - {IPC::MakeHeader(0x0006, 2, 4), &SOC_U::Connect, "Connect"}, - {IPC::MakeHeader(0x0007, 4, 4), &SOC_U::RecvFromOther, "recvfrom_other"}, - {IPC::MakeHeader(0x0008, 4, 2), &SOC_U::RecvFrom, "RecvFrom"}, - {IPC::MakeHeader(0x0009, 4, 6), &SOC_U::SendToOther, "SendToOther"}, - {IPC::MakeHeader(0x000A, 4, 6), &SOC_U::SendTo, "SendTo"}, - {IPC::MakeHeader(0x000B, 1, 2), &SOC_U::Close, "Close"}, - {IPC::MakeHeader(0x000C, 2, 2), &SOC_U::Shutdown, "Shutdown"}, - {IPC::MakeHeader(0x000D, 2, 2), &SOC_U::GetHostByName, "GetHostByName"}, - {IPC::MakeHeader(0x000E, 3, 2), nullptr, "GetHostByAddr"}, - {IPC::MakeHeader(0x000F, 4, 6), &SOC_U::GetAddrInfoImpl, "GetAddrInfo"}, - {IPC::MakeHeader(0x0010, 4, 2), &SOC_U::GetNameInfoImpl, "GetNameInfo"}, - {IPC::MakeHeader(0x0011, 4, 2), &SOC_U::GetSockOpt, "GetSockOpt"}, - {IPC::MakeHeader(0x0012, 4, 4), &SOC_U::SetSockOpt, "SetSockOpt"}, - {IPC::MakeHeader(0x0013, 3, 2), &SOC_U::Fcntl, "Fcntl"}, - {IPC::MakeHeader(0x0014, 2, 4), &SOC_U::Poll, "Poll"}, - {IPC::MakeHeader(0x0015, 1, 2), nullptr, "SockAtMark"}, - {IPC::MakeHeader(0x0016, 0, 0), &SOC_U::GetHostId, "GetHostId"}, - {IPC::MakeHeader(0x0017, 2, 2), &SOC_U::GetSockName, "GetSockName"}, - {IPC::MakeHeader(0x0018, 2, 2), &SOC_U::GetPeerName, "GetPeerName"}, - {IPC::MakeHeader(0x0019, 0, 0), &SOC_U::ShutdownSockets, "ShutdownSockets"}, - {IPC::MakeHeader(0x001A, 3, 0), &SOC_U::GetNetworkOpt, "GetNetworkOpt"}, - {IPC::MakeHeader(0x001B, 1, 0), nullptr, "ICMPSocket"}, - {IPC::MakeHeader(0x001C, 4, 4), nullptr, "ICMPPing"}, - {IPC::MakeHeader(0x001D, 1, 0), nullptr, "ICMPCancel"}, - {IPC::MakeHeader(0x001E, 1, 0), nullptr, "ICMPClose"}, - {IPC::MakeHeader(0x001F, 1, 0), nullptr, "GetResolverInfo"}, - {IPC::MakeHeader(0x0021, 0, 2), nullptr, "CloseSockets"}, - {IPC::MakeHeader(0x0023, 1, 0), nullptr, "AddGlobalSocket"}, + {0x0001, &SOC_U::InitializeSockets, "InitializeSockets"}, + {0x0002, &SOC_U::Socket, "Socket"}, + {0x0003, &SOC_U::Listen, "Listen"}, + {0x0004, &SOC_U::Accept, "Accept"}, + {0x0005, &SOC_U::Bind, "Bind"}, + {0x0006, &SOC_U::Connect, "Connect"}, + {0x0007, &SOC_U::RecvFromOther, "recvfrom_other"}, + {0x0008, &SOC_U::RecvFrom, "RecvFrom"}, + {0x0009, &SOC_U::SendToOther, "SendToOther"}, + {0x000A, &SOC_U::SendTo, "SendTo"}, + {0x000B, &SOC_U::Close, "Close"}, + {0x000C, &SOC_U::Shutdown, "Shutdown"}, + {0x000D, &SOC_U::GetHostByName, "GetHostByName"}, + {0x000E, nullptr, "GetHostByAddr"}, + {0x000F, &SOC_U::GetAddrInfoImpl, "GetAddrInfo"}, + {0x0010, &SOC_U::GetNameInfoImpl, "GetNameInfo"}, + {0x0011, &SOC_U::GetSockOpt, "GetSockOpt"}, + {0x0012, &SOC_U::SetSockOpt, "SetSockOpt"}, + {0x0013, &SOC_U::Fcntl, "Fcntl"}, + {0x0014, &SOC_U::Poll, "Poll"}, + {0x0015, nullptr, "SockAtMark"}, + {0x0016, &SOC_U::GetHostId, "GetHostId"}, + {0x0017, &SOC_U::GetSockName, "GetSockName"}, + {0x0018, &SOC_U::GetPeerName, "GetPeerName"}, + {0x0019, &SOC_U::ShutdownSockets, "ShutdownSockets"}, + {0x001A, &SOC_U::GetNetworkOpt, "GetNetworkOpt"}, + {0x001B, nullptr, "ICMPSocket"}, + {0x001C, nullptr, "ICMPPing"}, + {0x001D, nullptr, "ICMPCancel"}, + {0x001E, nullptr, "ICMPClose"}, + {0x001F, nullptr, "GetResolverInfo"}, + {0x0021, nullptr, "CloseSockets"}, + {0x0023, nullptr, "AddGlobalSocket"}, // clang-format on }; diff --git a/src/core/hle/service/ssl_c.cpp b/src/core/hle/service/ssl_c.cpp index 58f074c88..4eb41da17 100644 --- a/src/core/hle/service/ssl_c.cpp +++ b/src/core/hle/service/ssl_c.cpp @@ -13,7 +13,7 @@ SERIALIZE_EXPORT_IMPL(Service::SSL::SSL_C) namespace Service::SSL { void SSL_C::Initialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x01, 0, 2); + IPC::RequestParser rp(ctx); rp.PopPID(); // Seed random number generator when the SSL service is initialized @@ -26,7 +26,7 @@ void SSL_C::Initialize(Kernel::HLERequestContext& ctx) { } void SSL_C::GenerateRandomData(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 1, 2); + IPC::RequestParser rp(ctx); u32 size = rp.Pop(); auto buffer = rp.PopMappedBuffer(); @@ -62,29 +62,29 @@ void SSL_C::GenerateRandomData(Kernel::HLERequestContext& ctx) { SSL_C::SSL_C() : ServiceFramework("ssl:C") { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 0, 2), &SSL_C::Initialize, "Initialize"}, - {IPC::MakeHeader(0x0002, 3, 2), nullptr, "CreateContext"}, - {IPC::MakeHeader(0x0003, 0, 0), nullptr, "CreateRootCertChain"}, - {IPC::MakeHeader(0x0004, 1, 0), nullptr, "DestroyRootCertChain"}, - {IPC::MakeHeader(0x0005, 2, 2), nullptr, "AddTrustedRootCA"}, - {IPC::MakeHeader(0x0006, 2, 0), nullptr, "RootCertChainAddDefaultCert"}, - {IPC::MakeHeader(0x0007, 2, 0), nullptr, "RootCertChainRemoveCert"}, - {IPC::MakeHeader(0x000D, 2, 4), nullptr, "OpenClientCertContext"}, - {IPC::MakeHeader(0x000E, 1, 0), nullptr, "OpenDefaultClientCertContext"}, - {IPC::MakeHeader(0x000F, 1, 0), nullptr, "CloseClientCertContext"}, - {IPC::MakeHeader(0x0011, 1, 2), &SSL_C::GenerateRandomData, "GenerateRandomData"}, - {IPC::MakeHeader(0x0012, 1, 2), nullptr, "InitializeConnectionSession"}, - {IPC::MakeHeader(0x0013, 1, 0), nullptr, "StartConnection"}, - {IPC::MakeHeader(0x0014, 1, 0), nullptr, "StartConnectionGetOut"}, - {IPC::MakeHeader(0x0015, 2, 2), nullptr, "Read"}, - {IPC::MakeHeader(0x0016, 2, 2), nullptr, "ReadPeek"}, - {IPC::MakeHeader(0x0017, 2, 2), nullptr, "Write"}, - {IPC::MakeHeader(0x0018, 2, 0), nullptr, "ContextSetRootCertChain"}, - {IPC::MakeHeader(0x0019, 2, 0), nullptr, "ContextSetClientCert"}, - {IPC::MakeHeader(0x001B, 2, 0), nullptr, "ContextClearOpt"}, - {IPC::MakeHeader(0x001C, 3, 4), nullptr, "ContextGetProtocolCipher"}, - {IPC::MakeHeader(0x001E, 1, 0), nullptr, "DestroyContext"}, - {IPC::MakeHeader(0x001F, 2, 2), nullptr, "ContextInitSharedmem"}, + {0x0001, &SSL_C::Initialize, "Initialize"}, + {0x0002, nullptr, "CreateContext"}, + {0x0003, nullptr, "CreateRootCertChain"}, + {0x0004, nullptr, "DestroyRootCertChain"}, + {0x0005, nullptr, "AddTrustedRootCA"}, + {0x0006, nullptr, "RootCertChainAddDefaultCert"}, + {0x0007, nullptr, "RootCertChainRemoveCert"}, + {0x000D, nullptr, "OpenClientCertContext"}, + {0x000E, nullptr, "OpenDefaultClientCertContext"}, + {0x000F, nullptr, "CloseClientCertContext"}, + {0x0011, &SSL_C::GenerateRandomData, "GenerateRandomData"}, + {0x0012, nullptr, "InitializeConnectionSession"}, + {0x0013, nullptr, "StartConnection"}, + {0x0014, nullptr, "StartConnectionGetOut"}, + {0x0015, nullptr, "Read"}, + {0x0016, nullptr, "ReadPeek"}, + {0x0017, nullptr, "Write"}, + {0x0018, nullptr, "ContextSetRootCertChain"}, + {0x0019, nullptr, "ContextSetClientCert"}, + {0x001B, nullptr, "ContextClearOpt"}, + {0x001C, nullptr, "ContextGetProtocolCipher"}, + {0x001E, nullptr, "DestroyContext"}, + {0x001F, nullptr, "ContextInitSharedmem"}, // clang-format on }; diff --git a/src/core/hle/service/y2r_u.cpp b/src/core/hle/service/y2r_u.cpp index c4989328e..1cdab3ff5 100644 --- a/src/core/hle/service/y2r_u.cpp +++ b/src/core/hle/service/y2r_u.cpp @@ -78,7 +78,7 @@ ResultCode ConversionConfiguration::SetStandardCoefficient( } void Y2R_U::SetInputFormat(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1, 1, 0); + IPC::RequestParser rp(ctx); conversion.input_format = rp.PopEnum(); @@ -89,7 +89,7 @@ void Y2R_U::SetInputFormat(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetInputFormat(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -99,7 +99,7 @@ void Y2R_U::GetInputFormat(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetOutputFormat(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x3, 1, 0); + IPC::RequestParser rp(ctx); conversion.output_format = rp.PopEnum(); @@ -110,7 +110,7 @@ void Y2R_U::SetOutputFormat(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetOutputFormat(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x4, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -120,7 +120,7 @@ void Y2R_U::GetOutputFormat(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetRotation(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x5, 1, 0); + IPC::RequestParser rp(ctx); conversion.rotation = rp.PopEnum(); @@ -131,7 +131,7 @@ void Y2R_U::SetRotation(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetRotation(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x6, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -141,7 +141,7 @@ void Y2R_U::GetRotation(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetBlockAlignment(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x7, 1, 0); + IPC::RequestParser rp(ctx); conversion.block_alignment = rp.PopEnum(); @@ -152,7 +152,7 @@ void Y2R_U::SetBlockAlignment(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetBlockAlignment(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x8, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -162,7 +162,7 @@ void Y2R_U::GetBlockAlignment(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetSpacialDithering(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x9, 1, 0); + IPC::RequestParser rp(ctx); spacial_dithering_enabled = rp.Pop(); @@ -173,7 +173,7 @@ void Y2R_U::SetSpacialDithering(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetSpacialDithering(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xA, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -183,7 +183,7 @@ void Y2R_U::GetSpacialDithering(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetTemporalDithering(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xB, 1, 0); + IPC::RequestParser rp(ctx); temporal_dithering_enabled = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -193,7 +193,7 @@ void Y2R_U::SetTemporalDithering(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetTemporalDithering(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xC, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -203,7 +203,7 @@ void Y2R_U::GetTemporalDithering(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetTransferEndInterrupt(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xD, 1, 0); + IPC::RequestParser rp(ctx); transfer_end_interrupt_enabled = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -213,7 +213,7 @@ void Y2R_U::SetTransferEndInterrupt(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetTransferEndInterrupt(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xE, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -223,7 +223,7 @@ void Y2R_U::GetTransferEndInterrupt(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetTransferEndEvent(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0xF, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 2); rb.Push(RESULT_SUCCESS); @@ -233,7 +233,7 @@ void Y2R_U::GetTransferEndEvent(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetSendingY(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x10, 4, 2); + IPC::RequestParser rp(ctx); conversion.src_Y.address = rp.Pop(); conversion.src_Y.image_size = rp.Pop(); conversion.src_Y.transfer_unit = rp.Pop(); @@ -252,7 +252,7 @@ void Y2R_U::SetSendingY(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetSendingU(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x11, 4, 2); + IPC::RequestParser rp(ctx); conversion.src_U.address = rp.Pop(); conversion.src_U.image_size = rp.Pop(); conversion.src_U.transfer_unit = rp.Pop(); @@ -271,7 +271,7 @@ void Y2R_U::SetSendingU(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetSendingV(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x12, 4, 2); + IPC::RequestParser rp(ctx); conversion.src_V.address = rp.Pop(); conversion.src_V.image_size = rp.Pop(); @@ -291,7 +291,7 @@ void Y2R_U::SetSendingV(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetSendingYUYV(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x13, 4, 2); + IPC::RequestParser rp(ctx); conversion.src_YUYV.address = rp.Pop(); conversion.src_YUYV.image_size = rp.Pop(); @@ -311,7 +311,7 @@ void Y2R_U::SetSendingYUYV(Kernel::HLERequestContext& ctx) { } void Y2R_U::IsFinishedSendingYuv(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x14, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -321,7 +321,7 @@ void Y2R_U::IsFinishedSendingYuv(Kernel::HLERequestContext& ctx) { } void Y2R_U::IsFinishedSendingY(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x15, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -331,7 +331,7 @@ void Y2R_U::IsFinishedSendingY(Kernel::HLERequestContext& ctx) { } void Y2R_U::IsFinishedSendingU(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x16, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -341,7 +341,7 @@ void Y2R_U::IsFinishedSendingU(Kernel::HLERequestContext& ctx) { } void Y2R_U::IsFinishedSendingV(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x17, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -351,7 +351,7 @@ void Y2R_U::IsFinishedSendingV(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetReceiving(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x18, 4, 2); + IPC::RequestParser rp(ctx); conversion.dst.address = rp.Pop(); conversion.dst.image_size = rp.Pop(); @@ -371,7 +371,7 @@ void Y2R_U::SetReceiving(Kernel::HLERequestContext& ctx) { } void Y2R_U::IsFinishedReceiving(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x19, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -381,7 +381,7 @@ void Y2R_U::IsFinishedReceiving(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetInputLineWidth(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1A, 1, 0); + IPC::RequestParser rp(ctx); u32 input_line_width = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -391,7 +391,7 @@ void Y2R_U::SetInputLineWidth(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetInputLineWidth(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1B, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -401,7 +401,7 @@ void Y2R_U::GetInputLineWidth(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetInputLines(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1C, 1, 0); + IPC::RequestParser rp(ctx); u32 input_lines = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -411,7 +411,7 @@ void Y2R_U::SetInputLines(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetInputLines(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1D, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -421,7 +421,7 @@ void Y2R_U::GetInputLines(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetCoefficient(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1E, 4, 0); + IPC::RequestParser rp(ctx); rp.PopRaw(conversion.coefficients); @@ -435,7 +435,7 @@ void Y2R_U::SetCoefficient(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetCoefficient(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x1F, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(5, 0); rb.Push(RESULT_SUCCESS); @@ -445,7 +445,7 @@ void Y2R_U::GetCoefficient(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetStandardCoefficient(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x20, 1, 0); + IPC::RequestParser rp(ctx); u32 index = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -455,7 +455,7 @@ void Y2R_U::SetStandardCoefficient(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetStandardCoefficient(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x21, 1, 0); + IPC::RequestParser rp(ctx); const u32 index = rp.Pop(); if (index < standard_coefficients.size()) { @@ -474,7 +474,7 @@ void Y2R_U::GetStandardCoefficient(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetAlpha(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x22, 1, 0); + IPC::RequestParser rp(ctx); conversion.alpha = rp.Pop(); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -484,7 +484,7 @@ void Y2R_U::SetAlpha(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetAlpha(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x23, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -494,7 +494,7 @@ void Y2R_U::GetAlpha(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetDitheringWeightParams(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x24, 8, 0); // 0x240200 + IPC::RequestParser rp(ctx); rp.PopRaw(dithering_weight_params); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -503,7 +503,7 @@ void Y2R_U::SetDitheringWeightParams(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetDitheringWeightParams(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x25, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(9, 0); rb.Push(RESULT_SUCCESS); @@ -513,7 +513,7 @@ void Y2R_U::GetDitheringWeightParams(Kernel::HLERequestContext& ctx) { } void Y2R_U::StartConversion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x26, 0, 0); + IPC::RequestParser rp(ctx); // dst_image_size would seem to be perfect for this, but it doesn't include the gap :( u32 total_output_size = @@ -532,7 +532,7 @@ void Y2R_U::StartConversion(Kernel::HLERequestContext& ctx) { } void Y2R_U::StopConversion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x27, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -541,7 +541,7 @@ void Y2R_U::StopConversion(Kernel::HLERequestContext& ctx) { } void Y2R_U::IsBusyConversion(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x28, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -551,7 +551,7 @@ void Y2R_U::IsBusyConversion(Kernel::HLERequestContext& ctx) { } void Y2R_U::SetPackageParameter(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x29, 7, 0); + IPC::RequestParser rp(ctx); auto params = rp.PopRaw(); conversion.input_format = params.input_format; @@ -590,7 +590,7 @@ cleanup: } void Y2R_U::PingProcess(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2A, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); rb.Push(RESULT_SUCCESS); @@ -600,7 +600,7 @@ void Y2R_U::PingProcess(Kernel::HLERequestContext& ctx) { } void Y2R_U::DriverInitialize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2B, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); @@ -627,7 +627,7 @@ void Y2R_U::DriverInitialize(Kernel::HLERequestContext& ctx) { } void Y2R_U::DriverFinalize(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2C, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(1, 0); rb.Push(RESULT_SUCCESS); @@ -636,7 +636,7 @@ void Y2R_U::DriverFinalize(Kernel::HLERequestContext& ctx) { } void Y2R_U::GetPackageParameter(Kernel::HLERequestContext& ctx) { - IPC::RequestParser rp(ctx, 0x2D, 0, 0); + IPC::RequestParser rp(ctx); IPC::RequestBuilder rb = rp.MakeBuilder(4, 0); rb.Push(RESULT_SUCCESS); @@ -648,51 +648,51 @@ void Y2R_U::GetPackageParameter(Kernel::HLERequestContext& ctx) { Y2R_U::Y2R_U(Core::System& system) : ServiceFramework("y2r:u", 1), system(system) { static const FunctionInfo functions[] = { // clang-format off - {IPC::MakeHeader(0x0001, 1, 0), &Y2R_U::SetInputFormat, "SetInputFormat"}, - {IPC::MakeHeader(0x0002, 0, 0), &Y2R_U::GetInputFormat, "GetInputFormat"}, - {IPC::MakeHeader(0x0003, 1, 0), &Y2R_U::SetOutputFormat, "SetOutputFormat"}, - {IPC::MakeHeader(0x0004, 0, 0), &Y2R_U::GetOutputFormat, "GetOutputFormat"}, - {IPC::MakeHeader(0x0005, 1, 0), &Y2R_U::SetRotation, "SetRotation"}, - {IPC::MakeHeader(0x0006, 0, 0), &Y2R_U::GetRotation, "GetRotation"}, - {IPC::MakeHeader(0x0007, 1, 0), &Y2R_U::SetBlockAlignment, "SetBlockAlignment"}, - {IPC::MakeHeader(0x0008, 0, 0), &Y2R_U::GetBlockAlignment, "GetBlockAlignment"}, - {IPC::MakeHeader(0x0009, 1, 0), &Y2R_U::SetSpacialDithering, "SetSpacialDithering"}, - {IPC::MakeHeader(0x000A, 0, 0), &Y2R_U::GetSpacialDithering, "GetSpacialDithering"}, - {IPC::MakeHeader(0x000B, 1, 0), &Y2R_U::SetTemporalDithering, "SetTemporalDithering"}, - {IPC::MakeHeader(0x000C, 0, 0), &Y2R_U::GetTemporalDithering, "GetTemporalDithering"}, - {IPC::MakeHeader(0x000D, 1, 0), &Y2R_U::SetTransferEndInterrupt, "SetTransferEndInterrupt"}, - {IPC::MakeHeader(0x000E, 0, 0), &Y2R_U::GetTransferEndInterrupt, "GetTransferEndInterrupt"}, - {IPC::MakeHeader(0x000F, 0, 0), &Y2R_U::GetTransferEndEvent, "GetTransferEndEvent"}, - {IPC::MakeHeader(0x0010, 4, 2), &Y2R_U::SetSendingY, "SetSendingY"}, - {IPC::MakeHeader(0x0011, 4, 2), &Y2R_U::SetSendingU, "SetSendingU"}, - {IPC::MakeHeader(0x0012, 4, 2), &Y2R_U::SetSendingV, "SetSendingV"}, - {IPC::MakeHeader(0x0013, 4, 2), &Y2R_U::SetSendingYUYV, "SetSendingYUYV"}, - {IPC::MakeHeader(0x0014, 0, 0), &Y2R_U::IsFinishedSendingYuv, "IsFinishedSendingYuv"}, - {IPC::MakeHeader(0x0015, 0, 0), &Y2R_U::IsFinishedSendingY, "IsFinishedSendingY"}, - {IPC::MakeHeader(0x0016, 0, 0), &Y2R_U::IsFinishedSendingU, "IsFinishedSendingU"}, - {IPC::MakeHeader(0x0017, 0, 0), &Y2R_U::IsFinishedSendingV, "IsFinishedSendingV"}, - {IPC::MakeHeader(0x0018, 4, 2), &Y2R_U::SetReceiving, "SetReceiving"}, - {IPC::MakeHeader(0x0019, 0, 0), &Y2R_U::IsFinishedReceiving, "IsFinishedReceiving"}, - {IPC::MakeHeader(0x001A, 1, 0), &Y2R_U::SetInputLineWidth, "SetInputLineWidth"}, - {IPC::MakeHeader(0x001B, 0, 0), &Y2R_U::GetInputLineWidth, "GetInputLineWidth"}, - {IPC::MakeHeader(0x001C, 1, 0), &Y2R_U::SetInputLines, "SetInputLines"}, - {IPC::MakeHeader(0x001D, 0, 0), &Y2R_U::GetInputLines, "GetInputLines"}, - {IPC::MakeHeader(0x001E, 4, 0), &Y2R_U::SetCoefficient, "SetCoefficient"}, - {IPC::MakeHeader(0x001F, 0, 0), &Y2R_U::GetCoefficient, "GetCoefficient"}, - {IPC::MakeHeader(0x0020, 1, 0), &Y2R_U::SetStandardCoefficient, "SetStandardCoefficient"}, - {IPC::MakeHeader(0x0021, 1, 0), &Y2R_U::GetStandardCoefficient, "GetStandardCoefficient"}, - {IPC::MakeHeader(0x0022, 1, 0), &Y2R_U::SetAlpha, "SetAlpha"}, - {IPC::MakeHeader(0x0023, 0, 0), &Y2R_U::GetAlpha, "GetAlpha"}, - {IPC::MakeHeader(0x0024, 8, 0), &Y2R_U::SetDitheringWeightParams, "SetDitheringWeightParams"}, - {IPC::MakeHeader(0x0025, 0, 0), &Y2R_U::GetDitheringWeightParams, "GetDitheringWeightParams"}, - {IPC::MakeHeader(0x0026, 0, 0), &Y2R_U::StartConversion, "StartConversion"}, - {IPC::MakeHeader(0x0027, 0, 0), &Y2R_U::StopConversion, "StopConversion"}, - {IPC::MakeHeader(0x0028, 0, 0), &Y2R_U::IsBusyConversion, "IsBusyConversion"}, - {IPC::MakeHeader(0x0029, 7, 0), &Y2R_U::SetPackageParameter, "SetPackageParameter"}, - {IPC::MakeHeader(0x002A, 0, 0), &Y2R_U::PingProcess, "PingProcess"}, - {IPC::MakeHeader(0x002B, 0, 0), &Y2R_U::DriverInitialize, "DriverInitialize"}, - {IPC::MakeHeader(0x002C, 0, 0), &Y2R_U::DriverFinalize, "DriverFinalize"}, - {IPC::MakeHeader(0x002D, 0, 0), &Y2R_U::GetPackageParameter, "GetPackageParameter"}, + {0x0001, &Y2R_U::SetInputFormat, "SetInputFormat"}, + {0x0002, &Y2R_U::GetInputFormat, "GetInputFormat"}, + {0x0003, &Y2R_U::SetOutputFormat, "SetOutputFormat"}, + {0x0004, &Y2R_U::GetOutputFormat, "GetOutputFormat"}, + {0x0005, &Y2R_U::SetRotation, "SetRotation"}, + {0x0006, &Y2R_U::GetRotation, "GetRotation"}, + {0x0007, &Y2R_U::SetBlockAlignment, "SetBlockAlignment"}, + {0x0008, &Y2R_U::GetBlockAlignment, "GetBlockAlignment"}, + {0x0009, &Y2R_U::SetSpacialDithering, "SetSpacialDithering"}, + {0x000A, &Y2R_U::GetSpacialDithering, "GetSpacialDithering"}, + {0x000B, &Y2R_U::SetTemporalDithering, "SetTemporalDithering"}, + {0x000C, &Y2R_U::GetTemporalDithering, "GetTemporalDithering"}, + {0x000D, &Y2R_U::SetTransferEndInterrupt, "SetTransferEndInterrupt"}, + {0x000E, &Y2R_U::GetTransferEndInterrupt, "GetTransferEndInterrupt"}, + {0x000F, &Y2R_U::GetTransferEndEvent, "GetTransferEndEvent"}, + {0x0010, &Y2R_U::SetSendingY, "SetSendingY"}, + {0x0011, &Y2R_U::SetSendingU, "SetSendingU"}, + {0x0012, &Y2R_U::SetSendingV, "SetSendingV"}, + {0x0013, &Y2R_U::SetSendingYUYV, "SetSendingYUYV"}, + {0x0014, &Y2R_U::IsFinishedSendingYuv, "IsFinishedSendingYuv"}, + {0x0015, &Y2R_U::IsFinishedSendingY, "IsFinishedSendingY"}, + {0x0016, &Y2R_U::IsFinishedSendingU, "IsFinishedSendingU"}, + {0x0017, &Y2R_U::IsFinishedSendingV, "IsFinishedSendingV"}, + {0x0018, &Y2R_U::SetReceiving, "SetReceiving"}, + {0x0019, &Y2R_U::IsFinishedReceiving, "IsFinishedReceiving"}, + {0x001A, &Y2R_U::SetInputLineWidth, "SetInputLineWidth"}, + {0x001B, &Y2R_U::GetInputLineWidth, "GetInputLineWidth"}, + {0x001C, &Y2R_U::SetInputLines, "SetInputLines"}, + {0x001D, &Y2R_U::GetInputLines, "GetInputLines"}, + {0x001E, &Y2R_U::SetCoefficient, "SetCoefficient"}, + {0x001F, &Y2R_U::GetCoefficient, "GetCoefficient"}, + {0x0020, &Y2R_U::SetStandardCoefficient, "SetStandardCoefficient"}, + {0x0021, &Y2R_U::GetStandardCoefficient, "GetStandardCoefficient"}, + {0x0022, &Y2R_U::SetAlpha, "SetAlpha"}, + {0x0023, &Y2R_U::GetAlpha, "GetAlpha"}, + {0x0024, &Y2R_U::SetDitheringWeightParams, "SetDitheringWeightParams"}, + {0x0025, &Y2R_U::GetDitheringWeightParams, "GetDitheringWeightParams"}, + {0x0026, &Y2R_U::StartConversion, "StartConversion"}, + {0x0027, &Y2R_U::StopConversion, "StopConversion"}, + {0x0028, &Y2R_U::IsBusyConversion, "IsBusyConversion"}, + {0x0029, &Y2R_U::SetPackageParameter, "SetPackageParameter"}, + {0x002A, &Y2R_U::PingProcess, "PingProcess"}, + {0x002B, &Y2R_U::DriverInitialize, "DriverInitialize"}, + {0x002C, &Y2R_U::DriverFinalize, "DriverFinalize"}, + {0x002D, &Y2R_U::GetPackageParameter, "GetPackageParameter"}, // clang-format on }; RegisterHandlers(functions);