From a6273dd56a4a7066ef27fa186e1046db677ff578 Mon Sep 17 00:00:00 2001
From: mailwl <mailwl@gmail.com>
Date: Wed, 9 Aug 2017 12:00:54 +0300
Subject: [PATCH] Service/dlp: Update function tables according 3dbrew

---
 src/core/hle/service/dlp/dlp_clnt.cpp | 21 ++++++++++++++++++++-
 src/core/hle/service/dlp/dlp_fkcl.cpp | 18 +++++++++++++++++-
 src/core/hle/service/dlp/dlp_srvr.cpp |  9 +++++++--
 3 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/src/core/hle/service/dlp/dlp_clnt.cpp b/src/core/hle/service/dlp/dlp_clnt.cpp
index 56f934b3f..6f2bf2061 100644
--- a/src/core/hle/service/dlp/dlp_clnt.cpp
+++ b/src/core/hle/service/dlp/dlp_clnt.cpp
@@ -8,7 +8,26 @@ namespace Service {
 namespace DLP {
 
 const Interface::FunctionInfo FunctionTable[] = {
-    {0x000100C3, nullptr, "Initialize"}, {0x00110000, nullptr, "GetWirelessRebootPassphrase"},
+    {0x000100C3, nullptr, "Initialize"},
+    {0x00020000, nullptr, "Finalize"},
+    {0x00030000, nullptr, "GetEventDesc"},
+    {0x00040000, nullptr, "GetChannel"},
+    {0x00050180, nullptr, "StartScan"},
+    {0x00060000, nullptr, "StopScan"},
+    {0x00070080, nullptr, "GetServerInfo"},
+    {0x00080100, nullptr, "GetTitleInfo"},
+    {0x00090040, nullptr, "GetTitleInfoInOrder"},
+    {0x000A0080, nullptr, "DeleteScanInfo"},
+    {0x000B0100, nullptr, "PrepareForSystemDownload"},
+    {0x000C0000, nullptr, "StartSystemDownload"},
+    {0x000D0100, nullptr, "StartTitleDownload"},
+    {0x000E0000, nullptr, "GetMyStatus"},
+    {0x000F0040, nullptr, "GetConnectingNodes"},
+    {0x00100040, nullptr, "GetNodeInfo"},
+    {0x00110000, nullptr, "GetWirelessRebootPassphrase"},
+    {0x00120000, nullptr, "StopSession"},
+    {0x00130100, nullptr, "GetCupVersion"},
+    {0x00140100, nullptr, "GetDupAvailability"},
 };
 
 DLP_CLNT_Interface::DLP_CLNT_Interface() {
diff --git a/src/core/hle/service/dlp/dlp_fkcl.cpp b/src/core/hle/service/dlp/dlp_fkcl.cpp
index 29b9d52e0..fe6be7d32 100644
--- a/src/core/hle/service/dlp/dlp_fkcl.cpp
+++ b/src/core/hle/service/dlp/dlp_fkcl.cpp
@@ -8,7 +8,23 @@ namespace Service {
 namespace DLP {
 
 const Interface::FunctionInfo FunctionTable[] = {
-    {0x00010083, nullptr, "Initialize"}, {0x000F0000, nullptr, "GetWirelessRebootPassphrase"},
+    {0x00010083, nullptr, "Initialize"},
+    {0x00020000, nullptr, "Finalize"},
+    {0x00030000, nullptr, "GetEventDesc"},
+    {0x00040000, nullptr, "GetChannels"},
+    {0x00050180, nullptr, "StartScan"},
+    {0x00060000, nullptr, "StopScan"},
+    {0x00070080, nullptr, "GetServerInfo"},
+    {0x00080100, nullptr, "GetTitleInfo"},
+    {0x00090040, nullptr, "GetTitleInfoInOrder"},
+    {0x000A0080, nullptr, "DeleteScanInfo"},
+    {0x000B0100, nullptr, "StartFakeSession"},
+    {0x000C0000, nullptr, "GetMyStatus"},
+    {0x000D0040, nullptr, "GetConnectingNodes"},
+    {0x000E0040, nullptr, "GetNodeInfo"},
+    {0x000F0000, nullptr, "GetWirelessRebootPassphrase"},
+    {0x00100000, nullptr, "StopSession"},
+    {0x00110203, nullptr, "Initialize2"},
 };
 
 DLP_FKCL_Interface::DLP_FKCL_Interface() {
diff --git a/src/core/hle/service/dlp/dlp_srvr.cpp b/src/core/hle/service/dlp/dlp_srvr.cpp
index 32cfa2c44..1bcea43d3 100644
--- a/src/core/hle/service/dlp/dlp_srvr.cpp
+++ b/src/core/hle/service/dlp/dlp_srvr.cpp
@@ -11,7 +11,7 @@
 namespace Service {
 namespace DLP {
 
-static void unk_0x000E0040(Interface* self) {
+static void IsChild(Interface* self) {
     u32* cmd_buff = Kernel::GetCommandBuffer();
 
     cmd_buff[1] = RESULT_SUCCESS.raw;
@@ -24,14 +24,19 @@ const Interface::FunctionInfo FunctionTable[] = {
     {0x00010183, nullptr, "Initialize"},
     {0x00020000, nullptr, "Finalize"},
     {0x00030000, nullptr, "GetServerState"},
+    {0x00040000, nullptr, "GetEventDescription"},
     {0x00050080, nullptr, "StartAccepting"},
+    {0x00060000, nullptr, "EndAccepting"},
     {0x00070000, nullptr, "StartDistribution"},
     {0x000800C0, nullptr, "SendWirelessRebootPassphrase"},
     {0x00090040, nullptr, "AcceptClient"},
+    {0x000A0040, nullptr, "DisconnectClient"},
     {0x000B0042, nullptr, "GetConnectingClients"},
     {0x000C0040, nullptr, "GetClientInfo"},
     {0x000D0040, nullptr, "GetClientState"},
-    {0x000E0040, unk_0x000E0040, "unk_0x000E0040"},
+    {0x000E0040, IsChild, "IsChild"},
+    {0x000F0303, nullptr, "InitializeWithName"},
+    {0x00100000, nullptr, "GetDupNoticeNeed"},
 };
 
 DLP_SRVR_Interface::DLP_SRVR_Interface() {