RO Services: Difference between revisions

No edit summary
ElementW (talk | contribs)
m Add anchors
 
(18 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Anchor|RO}}{{Anchor|ldr:ro}}
= RO service "ldr:ro" =
= RO service "ldr:ro" =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!  Command Header
!  Command Header
!  Available since system version
!  Description
!  Description
|-
|-
| 0x000100C2
| 0x000100C2
|  
| [[2.0.0-2]]
| [[RO:Initialize|Initialize]]
|-
|-
| 0x00020082
| 0x00020082
| [[RO:LoadCRR|LoadCCR]]
| [[2.0.0-2]]
| [[RO:LoadCRR|LoadCRR]]
|-
|-
| 0x00030042
| 0x00030042
| UnloadCCR?
| [[2.0.0-2]]
| [[RO:UnloadCRR|UnloadCRR]]
|-
|-
| 0x000402C2
| 0x000402C2
| Loads an executable [[CRO0|CRO]]
| [[2.0.0-2]]
| [[RO:LoadExeCRO|LoadCRO]]
|-
|-
| 0x000500C2
| 0x000500C2
|  
| [[2.0.0-2]]
| [[RO:UnloadCRO|UnloadCRO]]
|-
|-
| 0x00060042
| 0x00060042
|  
| [[2.0.0-2]]
| [[RO:LinkCRO|LinkCRO]]
|-
|-
| 0x00070042
| 0x00070042
|  
| [[2.0.0-2]]
| [[RO:UnlinkCRO|UnlinkCRO]]
|-
|-
| 0x00080042
| 0x00080042
|  
| [[2.0.0-2]]
| [[RO:Shutdown|Shutdown]]
|-
| 0x000902C2
| [[7.2.0-17]]
| [[RO:LoadExeCRO|LoadCRO_New]]
|}
The mapadress used in these services is calculated by the user-process like so: when inputaddr is <0x08000000, the address used is the same one from inputaddr. Otherwise, the address is: mapvaddr = inputaddr - (0x08000000 - <main-process .text address + .text, .rodata, .data, and .bss size aligned to pagesize>). This service API is used for CTR "DLLs"/shared libraries: [[CRO0|CRO]].
 
= Error Codes =
{| class="wikitable" border ="1"
|-
!Error Code
!Description
|-
| D9012FF1
| Address is misaligned
|-
| E0A12FF9
| Service is already Initialized
|-
| E1612FF7
| Provided Kernel Handle is invalid
|-
|}
= Version history =
{| class="wikitable" border="1"
|-
!  Version
!  Changes
|-
| v0
| Initial version.
|-
| v1024
| Removed access for SVC's: 5,7,D,E,10.
 
Cmd5 now sets the last segment in the CRO binary to R-X when it's done.
 
Maybe more.
|-
| v2049
| No changes.
|-
| v3074
| Added cmd9.
|-
| v4096
| No changes.
|-
| [[9.0.0-20|v5120]]
| No actual changes, just a rebuild with latest CTRSDK(only the CTRSDK version values in .code for [[ErrDisp]] were updated).
|}
|}


This service API is used for CTR "DLLs".
[[Category:Services]]