OMM services: Difference between revisions

Removed redirect to AM services
Tag: Removed redirect
(10 intermediate revisions by 2 users not shown)
Line 2: Line 2:


= omm =
= omm =
This is "nn::omm::detail::IOperationModeManager"
This is "nn::omm::detail::IOperationModeManager".


Besides [[PTM_services|PTM]], this is the only service that interacts with the [[Dock]] through [[USB_services|usb:pd*]].
Besides [[PTM_services|PTM]], this is the only service that interacts with the [[Dock]] through [[USB_services|usb:pd*]].
Line 18: Line 18:
| 3 || DisableAudioVisual
| 3 || DisableAudioVisual
|-
|-
| 4 || EnterSleepAndWait
| 4 || [[#EnterSleepAndWait]]
|-
|-
| 5 || GetCradleStatus
| 5 || GetCradleStatus
Line 67: Line 67:
|-
|-
| 28 || [12.0.0+] [[#CreateCradleFirmwareUpdater]]
| 28 || [12.0.0+] [[#CreateCradleFirmwareUpdater]]
|-
| 29 || [19.0.0+] GetCradleStatusChangeEvent
|-
|-
| 500 || [14.0.0+] LblSwitchBacklightOnForAm
| 500 || [14.0.0+] LblSwitchBacklightOnForAm
Line 74: Line 76:
| 900 || [14.0.0+] HideStartupLogo
| 900 || [14.0.0+] HideStartupLogo
|}
|}
== EnterSleepAndWait ==
Takes an input Event handle, no output.


== GetOperationModeSystemInfo ==
== GetOperationModeSystemInfo ==
Line 106: Line 111:


= ommdisp =
= ommdisp =
This is "nn::omm::srv::IDisplayLayerControl".
This was added with [14.0.0+].
This was added with [14.0.0+].


Line 190: Line 197:
| 410 ||
| 410 ||
|-
|-
| 500 ||
| 500 || [[#InitializeApplicationCopyrightSharedBuffer]]
|-
|-
| 501 ||
| 501 || FinalizeApplicationCopyrightSharedBuffer
|-
|-
| 510 ||
| 510 ||
Line 200: Line 207:
| 540 ||
| 540 ||
|-
|-
| 600 ||
| 600 || [14.0.0-16.1.0]
|-
| 610 || [17.0.0+]
|-
| 611 || [17.0.0+]
|-
| 612 || [17.0.0+]
|-
|-
| 700 ||
| 700 ||
Line 210: Line 223:
| 711 ||
| 711 ||
|-
|-
| 720 ||
| 720 || CopyImageFromCaptureBuffer
|-
|-
| 721 ||
| 721 ||
Line 219: Line 232:
|-
|-
| 810 ||
| 810 ||
|-
| 900 || [17.0.0+]
|}
|}
== InitializeApplicationCopyrightSharedBuffer ==
Takes a total of 0x10-bytes of input and a handle, no output.
This is used by [[Applet_Manager_services#InitializeApplicationCopyrightFrameBuffer|InitializeApplicationCopyrightFrameBuffer]].
== Cmd610 ==
Takes a type-0x15 input buffer containing a 0x4C8-byte struct. No output.
[19.0.0+] The struct size is now 0x4D0-bytes.
== Cmd611 ==
Takes a type-0x15 input buffer containing a 0x4C8-byte struct. No output.
[19.0.0+] The struct size is now 0x4D0-bytes.
== Cmd612 ==
Takes a type-0x15 input buffer containing a 0x4C8-byte struct. No output.
[19.0.0+] The struct size is now 0x4D0-bytes.


= idle:sys =
= idle:sys =
Line 230: Line 265:
| 0 || GetAutoPowerDownEvent
| 0 || GetAutoPowerDownEvent
|-
|-
| 1 || [7.0.0+] IsAutoPowerDownRequested ([1.0.0-3.0.2] )
| 1 || [7.0.0+] IsAutoPowerDownRequested ([1.0.0-3.0.2])
|-
|-
| 2 || [1.0.0-3.0.2]
| 2 || [1.0.0-3.0.2]
Line 276: Line 311:
|-
|-
| 11 || [1.0.0-3.0.2] InvalidateCurrentHomeButtonPressing
| 11 || [1.0.0-3.0.2] InvalidateCurrentHomeButtonPressing
|-
| 12 || [17.0.0+] EmulatePowerButtonPressedBriefly
|-
| 13 || [17.0.0+] EmulatePowerButtonPressedFor7Sec
|-
| 14 || [17.0.0+] SetAlwaysRebootFlag
|-
| 15 || [18.0.0+]
|-
| 16 || [18.0.0+]
|}
|}


[3.0.0+] Cmd11 now takes a total of 8-bytes of input.
[3.0.0+] Cmd11 now takes a total of 8-bytes of input.
= Notes =
A [[System_Settings|system-setting]] (<code>"systemstartup!skip_psc_wait"</code>) and the output from [[Process_Manager_services|pm:bm]] GetBootMode is used to determine a value passed to a func. When the setting is set to non-zero, the passed value is 2, otherwise the passed value is <code>BootMode == Maintenance</code>. This value is eventually written into global state.
The funcs which create threads "nn.notification.PresenterStateManagement" and "nn.notification.PresenterMain" will only create the threads when [[Process_Manager_services|pm:bm]] GetBootMode output is Normal, otherwise these funcs just return.
[[BCAT_services|prepro]] SetOperationMode is only used when [[Process_Manager_services|pm:bm]] GetBootMode output is not Maintenance.