hle: Eliminate need to specify command headers for IPC. (#6678)

This commit is contained in:
Steveice10 2023-07-14 17:32:59 -07:00 committed by GitHub
parent 0bedb28bdc
commit e043caac27
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
96 changed files with 2691 additions and 2707 deletions

View file

@ -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<u8> 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<Kernel::Event>();
@ -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<Kernel::Event>();
@ -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<SOC::SOC_U> 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<u8>& 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<u8>();
u32 minor = rp.Pop<u8>();
@ -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<Kernel::Event>();
@ -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>();
u32 unk_descriptor = rp.Pop<u32>();
u32 unk_param = rp.Pop<u32>();
@ -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<u32>();
rp.Skip(2, false); // ProcessId descriptor

View file

@ -10,26 +10,26 @@ namespace Service::AC {
AC_I::AC_I(std::shared_ptr<Module> 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);

View file

@ -10,26 +10,26 @@ namespace Service::AC {
AC_U::AC_U(std::shared_ptr<Module> 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);