RO Services: Difference between revisions
m Add anchors |
|||
(6 intermediate revisions by 4 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" | ||
Line 13: | Line 13: | ||
| 0x00020082 | | 0x00020082 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| [[RO:LoadCRR| | | [[RO:LoadCRR|LoadCRR]] | ||
|- | |- | ||
| 0x00030042 | | 0x00030042 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| [[RO: | | [[RO:UnloadCRR|UnloadCRR]] | ||
|- | |- | ||
| 0x000402C2 | | 0x000402C2 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| [[RO:LoadExeCRO| | | [[RO:LoadExeCRO|LoadCRO]] | ||
|- | |- | ||
| 0x000500C2 | | 0x000500C2 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| [[RO: | | [[RO:UnloadCRO|UnloadCRO]] | ||
|- | |- | ||
| 0x00060042 | | 0x00060042 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| | | [[RO:LinkCRO|LinkCRO]] | ||
|- | |- | ||
| 0x00070042 | | 0x00070042 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| | | [[RO:UnlinkCRO|UnlinkCRO]] | ||
|- | |- | ||
| 0x00080042 | | 0x00080042 | ||
Line 41: | Line 41: | ||
| 0x000902C2 | | 0x000902C2 | ||
| [[7.2.0-17]] | | [[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 = | = 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 | | 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]] |