diff options
| author | 2014-06-27 15:42:39 -0400 | |
|---|---|---|
| committer | 2014-07-04 14:18:16 -0400 | |
| commit | 82702fedb831c98479be7c4ea2caae920302efa6 (patch) | |
| tree | dc8ee887ccb530854d5942a97917fa6f2af65a4e /src | |
| parent | Loader: Refactored interface such that data is no longer stored by loader. (diff) | |
| download | yuzu-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.cpp | 164 |
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 | ||
| 16 | namespace APT_U { | 16 | namespace APT_U { |
| 17 | 17 | ||
| 18 | /// Signals used by APT functions | ||
| 19 | enum class SignalType : u32 { | ||
| 20 | None = 0x0, | ||
| 21 | AppJustStarted = 0x1, | ||
| 22 | ReturningToApp = 0xB, | ||
| 23 | ExitingApp = 0xC, | ||
| 24 | }; | ||
| 25 | |||
| 18 | void Initialize(Service::Interface* self) { | 26 | void 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 | ||
| 31 | void GetLockHandle(Service::Interface* self) { | 39 | void 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 | ||
| 46 | void InquireNotification(Service::Interface* self) { | 54 | void 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 | |||
| 62 | void 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 | ||
| 54 | const Interface::FunctionInfo FunctionTable[] = { | 76 | const 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 | //////////////////////////////////////////////////////////////////////////////////////////////////// |