Applet Manager services: Difference between revisions
No edit summary |
|||
(17 intermediate revisions by 3 users not shown) | |||
Line 1,247: | Line 1,247: | ||
|- | |- | ||
| 320 || [20.0.0+] | | 320 || [20.0.0+] | ||
|- | |||
| 330 || [20.2.0+] | |||
|- | |- | ||
| 500 || [5.0.0+] [[#StartContinuousRecordingFlushForDebug]] | | 500 || [5.0.0+] [[#StartContinuousRecordingFlushForDebug]] | ||
Line 1,515: | Line 1,517: | ||
==== GetLastApplicationExitReason ==== | ==== GetLastApplicationExitReason ==== | ||
No input, returns an output s32. | No input, returns an output s32. | ||
==== Cmd220 ==== | |||
Takes an input u8, no output. | |||
The input must be <=1. | |||
==== CreateMovieWriter ==== | ==== CreateMovieWriter ==== | ||
Line 1,520: | Line 1,527: | ||
This internally uses the GRC cmd to open an [[GRC_services|IMovieWriter]]. This is therefore not usable on NX since that cmd is stubbed. | This internally uses the GRC cmd to open an [[GRC_services|IMovieWriter]]. This is therefore not usable on NX since that cmd is stubbed. | ||
==== Cmd330 ==== | |||
No input, returns 1-byte of output. | |||
On NX this just writes 0 to output and returns 0. | |||
==== StartContinuousRecordingFlushForDebug ==== | ==== StartContinuousRecordingFlushForDebug ==== | ||
Line 2,217: | Line 2,229: | ||
|- | |- | ||
| 1000 || [7.0.0+] [[#GetDebugStorageChannel]] | | 1000 || [7.0.0+] [[#GetDebugStorageChannel]] | ||
|- | |||
| 2000 || [S2] [[#GetGraphicsInterface]] | |||
|- | |||
| 2100 || [S2] | |||
|} | |} | ||
Line 2,447: | 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 [[#(S2) GraphicsInterface|GraphicsInterface]]. | |||
== IStorageChannel == | == IStorageChannel == | ||
Line 3,081: | 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 == | ||
Returns an [[#IApplicationProxy | 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]]. | ||
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 = | |||
This is "nn::idle::detail::IPolicyManagerSystem" | |||
This was moved to [[OMM_services|omm]] with [14.0.0+]. | |||
This | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| | | 0 || GetAutoPowerDownEvent | ||
|- | |- | ||
| | | 1 || [7.0.0+] IsAutoPowerDownRequested ([1.0.0-3.0.2] ) | ||
|- | |- | ||
| | | 2 || [1.0.0-3.0.2] | ||
|- | |- | ||
| | | 3 || [[#SetHandlingContext]] | ||
|- | |- | ||
| | | 4 || LoadAndApplySettings | ||
|- | |- | ||
| | | 5 || ReportUserIsActive | ||
|} | |} | ||
== ( | == SetHandlingContext == | ||
[3.0.0+] Now takes an additional 0x10-bytes of input. | |||
[13.0.0+] Total input size is now 0x30 instead of 0x38. | |||
= omm = | |||
This is "nn::omm::detail::IOperationModeManager" | |||
Operation Mode Manager (OMM) is a service responsible for arbitrating the operation changes between docked and handheld modes. | |||
Besides [[PTM_services|PTM]], this is the only service that interacts with the [[Dock]] through [[USB_services|usb:pd*]]. | |||
This was moved to [[OMM_services|omm]] with [14.0.0+]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd | ! Cmd || Name | ||
|- | |- | ||
| | | 0 || GetOperationMode | ||
|- | |- | ||
| | | 1 || GetOperationModeChangeEvent | ||
|- | |- | ||
| | | 2 || EnableAudioVisual | ||
|- | |- | ||
| | | 3 || DisableAudioVisual | ||
|- | |- | ||
| | | 4 || EnterSleepAndWait | ||
|- | |- | ||
| | | 5 || GetCradleStatus | ||
|- | |- | ||
| | | 6 || FadeInDisplay | ||
|- | |- | ||
| | | 7 || FadeOutDisplay | ||
|- | |- | ||
| | | 8 || [2.0.0+] GetCradleFwVersion | ||
|- | |- | ||
| | | 9 || [2.0.0+] NotifyCecSettingsChanged | ||
|- | |- | ||
| | | 10 || [3.0.0+] SetOperationModePolicy | ||
|- | |- | ||
| | | 11 || [3.0.0+] GetDefaultDisplayResolution | ||
|- | |- | ||
| | | 12 || [3.0.0+] GetDefaultDisplayResolutionChangeEvent | ||
|- | |- | ||
| | | 13 || [3.0.0+] UpdateDefaultDisplayResolution | ||
|- | |- | ||
| | | 14 || [3.0.0+] ShouldSleepOnBoot | ||
|- | |- | ||
| | | 15 || [4.0.0+] NotifyHdcpApplicationExecutionStarted | ||
|- | |- | ||
| | | 16 || [4.0.0+] NotifyHdcpApplicationExecutionFinished | ||
|- | |- | ||
| | | 17 || [4.0.0+] NotifyHdcpApplicationDrawingStarted | ||
|- | |- | ||
| | | 18 || [4.0.0+] NotifyHdcpApplicationDrawingFinished | ||
|- | |- | ||
| | | 19 || [4.0.0+] GetHdcpAuthenticationFailedEvent | ||
|- | |- | ||
| | | 20 || [4.0.0+] GetHdcpAuthenticationFailedEmulationEnabled | ||
|- | |- | ||
| | | 21 || [4.0.0+] SetHdcpAuthenticationFailedEmulation | ||
|- | |- | ||
| | | 22 || [4.0.0+] GetHdcpStateChangeEvent | ||
|- | |- | ||
| | | 23 || [4.0.0+] GetHdcpState | ||
|- | |- | ||
| | | 24 || [5.0.0+] ShowCardUpdateProcessing | ||
|- | |- | ||
| | | 25 || [5.0.0+] SetApplicationCecSettingsAndNotifyChanged | ||
|- | |- | ||
| | | 26 || [7.0.0+] [[#GetOperationModeSystemInfo]] | ||
|- | |- | ||
| | | 27 || [9.0.0+] GetAppletFullAwakingSystemEvent | ||
|- | |- | ||
| | | 28 || [12.0.0+] [[#CreateCradleFirmwareUpdater]] | ||
|} | |||
== GetOperationModeSystemInfo == | |||
No input, returns an output u32. | |||
This is used by [[#GetOperationModeSystemInfo|ICommonStateGetter GetOperationModeSystemInfo]]. | |||
== CreateCradleFirmwareUpdater == | |||
No input. Returns an [[#ICradleFirmwareUpdater]]. | |||
== ICradleFirmwareUpdater == | |||
This is "nn::am::service::ICradleFirmwareUpdater". | |||
This was added with [12.0.0+]. | |||
{| class="wikitable" border="1" | |||
|- | |- | ||
! Cmd || Name | |||
|- | |- | ||
| | | 0 || Start | ||
|- | |- | ||
| | | 1 || Finish | ||
|- | |- | ||
| | | 2 || GetUpdateDeviceStatus | ||
|- | |- | ||
| | | 3 || GetUpdateProgress | ||
|- | |- | ||
| | | 4 || GetUpdateDeviceStatusChangeEvent | ||
|- | |- | ||
| | | 5 || GetUpdateProgress2 | ||
|} | |} | ||
= | = spsm = | ||
This is "nn:: | This is "nn::spsm::detail::IPowerStateInterface". | ||
This was moved to [[OMM_services|omm]] with [14.0.0+]. | This was moved to [[OMM_services|omm]] with [14.0.0+]. | ||
Line 3,249: | Line 3,251: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || GetCurrentState | ||
|- | |- | ||
| 1 || | | 1 || EnterSleep | ||
|- | |- | ||
| 2 || | | 2 || GetLastWakeReason | ||
|- | |- | ||
| 3 || | | 3 || Shutdown | ||
|- | |- | ||
| 4 || | | 4 || GetNotificationMessageEventHandle | ||
|- | |- | ||
| 5 || | | 5 || ReceiveNotificationMessage | ||
|- | |||
| 6 || AnalyzeLogForLastSleepWakeSequence | |||
|- | |||
| 7 || ResetEventLog | |||
|- | |||
| 8 || AnalyzePerformanceLogForLastSleepWakeSequence | |||
|- | |||
| 9 || ChangeHomeButtonLongPressingTime | |||
|- | |||
| 10 || PutErrorState | |||
|- | |||
| 11 || [1.0.0-3.0.2] InvalidateCurrentHomeButtonPressing | |||
|} | |} | ||
[3.0.0+] Cmd11 now takes a total of 8-bytes of input. | |||
[3.0.0+] | |||
= tcap = | |||
This is "nn::tcap::server::IManager". | |||
This was removed with [11.0.0+]. | |||
This was | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 3,279: | Line 3,287: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || GetContinuousHighSkinTemperatureEvent | ||
|- | |- | ||
| 1 || | | 1 || SetOperationMode | ||
|- | |- | ||
| 2 || | | 2 || LoadAndApplySettings | ||
|} | |||
= caps:su = | |||
This is "nn::capsrv::sf::IScreenShotApplicationService". | |||
This was added with [6.0.0+]. | |||
This can be used by applications to save screenshots. | |||
{| class="wikitable" border="1" | |||
|- | |- | ||
| | ! Cmd || Name | ||
|- | |- | ||
| | | 32 || [7.0.0+] [[#SetShimLibraryVersion]] | ||
|- | |- | ||
| | | 201 || [[#SaveScreenShot]] | ||
|- | |- | ||
| | | 203 || [[#SaveScreenShotEx0]] | ||
|- | |- | ||
| | | 205 || [8.0.0+] [[#SaveScreenShotEx1]] | ||
|- | |- | ||
| | | 210 || [[#SaveScreenShotEx2]] | ||
|- | |} | ||
| | |||
|- | == SetShimLibraryVersion == | ||
| | Takes a total of 0x10-bytes of input and a PID, no output. | ||
This is a wrapper for [[Capture_services|caps:c]] cmd33. Commands '''SaveScreenShot''', '''SaveScreenShotEx0''', '''SaveScreenShotEx1''' and '''SaveScreenShotEx2''' are wrappers for [[Display_services|caps:sc]] cmd210. | |||
== SaveScreenShot == | |||
Takes two input u32s, an u64 AppletResourceUserId, a PID, and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]]. | |||
Official user-processes doesn't use this, instead [[#SaveScreenShotEx0]] is used: ScreenShotAttributeEx0 is all-zero, except +4 is set to an input u32 and u32 +0xC = 0x1. | |||
This cmd internally uses an all-zero ScreenShotAttributeEx0, with u32 +0 = input u32 and u32 +0x8 = 0x3. | |||
== SaveScreenShotEx0 == | |||
Takes an input 0x40-byte struct '''ScreenShotAttributeEx0''', an input u32, an input u64 AppletResourceUserId, a PID, and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]]. | |||
== SaveScreenShotEx1 == | |||
Takes an input 0x40-byte struct '''ScreenShotAttributeEx0''', an input u32, an input u64 AppletResourceUserId, a PID, a type-0x15 input buffer containing an [[Capture_services|ApplicationData]], and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]]. | |||
== SaveScreenShotEx2 == | |||
Takes an input 0x40-byte struct '''ScreenShotAttributeEx0''', an input u32, an input u64 AppletResourceUserId, a type-0x15 input buffer containing an [[Capture_services|UserIdList]], and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]]. | |||
= apm = | |||
This is "nn::am::service::IApmManager". | |||
This was added with [8.0.0+]. | |||
{| class="wikitable" border="1" | |||
|- | |- | ||
| | ! Cmd || Name | ||
|- | |- | ||
| | | 0 || [[#OpenSession]] | ||
|- | |- | ||
| | | 1 || GetPerformanceMode | ||
|- | |- | ||
| | | 6 || [7.0.0+] [[#IsCpuOverclockEnabled]] | ||
| | |} | ||
== OpenSession == | |||
Returns an [[#ISession]]. | |||
== IsCpuOverclockEnabled == | |||
No input, returns an output u8 bool. | |||
== ISession == | |||
This is "nn::am::service::IApmSession". | |||
{| class="wikitable" border="1" | |||
|- | |- | ||
| | ! Cmd || Name | ||
|- | |- | ||
| | | 0 || SetPerformanceConfiguration | ||
|- | |- | ||
| | | 1 || GetPerformanceConfiguration | ||
|- | |- | ||
| | | 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 [[#(S2) GraphicsInterface|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 | |||
|- | |||
| 1 || [[#InitializeGraphicsWithTransferMemory]] | |||
|- | |||
| 4 || [[#InitializeGraphics]] | |||
|- | |||
| 11 || [[#SetCurrentProcessHandle]] | |||
|- | |||
| 12 || | |||
|- | |||
| 101 || [[#StartGraphics]] | |||
|- | |||
| 111 || | |||
|- | |||
| 112 || | |||
|- | |||
| 114 || | |||
|- | |||
| 115 || | |||
|- | |||
| 187 || | |||
|- | |||
| 201 || | |||
|- | |||
| 301 || | |||
|- | |||
| 303 || | |||
|- | |||
| 311 || | |||
|- | |||
| 312 || | |||
|- | |||
| 314 || | |||
|- | |||
| 315 || | |||
|- | |||
| 321 || | |||
|- | |||
| 327 || | |||
|- | |||
| 391 || | |||
|- | |||
| 401 || [[#PrepareGpuManagerSession]] | |||
|- | |||
| 402 || [[#StartGpuManagerSession]] | |||
|- | |||
| 423 || | |||
|- | |||
| 434 || | |||
|- | |||
| 494 || | |||
|- | |||
| 496 || [[#CreateGpuManagerSessionWithTransferMemory]] | |||
|- | |||
| 497 || [[#CreateGpuManagerSession]] | |||
|- | |||
| 901 || | |||
|- | |||
| 902 || | |||
|- | |||
| 903 || | |||
|- | |||
| 905 || | |||
|- | |||
| 911 || | |||
|- | |||
| 912 || | |||
|- | |||
| 922 || | |||
|- | |||
| 961 || | |||
|- | |||
| 991 || | |||
|- | |||
| 1001 || | |||
|- | |||
| 1002 || | |||
|- | |||
| 1003 || | |||
|- | |||
| 1101 || | |||
|- | |||
| 1102 || | |||
|- | |||
| 1401 || [[#CreateNvDrv2UserSessionWithTransferMemory]] | |||
|- | |||
| 1402 || [[#CreateNvDrv2UserSession]] | |||
|- | |||
| 1411 || [[#GetNvDrv2UserTransferMemoryUsage]] | |||
|- | |||
| 1501 || | |||
|- | |||
| 1502 || | |||
|- | |||
| 1601 || | |||
|- | |||
| 1602 || | |||
|- | |||
| 1603 || | |||
|- | |||
| 1611 || | |||
|- | |||
| 1612 || | |||
|- | |||
| 1691 || | |||
|} | |||
== InitializeGraphicsWithTransferMemory == | |||
Unofficial name. | |||
Takes a TransferMemory handle, an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] and an input u64 '''TransferMemorySize'''. No output. | |||
== InitializeGraphics == | |||
Unofficial name. | |||
Takes a Process handle, an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] and five input u64s. No output. | |||
The first u64 appears to be a version ([19.0.0] 0x8000000000000001, [20.1.1] 0x8000000000000005), the last u64 is the output from new [[SVC#InfoType|InfoType]] 31 or 32 and the remaining u64s are all 0. | |||
== SetCurrentProcessHandle == | |||
Unofficial name. | |||
Takes a Process handle. No output. | |||
Called directly after [[#InitializeGraphicsWithTransferMemory]] or [[#InitializeGraphics]]. | |||
== StartGraphics == | |||
Unofficial name. | |||
No input/output. | |||
Called directly after [[#SetCurrentProcessHandle]]. | |||
== PrepareGpuManagerSession == | |||
Unofficial name. | |||
No input/output. | |||
Called directly after [[#CreateGpuManagerSessionWithTransferMemory]] or [[#CreateGpuManagerSession]]. | |||
== StartGpuManagerSession == | |||
Unofficial name. | |||
No input/output. | |||
Called directly after [[#PrepareGpuManagerSession]]. | |||
== CreateGpuManagerSessionWithTransferMemory == | |||
Unofficial name. | |||
Takes a TransferMemory handle and two input u64s '''Version''' and '''TransferMemorySize'''. Returns a [[#GpuManagerSession]]. | |||
[19.0.0] '''Version''' must be 2. | |||
== CreateGpuManagerSession == | |||
Unofficial name. | |||
Takes an input u64 '''Version'''. Returns a [[#GpuManagerSession]]. | |||
[19.0.0] '''Version''' must be 2. | |||
== CreateNvDrv2UserSessionWithTransferMemory == | |||
Unofficial name. | |||
Takes a TransferMemory handle, an input u64 '''TransferMemorySize''' and an input u8. Returns an [[NV_services#(S2)_INvDrv2User|INvDrv2User]]. | |||
== CreateNvDrv2UserSession == | |||
Unofficial name. | |||
No input. Returns an [[NV_services#(S2)_INvDrv2User|INvDrv2User]]. | |||
== GetNvDrv2UserTransferMemoryUsage == | |||
Unofficial name. | |||
No input. Returns three u64s '''TotalTransferMemorySize''', '''UsedTransferMemorySize''' and '''MaxTransferMemorySize'''. | |||
== GpuManagerSession == | |||
Unofficial name. This is a TIPC interface so the command numbers are subtracted by 16. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 11 || [[#GetEventIdRange]] | |||
|- | |||
| 12 || [[#CreateEvent]] | |||
|- | |||
| 21 || [[#RequestGpuSession]] | |||
|- | |||
| 22 || [[#GetGpuSession]] | |||
|- | |||
| 33 || | |||
|- | |||
| 41 || | |||
|- | |||
| 42 || | |||
|- | |||
| 102 || | |||
|- | |||
| 200 || | |||
|- | |||
| 201 || | |||
|- | |||
| 202 || | |||
|} | |||
=== GetEventIdRange === | |||
Unofficial name. | |||
No input. Returns two u32s '''EventIdMin''' and '''EventIdMax'''. | |||
=== CreateEvent === | |||
Unofficial name. | |||
Takes an input u32 '''EventId'''. Returns an output Event handle. | |||
=== RequestGpuSession === | |||
Unofficial name. | |||
Takes an input u32 '''EventId'''. No output. | |||
'''EventId''' must have been previously passed to [[#CreateEvent]] and the returned Event handle will be signalled when the session is ready. | |||
=== GetGpuSession === | |||
Unofficial name. | |||
No input. Returns a [[#GpuSession]]. | |||
Called after [[#RequestGpuSession]] and the Event handle has been signalled. | |||
This | === GpuSession === | ||
Unofficial name. This is a TIPC interface so the command numbers are subtracted by 16. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 3,377: | Line 3,843: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| | | 101 || [[#CreateGpuMemory]] | ||
|- | |- | ||
| | | 102 || [[#DestroyGpuMemory]] | ||
|- | |- | ||
| | | 201 || [19.0.0-19.1.0] MapMemory | ||
|- | |- | ||
| | | 202 || [19.0.0-19.1.0] UnmapMemory | ||
|- | |- | ||
| | | 203 || [19.0.0-19.1.0] AllocateAddressSpace | ||
|- | |- | ||
| | | 204 || [19.0.0-19.1.0] FreeAddressSpace | ||
|- | |- | ||
| | | 205 || [19.0.0-19.1.0] RemapMemory | ||
|- | |- | ||
| | | 207 || [19.0.0-19.1.0] ModifyMemoryMapping | ||
|- | |- | ||
| 211 || [20.1.1+] MapMemoryV2 | |||
|- | |- | ||
| | | 212 || [20.1.1+] ModifyMemoryMappingV2 | ||
|- | |- | ||
| | | 213 || [20.1.1+] UnmapMemoryV2 | ||
|- | |- | ||
| | | 214 || [20.1.1+] AllocateAddressSpaceV2 | ||
|- | |- | ||
| | | 215 || [20.1.1+] FreeAddressSpaceV2 | ||
|- | |- | ||
| | | 216 || [20.1.1+] RemapMemoryV2 | ||
|} | |} | ||
== | ==== CreateGpuMemory ==== | ||
Unofficial name. | |||
== | |||
Takes two input u64s '''MemoryAddressStart''' and '''MemoryAddressEnd''' and two u8s. Returns an output u32 '''GpuMemoryHandle'''. | |||
The memory region between '''MemoryAddressStart''' and '''MemoryAddressEnd''' must have been passed to [[#SVC|SVC]] 0x80 with attribute 0x20. | |||
==== DestroyGpuMemory ==== | |||
Unofficial name. | |||
Takes two input u32s '''GpuMemoryHandle''' and '''EventId'''. No output. | |||
The Event handle associated with '''EventId''' will be signalled when the memory is released. | |||
= Library Applets = | = Library Applets = | ||
Line 3,614: | Line 4,001: | ||
| 0x17 | | 0x17 | ||
| 010000000000100F | | 010000000000100F | ||
| [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] | | [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] (LibraryAppletOfflineWebApp_0 in Ounce) | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
Line 3,662: | Line 4,049: | ||
| 0x32 | | 0x32 | ||
| 010000000000100F | | 010000000000100F | ||
| [17.0.0+] [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] | | [17.0.0+] LibraryAppletOfflineWebApp_3 ([[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] in NX) | ||
|- | |- | ||
| 0x33 | | 0x33 | ||
| 010000000000100F | | 010000000000100F | ||
| [17.0.0+] [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] | | [17.0.0+] LibraryAppletOfflineWebSystem ([[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] in NX) | ||
|- | |- | ||
| 0x35 | | 0x35 | ||
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042) | | [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042) | ||
| [17.0.0+] | | [17.0.0+] LibraryAppletLhub ([16.0.0-16.1.0] ) ([[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] in NX) | ||
|- | |- | ||
| 0x36 | | 0x36 | ||
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042) | | [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042) | ||
| [17.0.0+] | | [17.0.0+] LibraryAppletLogin ([16.0.0-16.1.0] ) ([[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] in NX) | ||
|- | |- | ||
| 0x37 | | 0x37 | ||
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042) | | [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042) | ||
| [17.0.0+] | | [17.0.0+] LibraryAppletShare ([16.0.0-16.1.0] ) ([[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] in NX) | ||
|- | |- | ||
| 0x38 | | 0x38 |