Difference between revisions of "Mode Control Services PXI"

From 3dbrew
Jump to navigation Jump to search
m (Add anchors)
 
(9 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
{{Anchor|PXIMC}}{{Anchor|pxi:mc}}
 
="pxi:mc" service=
 
="pxi:mc" service=
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 6: Line 7:
 
!  Description
 
!  Description
 
|-
 
|-
| 0x0001....
+
| 0x00010000
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
? (don't send with zero params, freezes)
+
ShutdownPxi. This is sent to the ARM9 by the ARM11 PXI-module, when PXI-module is shutting down due to receiving [[Services|srv]] notification-ID 0x100. This sets [[CONFIG_Registers#CFG_BOOTENV|CFG_BOOTENV]] to the value for CTR (0x1), and is only time it's set by Process9.
 
|-
 
|-
 
| 0x0002....
 
| 0x0002....
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| Stubbed, does nothing
+
| Stubbed, does nothing...
 
|-
 
|-
 
| 0x0003....
 
| 0x0003....
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| Stubbed, does nothing
+
| Stubbed, does nothing...
 
|-
 
|-
 
| 0x0004....
 
| 0x0004....
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| Stubbed, does nothing
+
| Stubbed, does nothing...
 
|-
 
|-
| 0x0005....
+
| 0x00050040
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| ?
+
| Sleep (bool sleep). Used by [[PTM_Services|PTM]] module. When seeing this command with a non-zero argument [[PXI_Services|PXI]] module will block all other communication with Process9. This makes Process9
 +
call svcKernelSetState(2), which will make Kernel9 synchronize with the Arm11's own KernelSetState(2) code and wait for a PXI_SYNC interrupt (sleep exit command).
 
|-
 
|-
 
| 0x0006....
 
| 0x0006....
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| Stubbed, does nothing
+
| Stubbed, does nothing...
 
|-
 
|-
 
| 0x00070000
 
| 0x00070000
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| Stubbed, writes uninitialized stack byte to (u8*)(cmdbuf+4)
+
| Stubbed, writes uninitialized stack byte to (u8*)(cmdbuf+4).
 
|-
 
|-
 
| 0x0008....
 
| 0x0008....
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| Stubbed, returns 0xE0C0EC03
+
| Stubbed, returns 0xE0C0EC03...
 
|-
 
|-
 
| 0x0009....
 
| 0x0009....
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| Stubbed, returns 0xE0C0EC03
+
| Stubbed, returns 0xE0C0EC03...
 
|-
 
|-
 
| 0x000A....
 
| 0x000A....
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| ?
+
| Sets internal Process9 date/time, same as [[Legacy_FIRM_PXI#Command_0xA]]
 
|-
 
|-
 
| 0x000B....
 
| 0x000B....
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| Stubbed, does some unnecessary copying to stack
+
| Stubbed, does some unnecessary copying to stack...
 
|-
 
|-
 
| 0x000C....
 
| 0x000C....
 
| [[1.0.0-0]]
 
| [[1.0.0-0]]
| Stubbed, does some unnecessary copying to stack
+
| Stubbed, does some unnecessary copying to stack...
 
|}
 
|}
  

Latest revision as of 10:55, 18 September 2024

"pxi:mc" service[edit]

Command Header Available since system version Description
0x00010000 1.0.0-0 ShutdownPxi. This is sent to the ARM9 by the ARM11 PXI-module, when PXI-module is shutting down due to receiving srv notification-ID 0x100. This sets CFG_BOOTENV to the value for CTR (0x1), and is only time it's set by Process9.
0x0002.... 1.0.0-0 Stubbed, does nothing...
0x0003.... 1.0.0-0 Stubbed, does nothing...
0x0004.... 1.0.0-0 Stubbed, does nothing...
0x00050040 1.0.0-0 Sleep (bool sleep). Used by PTM module. When seeing this command with a non-zero argument PXI module will block all other communication with Process9. This makes Process9

call svcKernelSetState(2), which will make Kernel9 synchronize with the Arm11's own KernelSetState(2) code and wait for a PXI_SYNC interrupt (sleep exit command).

0x0006.... 1.0.0-0 Stubbed, does nothing...
0x00070000 1.0.0-0 Stubbed, writes uninitialized stack byte to (u8*)(cmdbuf+4).
0x0008.... 1.0.0-0 Stubbed, returns 0xE0C0EC03...
0x0009.... 1.0.0-0 Stubbed, returns 0xE0C0EC03...
0x000A.... 1.0.0-0 Sets internal Process9 date/time, same as Legacy_FIRM_PXI#Command_0xA
0x000B.... 1.0.0-0 Stubbed, does some unnecessary copying to stack...
0x000C.... 1.0.0-0 Stubbed, does some unnecessary copying to stack...

Back to↓

Services API