summaryrefslogtreecommitdiff
path: root/src/core/hle/service/apt.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2014-06-14 12:13:16 -0400
committerGravatar bunnei2014-06-14 12:13:16 -0400
commit004df767953a949817da89bddcd5d1379240f769 (patch)
treeb2d54928dcbf3cb4dde0cd5d3277afe7999b7bd9 /src/core/hle/service/apt.cpp
parentGPU debugger: Const correctness and build fix. (diff)
parentKernel: Removed unnecessary "#pragma once". (diff)
downloadyuzu-004df767953a949817da89bddcd5d1379240f769.tar.gz
yuzu-004df767953a949817da89bddcd5d1379240f769.tar.xz
yuzu-004df767953a949817da89bddcd5d1379240f769.zip
Merge branch 'threading' of https://github.com/bunnei/citra
Conflicts: src/core/hle/function_wrappers.h src/core/hle/service/gsp.cpp
Diffstat (limited to 'src/core/hle/service/apt.cpp')
-rw-r--r--src/core/hle/service/apt.cpp187
1 files changed, 106 insertions, 81 deletions
diff --git a/src/core/hle/service/apt.cpp b/src/core/hle/service/apt.cpp
index 32759a087..a0012b5dd 100644
--- a/src/core/hle/service/apt.cpp
+++ b/src/core/hle/service/apt.cpp
@@ -6,6 +6,7 @@
6#include "common/common.h" 6#include "common/common.h"
7 7
8#include "core/hle/hle.h" 8#include "core/hle/hle.h"
9#include "core/hle/kernel/event.h"
9#include "core/hle/kernel/mutex.h" 10#include "core/hle/kernel/mutex.h"
10#include "core/hle/service/apt.h" 11#include "core/hle/service/apt.h"
11 12
@@ -15,96 +16,120 @@
15namespace APT_U { 16namespace APT_U {
16 17
17void Initialize(Service::Interface* self) { 18void Initialize(Service::Interface* self) {
18 NOTICE_LOG(OSHLE, "APT_U::Sync - Initialize"); 19 u32* cmd_buff = Service::GetCommandBuffer();
20 DEBUG_LOG(KERNEL, "called");
21
22 cmd_buff[3] = Kernel::CreateEvent(RESETTYPE_ONESHOT, "APT_U:Menu"); // APT menu event handle
23 cmd_buff[4] = Kernel::CreateEvent(RESETTYPE_ONESHOT, "APT_U:Pause"); // APT pause event handle
24
25 Kernel::SetEventLocked(cmd_buff[3], true);
26 Kernel::SetEventLocked(cmd_buff[4], false); // Fire start event
27
28 cmd_buff[1] = 0; // No error
19} 29}
20 30
21void GetLockHandle(Service::Interface* self) { 31void GetLockHandle(Service::Interface* self) {
22 u32* cmd_buff = Service::GetCommandBuffer(); 32 u32* cmd_buff = Service::GetCommandBuffer();
23 u32 flags = cmd_buff[1]; // TODO(bunnei): Figure out the purpose of the flag field 33 u32 flags = cmd_buff[1]; // TODO(bunnei): Figure out the purpose of the flag field
24 cmd_buff[1] = 0; // No error 34 cmd_buff[1] = 0; // No error
25 cmd_buff[5] = Kernel::CreateMutex(false); 35 cmd_buff[5] = Kernel::CreateMutex(false, "APT_U:Lock");
26 DEBUG_LOG(KERNEL, "APT_U::GetLockHandle called : created handle 0x%08X", cmd_buff[5]); 36 DEBUG_LOG(KERNEL, "called handle=0x%08X", cmd_buff[5]);
37}
38
39void Enable(Service::Interface* self) {
40 u32* cmd_buff = Service::GetCommandBuffer();
41 u32 unk = cmd_buff[1]; // TODO(bunnei): What is this field used for?
42 cmd_buff[1] = 0; // No error
43 ERROR_LOG(KERNEL, "(UNIMPEMENTED) called unk=0x%08X", unk);
44}
45
46void InquireNotification(Service::Interface* self) {
47 u32* cmd_buff = Service::GetCommandBuffer();
48 u32 app_id = cmd_buff[2];
49 cmd_buff[1] = 0; // No error
50 cmd_buff[3] = 0; // Signal type
51 ERROR_LOG(KERNEL, "(UNIMPEMENTED) called app_id=0x%08X", app_id);
27} 52}
28 53
29const Interface::FunctionInfo FunctionTable[] = { 54const Interface::FunctionInfo FunctionTable[] = {
30 {0x00010040, GetLockHandle, "GetLockHandle"}, 55 {0x00010040, GetLockHandle, "GetLockHandle"},
31 {0x00020080, Initialize, "Initialize"}, 56 {0x00020080, Initialize, "Initialize"},
32 {0x00030040, NULL, "Enable"}, 57 {0x00030040, Enable, "Enable"},
33 {0x00040040, NULL, "Finalize"}, 58 {0x00040040, nullptr, "Finalize"},
34 {0x00050040, NULL, "GetAppletManInfo"}, 59 {0x00050040, nullptr, "GetAppletManInfo"},
35 {0x00060040, NULL, "GetAppletInfo"}, 60 {0x00060040, nullptr, "GetAppletInfo"},
36 {0x00070000, NULL, "GetLastSignaledAppletId"}, 61 {0x00070000, nullptr, "GetLastSignaledAppletId"},
37 {0x00080000, NULL, "CountRegisteredApplet"}, 62 {0x00080000, nullptr, "CountRegisteredApplet"},
38 {0x00090040, NULL, "IsRegistered"}, 63 {0x00090040, nullptr, "IsRegistered"},
39 {0x000A0040, NULL, "GetAttribute"}, 64 {0x000A0040, nullptr, "GetAttribute"},
40 {0x000B0040, NULL, "InquireNotification"}, 65 {0x000B0040, InquireNotification, "InquireNotification"},
41 {0x000C0104, NULL, "SendParameter"}, 66 {0x000C0104, nullptr, "SendParameter"},
42 {0x000D0080, NULL, "ReceiveParameter"}, 67 {0x000D0080, nullptr, "ReceiveParameter"},
43 {0x000E0080, NULL, "GlanceParameter"}, 68 {0x000E0080, nullptr, "GlanceParameter"},
44 {0x000F0100, NULL, "CancelParameter"}, 69 {0x000F0100, nullptr, "CancelParameter"},
45 {0x001000C2, NULL, "DebugFunc"}, 70 {0x001000C2, nullptr, "DebugFunc"},
46 {0x001100C0, NULL, "MapProgramIdForDebug"}, 71 {0x001100C0, nullptr, "MapProgramIdForDebug"},
47 {0x00120040, NULL, "SetHomeMenuAppletIdForDebug"}, 72 {0x00120040, nullptr, "SetHomeMenuAppletIdForDebug"},
48 {0x00130000, NULL, "GetPreparationState"}, 73 {0x00130000, nullptr, "GetPreparationState"},
49 {0x00140040, NULL, "SetPreparationState"}, 74 {0x00140040, nullptr, "SetPreparationState"},
50 {0x00150140, NULL, "PrepareToStartApplication"}, 75 {0x00150140, nullptr, "PrepareToStartApplication"},
51 {0x00160040, NULL, "PreloadLibraryApplet"}, 76 {0x00160040, nullptr, "PreloadLibraryApplet"},
52 {0x00170040, NULL, "FinishPreloadingLibraryApplet"}, 77 {0x00170040, nullptr, "FinishPreloadingLibraryApplet"},
53 {0x00180040, NULL, "PrepareToStartLibraryApplet"}, 78 {0x00180040, nullptr, "PrepareToStartLibraryApplet"},
54 {0x00190040, NULL, "PrepareToStartSystemApplet"}, 79 {0x00190040, nullptr, "PrepareToStartSystemApplet"},
55 {0x001A0000, NULL, "PrepareToStartNewestHomeMenu"}, 80 {0x001A0000, nullptr, "PrepareToStartNewestHomeMenu"},
56 {0x001B00C4, NULL, "StartApplication"}, 81 {0x001B00C4, nullptr, "StartApplication"},
57 {0x001C0000, NULL, "WakeupApplication"}, 82 {0x001C0000, nullptr, "WakeupApplication"},
58 {0x001D0000, NULL, "CancelApplication"}, 83 {0x001D0000, nullptr, "CancelApplication"},
59 {0x001E0084, NULL, "StartLibraryApplet"}, 84 {0x001E0084, nullptr, "StartLibraryApplet"},
60 {0x001F0084, NULL, "StartSystemApplet"}, 85 {0x001F0084, nullptr, "StartSystemApplet"},
61 {0x00200044, NULL, "StartNewestHomeMenu"}, 86 {0x00200044, nullptr, "StartNewestHomeMenu"},
62 {0x00210000, NULL, "OrderToCloseApplication"}, 87 {0x00210000, nullptr, "OrderToCloseApplication"},
63 {0x00220040, NULL, "PrepareToCloseApplication"}, 88 {0x00220040, nullptr, "PrepareToCloseApplication"},
64 {0x00230040, NULL, "PrepareToJumpToApplication"}, 89 {0x00230040, nullptr, "PrepareToJumpToApplication"},
65 {0x00240044, NULL, "JumpToApplication"}, 90 {0x00240044, nullptr, "JumpToApplication"},
66 {0x002500C0, NULL, "PrepareToCloseLibraryApplet"}, 91 {0x002500C0, nullptr, "PrepareToCloseLibraryApplet"},
67 {0x00260000, NULL, "PrepareToCloseSystemApplet"}, 92 {0x00260000, nullptr, "PrepareToCloseSystemApplet"},
68 {0x00270044, NULL, "CloseApplication"}, 93 {0x00270044, nullptr, "CloseApplication"},
69 {0x00280044, NULL, "CloseLibraryApplet"}, 94 {0x00280044, nullptr, "CloseLibraryApplet"},
70 {0x00290044, NULL, "CloseSystemApplet"}, 95 {0x00290044, nullptr, "CloseSystemApplet"},
71 {0x002A0000, NULL, "OrderToCloseSystemApplet"}, 96 {0x002A0000, nullptr, "OrderToCloseSystemApplet"},
72 {0x002B0000, NULL, "PrepareToJumpToHomeMenu"}, 97 {0x002B0000, nullptr, "PrepareToJumpToHomeMenu"},
73 {0x002C0044, NULL, "JumpToHomeMenu"}, 98 {0x002C0044, nullptr, "JumpToHomeMenu"},
74 {0x002D0000, NULL, "PrepareToLeaveHomeMenu"}, 99 {0x002D0000, nullptr, "PrepareToLeaveHomeMenu"},
75 {0x002E0044, NULL, "LeaveHomeMenu"}, 100 {0x002E0044, nullptr, "LeaveHomeMenu"},
76 {0x002F0040, NULL, "PrepareToLeaveResidentApplet"}, 101 {0x002F0040, nullptr, "PrepareToLeaveResidentApplet"},
77 {0x00300044, NULL, "LeaveResidentApplet"}, 102 {0x00300044, nullptr, "LeaveResidentApplet"},
78 {0x00310100, NULL, "PrepareToDoApplicationJump"}, 103 {0x00310100, nullptr, "PrepareToDoApplicationJump"},
79 {0x00320084, NULL, "DoApplicationJump"}, 104 {0x00320084, nullptr, "DoApplicationJump"},
80 {0x00330000, NULL, "GetProgramIdOnApplicationJump"}, 105 {0x00330000, nullptr, "GetProgramIdOnApplicationJump"},
81 {0x00340084, NULL, "SendDeliverArg"}, 106 {0x00340084, nullptr, "SendDeliverArg"},
82 {0x00350080, NULL, "ReceiveDeliverArg"}, 107 {0x00350080, nullptr, "ReceiveDeliverArg"},
83 {0x00360040, NULL, "LoadSysMenuArg"}, 108 {0x00360040, nullptr, "LoadSysMenuArg"},
84 {0x00370042, NULL, "StoreSysMenuArg"}, 109 {0x00370042, nullptr, "StoreSysMenuArg"},
85 {0x00380040, NULL, "PreloadResidentApplet"}, 110 {0x00380040, nullptr, "PreloadResidentApplet"},
86 {0x00390040, NULL, "PrepareToStartResidentApplet"}, 111 {0x00390040, nullptr, "PrepareToStartResidentApplet"},
87 {0x003A0044, NULL, "StartResidentApplet"}, 112 {0x003A0044, nullptr, "StartResidentApplet"},
88 {0x003B0040, NULL, "CancelLibraryApplet"}, 113 {0x003B0040, nullptr, "CancelLibraryApplet"},
89 {0x003C0042, NULL, "SendDspSleep"}, 114 {0x003C0042, nullptr, "SendDspSleep"},
90 {0x003D0042, NULL, "SendDspWakeUp"}, 115 {0x003D0042, nullptr, "SendDspWakeUp"},
91 {0x003E0080, NULL, "ReplySleepQuery"}, 116 {0x003E0080, nullptr, "ReplySleepQuery"},
92 {0x003F0040, NULL, "ReplySleepNotificationComplete"}, 117 {0x003F0040, nullptr, "ReplySleepNotificationComplete"},
93 {0x00400042, NULL, "SendCaptureBufferInfo"}, 118 {0x00400042, nullptr, "SendCaptureBufferInfo"},
94 {0x00410040, NULL, "ReceiveCaptureBufferInfo"}, 119 {0x00410040, nullptr, "ReceiveCaptureBufferInfo"},
95 {0x00420080, NULL, "SleepSystem"}, 120 {0x00420080, nullptr, "SleepSystem"},
96 {0x00430040, NULL, "NotifyToWait"}, 121 {0x00430040, nullptr, "NotifyToWait"},
97 {0x00440000, NULL, "GetSharedFont"}, 122 {0x00440000, nullptr, "GetSharedFont"},
98 {0x00450040, NULL, "GetWirelessRebootInfo"}, 123 {0x00450040, nullptr, "GetWirelessRebootInfo"},
99 {0x00460104, NULL, "Wrap"}, 124 {0x00460104, nullptr, "Wrap"},
100 {0x00470104, NULL, "Unwrap"}, 125 {0x00470104, nullptr, "Unwrap"},
101 {0x00480100, NULL, "GetProgramInfo"}, 126 {0x00480100, nullptr, "GetProgramInfo"},
102 {0x00490180, NULL, "Reboot"}, 127 {0x00490180, nullptr, "Reboot"},
103 {0x004A0040, NULL, "GetCaptureInfo"}, 128 {0x004A0040, nullptr, "GetCaptureInfo"},
104 {0x004B00C2, NULL, "AppletUtility"}, 129 {0x004B00C2, nullptr, "AppletUtility"},
105 {0x004C0000, NULL, "SetFatalErrDispMode"}, 130 {0x004C0000, nullptr, "SetFatalErrDispMode"},
106 {0x004D0080, NULL, "GetAppletProgramInfo"}, 131 {0x004D0080, nullptr, "GetAppletProgramInfo"},
107 {0x004E0000, NULL, "HardwareResetAsync"}, 132 {0x004E0000, nullptr, "HardwareResetAsync"},
108}; 133};
109 134
110//////////////////////////////////////////////////////////////////////////////////////////////////// 135////////////////////////////////////////////////////////////////////////////////////////////////////