mirror of
https://github.com/PabloMK7/citra.git
synced 2025-10-11 12:00:03 +00:00
hle: Eliminate need to specify command headers for IPC. (#6678)
This commit is contained in:
parent
0bedb28bdc
commit
e043caac27
96 changed files with 2691 additions and 2707 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<char, 0x24> 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<u64>();
|
||||
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<u64>();
|
||||
|
||||
|
@ -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<u64>();
|
||||
|
||||
|
@ -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<u32>();
|
||||
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<u32>();
|
||||
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<u64>();
|
||||
|
||||
|
@ -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<u32>();
|
||||
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<u32>();
|
||||
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<u32>();
|
||||
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<u32>();
|
||||
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<u32>();
|
||||
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<u32>();
|
||||
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<TitleDownloadConfig>();
|
||||
|
||||
|
@ -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<TitleDownloadConfig>();
|
||||
const u32 unknown_1 = rp.Pop<u32>();
|
||||
|
@ -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<u64>();
|
||||
const u16 country_code = rp.Pop<u16>();
|
||||
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue