summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2014-06-27 15:42:39 -0400
committerGravatar bunnei2014-07-04 14:18:16 -0400
commit82702fedb831c98479be7c4ea2caae920302efa6 (patch)
treedc8ee887ccb530854d5942a97917fa6f2af65a4e /src
parentLoader: Refactored interface such that data is no longer stored by loader. (diff)
downloadyuzu-82702fedb831c98479be7c4ea2caae920302efa6.tar.gz
yuzu-82702fedb831c98479be7c4ea2caae920302efa6.tar.xz
yuzu-82702fedb831c98479be7c4ea2caae920302efa6.zip
APT: Added stubbed ReceiveParameter and various cleanups.
APT: More cleanups. APT: Changed SignalType to be type u32.
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/apt.cpp164
1 files changed, 93 insertions, 71 deletions
diff --git a/src/core/hle/service/apt.cpp b/src/core/hle/service/apt.cpp
index a0012b5dd..e97e7dbf7 100644
--- a/src/core/hle/service/apt.cpp
+++ b/src/core/hle/service/apt.cpp
@@ -15,9 +15,16 @@
15 15
16namespace APT_U { 16namespace APT_U {
17 17
18/// Signals used by APT functions
19enum class SignalType : u32 {
20 None = 0x0,
21 AppJustStarted = 0x1,
22 ReturningToApp = 0xB,
23 ExitingApp = 0xC,
24};
25
18void Initialize(Service::Interface* self) { 26void Initialize(Service::Interface* self) {
19 u32* cmd_buff = Service::GetCommandBuffer(); 27 u32* cmd_buff = Service::GetCommandBuffer();
20 DEBUG_LOG(KERNEL, "called");
21 28
22 cmd_buff[3] = Kernel::CreateEvent(RESETTYPE_ONESHOT, "APT_U:Menu"); // APT menu event handle 29 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 30 cmd_buff[4] = Kernel::CreateEvent(RESETTYPE_ONESHOT, "APT_U:Pause"); // APT pause event handle
@@ -26,6 +33,7 @@ void Initialize(Service::Interface* self) {
26 Kernel::SetEventLocked(cmd_buff[4], false); // Fire start event 33 Kernel::SetEventLocked(cmd_buff[4], false); // Fire start event
27 34
28 cmd_buff[1] = 0; // No error 35 cmd_buff[1] = 0; // No error
36 DEBUG_LOG(KERNEL, "called");
29} 37}
30 38
31void GetLockHandle(Service::Interface* self) { 39void GetLockHandle(Service::Interface* self) {
@@ -40,15 +48,29 @@ void Enable(Service::Interface* self) {
40 u32* cmd_buff = Service::GetCommandBuffer(); 48 u32* cmd_buff = Service::GetCommandBuffer();
41 u32 unk = cmd_buff[1]; // TODO(bunnei): What is this field used for? 49 u32 unk = cmd_buff[1]; // TODO(bunnei): What is this field used for?
42 cmd_buff[1] = 0; // No error 50 cmd_buff[1] = 0; // No error
43 ERROR_LOG(KERNEL, "(UNIMPEMENTED) called unk=0x%08X", unk); 51 WARN_LOG(KERNEL, "(STUBBED) called unk=0x%08X", unk);
44} 52}
45 53
46void InquireNotification(Service::Interface* self) { 54void InquireNotification(Service::Interface* self) {
47 u32* cmd_buff = Service::GetCommandBuffer(); 55 u32* cmd_buff = Service::GetCommandBuffer();
48 u32 app_id = cmd_buff[2]; 56 u32 app_id = cmd_buff[2];
49 cmd_buff[1] = 0; // No error 57 cmd_buff[1] = 0; // No error
50 cmd_buff[3] = 0; // Signal type 58 cmd_buff[2] = static_cast<u32>(SignalType::None); // Signal type
51 ERROR_LOG(KERNEL, "(UNIMPEMENTED) called app_id=0x%08X", app_id); 59 WARN_LOG(KERNEL, "(STUBBED) called app_id=0x%08X", app_id);
60}
61
62void ReceiveParameter(Service::Interface* self) {
63 u32* cmd_buff = Service::GetCommandBuffer();
64 u32 app_id = cmd_buff[1];
65 u32 buffer_size = cmd_buff[2];
66 cmd_buff[1] = 0; // No error
67 cmd_buff[2] = 0;
68 cmd_buff[3] = static_cast<u32>(SignalType::AppJustStarted); // Signal type
69 cmd_buff[4] = 0x10;
70 cmd_buff[5] = 0;
71 cmd_buff[6] = 0;
72 cmd_buff[7] = 0;
73 WARN_LOG(KERNEL, "(STUBBED) called app_id=0x%08X, buffer_size=0x%08X", app_id, buffer_size);
52} 74}
53 75
54const Interface::FunctionInfo FunctionTable[] = { 76const Interface::FunctionInfo FunctionTable[] = {
@@ -63,73 +85,73 @@ const Interface::FunctionInfo FunctionTable[] = {
63 {0x00090040, nullptr, "IsRegistered"}, 85 {0x00090040, nullptr, "IsRegistered"},
64 {0x000A0040, nullptr, "GetAttribute"}, 86 {0x000A0040, nullptr, "GetAttribute"},
65 {0x000B0040, InquireNotification, "InquireNotification"}, 87 {0x000B0040, InquireNotification, "InquireNotification"},
66 {0x000C0104, nullptr, "SendParameter"}, 88 {0x000C0104, nullptr, "SendParameter"},
67 {0x000D0080, nullptr, "ReceiveParameter"}, 89 {0x000D0080, ReceiveParameter, "ReceiveParameter"},
68 {0x000E0080, nullptr, "GlanceParameter"}, 90 {0x000E0080, nullptr, "GlanceParameter"},
69 {0x000F0100, nullptr, "CancelParameter"}, 91 {0x000F0100, nullptr, "CancelParameter"},
70 {0x001000C2, nullptr, "DebugFunc"}, 92 {0x001000C2, nullptr, "DebugFunc"},
71 {0x001100C0, nullptr, "MapProgramIdForDebug"}, 93 {0x001100C0, nullptr, "MapProgramIdForDebug"},
72 {0x00120040, nullptr, "SetHomeMenuAppletIdForDebug"}, 94 {0x00120040, nullptr, "SetHomeMenuAppletIdForDebug"},
73 {0x00130000, nullptr, "GetPreparationState"}, 95 {0x00130000, nullptr, "GetPreparationState"},
74 {0x00140040, nullptr, "SetPreparationState"}, 96 {0x00140040, nullptr, "SetPreparationState"},
75 {0x00150140, nullptr, "PrepareToStartApplication"}, 97 {0x00150140, nullptr, "PrepareToStartApplication"},
76 {0x00160040, nullptr, "PreloadLibraryApplet"}, 98 {0x00160040, nullptr, "PreloadLibraryApplet"},
77 {0x00170040, nullptr, "FinishPreloadingLibraryApplet"}, 99 {0x00170040, nullptr, "FinishPreloadingLibraryApplet"},
78 {0x00180040, nullptr, "PrepareToStartLibraryApplet"}, 100 {0x00180040, nullptr, "PrepareToStartLibraryApplet"},
79 {0x00190040, nullptr, "PrepareToStartSystemApplet"}, 101 {0x00190040, nullptr, "PrepareToStartSystemApplet"},
80 {0x001A0000, nullptr, "PrepareToStartNewestHomeMenu"}, 102 {0x001A0000, nullptr, "PrepareToStartNewestHomeMenu"},
81 {0x001B00C4, nullptr, "StartApplication"}, 103 {0x001B00C4, nullptr, "StartApplication"},
82 {0x001C0000, nullptr, "WakeupApplication"}, 104 {0x001C0000, nullptr, "WakeupApplication"},
83 {0x001D0000, nullptr, "CancelApplication"}, 105 {0x001D0000, nullptr, "CancelApplication"},
84 {0x001E0084, nullptr, "StartLibraryApplet"}, 106 {0x001E0084, nullptr, "StartLibraryApplet"},
85 {0x001F0084, nullptr, "StartSystemApplet"}, 107 {0x001F0084, nullptr, "StartSystemApplet"},
86 {0x00200044, nullptr, "StartNewestHomeMenu"}, 108 {0x00200044, nullptr, "StartNewestHomeMenu"},
87 {0x00210000, nullptr, "OrderToCloseApplication"}, 109 {0x00210000, nullptr, "OrderToCloseApplication"},
88 {0x00220040, nullptr, "PrepareToCloseApplication"}, 110 {0x00220040, nullptr, "PrepareToCloseApplication"},
89 {0x00230040, nullptr, "PrepareToJumpToApplication"}, 111 {0x00230040, nullptr, "PrepareToJumpToApplication"},
90 {0x00240044, nullptr, "JumpToApplication"}, 112 {0x00240044, nullptr, "JumpToApplication"},
91 {0x002500C0, nullptr, "PrepareToCloseLibraryApplet"}, 113 {0x002500C0, nullptr, "PrepareToCloseLibraryApplet"},
92 {0x00260000, nullptr, "PrepareToCloseSystemApplet"}, 114 {0x00260000, nullptr, "PrepareToCloseSystemApplet"},
93 {0x00270044, nullptr, "CloseApplication"}, 115 {0x00270044, nullptr, "CloseApplication"},
94 {0x00280044, nullptr, "CloseLibraryApplet"}, 116 {0x00280044, nullptr, "CloseLibraryApplet"},
95 {0x00290044, nullptr, "CloseSystemApplet"}, 117 {0x00290044, nullptr, "CloseSystemApplet"},
96 {0x002A0000, nullptr, "OrderToCloseSystemApplet"}, 118 {0x002A0000, nullptr, "OrderToCloseSystemApplet"},
97 {0x002B0000, nullptr, "PrepareToJumpToHomeMenu"}, 119 {0x002B0000, nullptr, "PrepareToJumpToHomeMenu"},
98 {0x002C0044, nullptr, "JumpToHomeMenu"}, 120 {0x002C0044, nullptr, "JumpToHomeMenu"},
99 {0x002D0000, nullptr, "PrepareToLeaveHomeMenu"}, 121 {0x002D0000, nullptr, "PrepareToLeaveHomeMenu"},
100 {0x002E0044, nullptr, "LeaveHomeMenu"}, 122 {0x002E0044, nullptr, "LeaveHomeMenu"},
101 {0x002F0040, nullptr, "PrepareToLeaveResidentApplet"}, 123 {0x002F0040, nullptr, "PrepareToLeaveResidentApplet"},
102 {0x00300044, nullptr, "LeaveResidentApplet"}, 124 {0x00300044, nullptr, "LeaveResidentApplet"},
103 {0x00310100, nullptr, "PrepareToDoApplicationJump"}, 125 {0x00310100, nullptr, "PrepareToDoApplicationJump"},
104 {0x00320084, nullptr, "DoApplicationJump"}, 126 {0x00320084, nullptr, "DoApplicationJump"},
105 {0x00330000, nullptr, "GetProgramIdOnApplicationJump"}, 127 {0x00330000, nullptr, "GetProgramIdOnApplicationJump"},
106 {0x00340084, nullptr, "SendDeliverArg"}, 128 {0x00340084, nullptr, "SendDeliverArg"},
107 {0x00350080, nullptr, "ReceiveDeliverArg"}, 129 {0x00350080, nullptr, "ReceiveDeliverArg"},
108 {0x00360040, nullptr, "LoadSysMenuArg"}, 130 {0x00360040, nullptr, "LoadSysMenuArg"},
109 {0x00370042, nullptr, "StoreSysMenuArg"}, 131 {0x00370042, nullptr, "StoreSysMenuArg"},
110 {0x00380040, nullptr, "PreloadResidentApplet"}, 132 {0x00380040, nullptr, "PreloadResidentApplet"},
111 {0x00390040, nullptr, "PrepareToStartResidentApplet"}, 133 {0x00390040, nullptr, "PrepareToStartResidentApplet"},
112 {0x003A0044, nullptr, "StartResidentApplet"}, 134 {0x003A0044, nullptr, "StartResidentApplet"},
113 {0x003B0040, nullptr, "CancelLibraryApplet"}, 135 {0x003B0040, nullptr, "CancelLibraryApplet"},
114 {0x003C0042, nullptr, "SendDspSleep"}, 136 {0x003C0042, nullptr, "SendDspSleep"},
115 {0x003D0042, nullptr, "SendDspWakeUp"}, 137 {0x003D0042, nullptr, "SendDspWakeUp"},
116 {0x003E0080, nullptr, "ReplySleepQuery"}, 138 {0x003E0080, nullptr, "ReplySleepQuery"},
117 {0x003F0040, nullptr, "ReplySleepNotificationComplete"}, 139 {0x003F0040, nullptr, "ReplySleepNotificationComplete"},
118 {0x00400042, nullptr, "SendCaptureBufferInfo"}, 140 {0x00400042, nullptr, "SendCaptureBufferInfo"},
119 {0x00410040, nullptr, "ReceiveCaptureBufferInfo"}, 141 {0x00410040, nullptr, "ReceiveCaptureBufferInfo"},
120 {0x00420080, nullptr, "SleepSystem"}, 142 {0x00420080, nullptr, "SleepSystem"},
121 {0x00430040, nullptr, "NotifyToWait"}, 143 {0x00430040, nullptr, "NotifyToWait"},
122 {0x00440000, nullptr, "GetSharedFont"}, 144 {0x00440000, nullptr, "GetSharedFont"},
123 {0x00450040, nullptr, "GetWirelessRebootInfo"}, 145 {0x00450040, nullptr, "GetWirelessRebootInfo"},
124 {0x00460104, nullptr, "Wrap"}, 146 {0x00460104, nullptr, "Wrap"},
125 {0x00470104, nullptr, "Unwrap"}, 147 {0x00470104, nullptr, "Unwrap"},
126 {0x00480100, nullptr, "GetProgramInfo"}, 148 {0x00480100, nullptr, "GetProgramInfo"},
127 {0x00490180, nullptr, "Reboot"}, 149 {0x00490180, nullptr, "Reboot"},
128 {0x004A0040, nullptr, "GetCaptureInfo"}, 150 {0x004A0040, nullptr, "GetCaptureInfo"},
129 {0x004B00C2, nullptr, "AppletUtility"}, 151 {0x004B00C2, nullptr, "AppletUtility"},
130 {0x004C0000, nullptr, "SetFatalErrDispMode"}, 152 {0x004C0000, nullptr, "SetFatalErrDispMode"},
131 {0x004D0080, nullptr, "GetAppletProgramInfo"}, 153 {0x004D0080, nullptr, "GetAppletProgramInfo"},
132 {0x004E0000, nullptr, "HardwareResetAsync"}, 154 {0x004E0000, nullptr, "HardwareResetAsync"},
133}; 155};
134 156
135//////////////////////////////////////////////////////////////////////////////////////////////////// 157////////////////////////////////////////////////////////////////////////////////////////////////////