RO Services: Difference between revisions

ElementW (talk | contribs)
m Add anchors
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Services]]
{{Anchor|RO}}{{Anchor|ldr:ro}}
= RO service "ldr:ro" =
= RO service "ldr:ro" =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 13: Line 13:
| 0x00020082
| 0x00020082
| [[2.0.0-2]]
| [[2.0.0-2]]
| [[RO:LoadCRR|CRR_Load]]
| [[RO:LoadCRR|LoadCRR]]
|-
|-
| 0x00030042
| 0x00030042
| [[2.0.0-2]]
| [[2.0.0-2]]
| [[RO:UnloadCCR|CRR_Unload]]
| [[RO:UnloadCRR|UnloadCRR]]
|-
|-
| 0x000402C2
| 0x000402C2
| [[2.0.0-2]]
| [[2.0.0-2]]
| [[RO:LoadExeCRO|CRO_LoadAndFix]]
| [[RO:LoadExeCRO|LoadCRO]]
|-
|-
| 0x000500C2
| 0x000500C2
| [[2.0.0-2]]
| [[2.0.0-2]]
| [[RO:LoadCROSymbols|CRO_ApplyRelocationPatchesAndLink]]
| [[RO:UnloadCRO|UnloadCRO]]
|-
|-
| 0x00060042
| 0x00060042
| [[2.0.0-2]]
| [[2.0.0-2]]
| CRO_Load?
| [[RO:LinkCRO|LinkCRO]]
|-
|-
| 0x00070042
| 0x00070042
| [[2.0.0-2]]
| [[2.0.0-2]]
| CRO_PerformLinkage?
| [[RO:UnlinkCRO|UnlinkCRO]]
|-
|-
| 0x00080042
| 0x00080042
Line 41: Line 41:
| 0x000902C2
| 0x000902C2
| [[7.2.0-17]]
| [[7.2.0-17]]
| This is somewhat similar to LoadExeCRO?
| [[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]].


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 =
= Version history =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 60: Line 74:


Cmd5 now sets the last segment in the CRO binary to R-X when it's done.
Cmd5 now sets the last segment in the CRO binary to R-X when it's done.
Maybe more.
|-
|-
| v2049
| v2049
| ?
| No changes.
|-
|-
| v3074
| v3074
| Added cmd7.
| Added cmd9.
|-
|-
| v4096
| v4096
| No changes.
| 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).
|}
|}
[[Category:Services]]