Applet Manager services: Difference between revisions
No edit summary |
|||
Line 2,229: | Line 2,229: | ||
|- | |- | ||
| 1000 || [7.0.0+] [[#GetDebugStorageChannel]] | | 1000 || [7.0.0+] [[#GetDebugStorageChannel]] | ||
|- | |||
| 2000 || [S2] [[#GetGraphicsInterface]] | |||
|- | |||
| 2100 || [S2] | |||
|} | |} | ||
Line 2,459: | Line 2,463: | ||
The cached value loaded from [[System_Settings|system-setting]] <code>am.debug!dev_function</code> must be set to 0x1 with size 0x1, otherwise an error is returned. | The cached value loaded from [[System_Settings|system-setting]] <code>am.debug!dev_function</code> must be set to 0x1 with size 0x1, otherwise an error is returned. | ||
=== GetGraphicsInterface === | |||
Unofficial name. This is exclusive to S2. | |||
No input. Returns an output TIPC handle to [[#GraphicsInterface]]. | |||
== IStorageChannel == | == IStorageChannel == | ||
Line 3,093: | Line 3,102: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || [[#OpenApplicationProxy]] | | 0 || [[#OpenApplicationProxy]] | ||
|} | |} | ||
This is used by all regular-applications, including [[flog]] and "Retail Interactive Display Menu". Only one session can be open for this service at a time. | This is used by all regular-applications, including [[flog]] and "Retail Interactive Display Menu". Only one session can be open for this service at a time. | ||
== OpenApplicationProxy == | == OpenApplicationProxy == | ||
Takes a reserved input u64 (official user-processes use hard-coded value 0), a PID, and a process copy-handle (cur-proc handle alias). Returns an [[#IApplicationProxy]]. | |||
Takes a | |||
On failure, official user-processes will retry using this command in a loop while the retval is 0x19280, with svcSleepThread(10000000) being called first. | On failure, official user-processes will retry using this command in a loop while the retval is 0x19280, with svcSleepThread(10000000) being called first. | ||
= idle:sys = | = idle:sys = | ||
Line 3,606: | Line 3,371: | ||
|- | |- | ||
| 2 || [8.0.0+] SetCpuOverclockEnabled | | 2 || [8.0.0+] SetCpuOverclockEnabled | ||
|} | |||
= (S2) adraw:a = | |||
This is "nn::appletdraw::sfif::IAppletRoot". This is exclusive to S2. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 1 || [[#OpenResourceSession]] | |||
|- | |||
| 2 || [[#OpenAppletSession]] | |||
|} | |||
== OpenResourceSession == | |||
Unofficial name. | |||
Takes a PID and an u64. Returns a [[#IResourceSession]]. | |||
== OpenAppletSession == | |||
Unofficial name. This is exclusive to S2. | |||
Takes a PID and an u64. Returns a [[#IAppletSession]]. | |||
== IResourceSession == | |||
This is "nn::appletdraw::sfif::IResourceSession". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 1 || | |||
|- | |||
| 10 || | |||
|- | |||
| 11 || | |||
|} | |||
=== Cmd1 === | |||
Takes a u64. Returns a u64. | |||
=== Cmd10 === | |||
Takes a handle, a u64 and an int. Returns a handle. | |||
=== Cmd11 === | |||
No input/output. | |||
== IAppletSession == | |||
This is "nn::appletdraw::sfif::IAppletSession". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 1 || | |||
|- | |||
| 2 || | |||
|- | |||
| 3 || | |||
|- | |||
| 10 || | |||
|- | |||
| 11 || | |||
|- | |||
| 12 || | |||
|- | |||
| 13 || | |||
|- | |||
| 15 || | |||
|- | |||
| 16 || | |||
|- | |||
| 17 || | |||
|- | |||
| 18 || | |||
|- | |||
| 19 || | |||
|- | |||
| 21 || | |||
|- | |||
| 22 || | |||
|- | |||
| 23 || | |||
|- | |||
| 24 || | |||
|- | |||
| 31 || | |||
|- | |||
| 8001 || | |||
|- | |||
| 8004 || | |||
|} | |||
=== Cmd1 === | |||
Takes a u64. Returns a u64. | |||
=== Cmd2 === | |||
Returns a handle. | |||
=== Cmd3 === | |||
Takes a handle. | |||
=== Cmd10 === | |||
Takes an int. | |||
=== Cmd11 === | |||
Takes an int. | |||
=== Cmd12 === | |||
Takes a u64. Returns an int. | |||
=== Cmd13 === | |||
Takes an int. Returns an int. | |||
=== Cmd15 === | |||
Takes an int. Returns an int, an int, an int. | |||
=== Cmd16 === | |||
Returns an int. | |||
=== Cmd17 === | |||
Takes an int. Returns an int, a u16. | |||
=== Cmd18 === | |||
Takes an int. Returns 3x int, a u16. | |||
=== Cmd19 === | |||
Takes an int. Returns an int, a u16. | |||
=== Cmd21 === | |||
Takes an int. Returns a struct of size 0x40. | |||
=== Cmd22 === | |||
Takes a struct of size 0x20. Returns a struct of size 0x40. | |||
=== Cmd23 === | |||
Returns a struct of size 0xC8. | |||
=== Cmd24 === | |||
Sends an ipc-buf with size 0xD8. | |||
=== Cmd31 === | |||
Returns a struct with 0x28, a struct with size 0x10. | |||
=== Cmd8001 === | |||
Returns a struct with 0x28, a struct with size 0x10. | |||
=== Cmd8004 === | |||
Takes an int. Returns a u64. | |||
= (S2) appletOE = | |||
This is "nn::am::service::IApplicationProxyServiceForNxCompat". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || [[#OpenApplicationProxy]] | |||
|- | |||
| 2000 || [[#OpenCompatApplicationFunctions]] | |||
|} | |||
== OpenCompatApplicationFunctions == | |||
No input. Returns an [[#INxCompatApplicationFunctions]]. | |||
== INxCompatApplicationFunctions == | |||
This is "nn::am::service::INxCompatApplicationFunctions". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 2000 || [[#GetGraphicsInterfaceForNxCompat]] | |||
|- | |||
| 2001 || | |||
|- | |||
| 2002 || | |||
|- | |||
| 2003 || [[#SetCopyright]] | |||
|- | |||
| 2004 || | |||
|- | |||
| 2010 || | |||
|- | |||
| 2020 || [[#Initialize]] | |||
|- | |||
| 2030 || [[#GetVsyncEvent]] | |||
|- | |||
| 2040 || [[#GetVsyncTimestamp]] | |||
|- | |||
| 2050 || | |||
|- | |||
| 2060 || | |||
|- | |||
| 2070 || [[#CreateMovieMaker]] | |||
|} | |||
== GetGraphicsInterfaceForNxCompat == | |||
Unofficial name. | |||
No input. Returns an output TIPC handle to [[#GraphicsInterface]]. | |||
Same as [[#GetGraphicsInterface]] but for compat mode. | |||
== SetCopyright == | |||
Unofficial name. | |||
Takes an input bool. No output. | |||
Called directly after "nn::vi::WriteToCopyrightFramebuffer". | |||
== Initialize == | |||
Unofficial name. | |||
No input/output. | |||
Called during init. | |||
== GetVsyncEvent == | |||
Unofficial name. | |||
No input. Returns an Event handle. | |||
== GetVsyncTimestamp == | |||
Unofficial name. | |||
No input. Returns an output u64. | |||
When event from [[#GetVsyncEvent]] triggers, this returns a timestamp. | |||
= (S2) GraphicsInterface = | |||
Unofficial name. This is a TIPC interface so the command numbers are subtracted by 16. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 4 || [[#InitializeA]] | |||
|- | |||
| 11 || [[#InitializeB]] | |||
|- | |||
| 101 || [[#InitializeC]] | |||
|- | |||
| 111 || | |||
|- | |||
| 112 || | |||
|- | |||
| 114 || | |||
|- | |||
| 115 || | |||
|- | |||
| 187 || | |||
|- | |||
| 201 || | |||
|- | |||
| 301 || | |||
|- | |||
| 327 || | |||
|- | |||
| 303 || | |||
|- | |||
| 311 || | |||
|- | |||
| 312 || | |||
|- | |||
| 314 || | |||
|- | |||
| 315 || | |||
|- | |||
| 321 || | |||
|- | |||
| 391 || | |||
|- | |||
| 401 || | |||
|- | |||
| 402 || | |||
|- | |||
| 423 || | |||
|- | |||
| 434 || | |||
|- | |||
| 497 || | |||
|- | |||
| 901 || | |||
|- | |||
| 902 || | |||
|- | |||
| 903 || | |||
|- | |||
| 905 || | |||
|- | |||
| 911 || | |||
|- | |||
| 912 || | |||
|- | |||
| 922 || | |||
|- | |||
| 961 || | |||
|- | |||
| 991 || | |||
|- | |||
| 1001 || | |||
|- | |||
| 1002 || | |||
|- | |||
| 1003 || | |||
|- | |||
| 1101 || | |||
|- | |||
| 1102 || | |||
|- | |||
| 1401 || [[#InitializeNvDrv2UserWithTransferMemory]] | |||
|- | |||
| 1402 || [[#InitializeNvDrv2User]] | |||
|- | |||
| 1501 || | |||
|- | |||
| 1502 || | |||
|- | |||
| 1601 || | |||
|- | |||
| 1602 || | |||
|- | |||
| 1603 || | |||
|- | |||
| 1611 || | |||
|- | |||
| 1612 || | |||
|- | |||
| 1691 || | |||
|} | |||
== InitializeA == | |||
Unofficial name. | |||
Sends current process handle, and struct { u64 aruid; u64 always_0x8000000000000005; u64 always_0; u64 always_0; u64 always_0; u64 svc_get_info_31_or_32_output; }. | |||
== InitializeB == | |||
Unofficial name. | |||
Sends current process handle. No args. Sent directly after cmd4. | |||
== InitializeC == | |||
Unofficial name. | |||
Sent directly after [[#InitializeB]]. | |||
== InitializeNvDrv2UserWithTransferMemory == | |||
Unofficial name. | |||
Takes a TransferMemory handle, and an input u64 '''TransferMemorySize'''. Returns an [[#INvDrv2User]]. | |||
== InitializeNvDrv2User == | |||
Unofficial name. | |||
No input. Returns an [[#INvDrv2User]]. | |||
== INvDrv2User == | |||
This is "nn::nvdrv::INvDrv2User". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || Open | |||
|- | |||
| 1 || Ioctl | |||
|- | |||
| 2 || Close | |||
|- | |||
| 4 || QueryEvent | |||
|- | |||
| 9 || DumpStatus | |||
|- | |||
| 10 || InitializeDevtools | |||
|- | |||
| 11 || Ioctl2 | |||
|- | |||
| 12 || Ioctl3 | |||
|- | |||
| 13 || SetGraphicsFirmwareMemoryMarginEnabled | |||
|} | |} | ||