RO Services

RO Services

RO service “ldr:ro” #

Command HeaderAvailable since system versionDescription
0x000100C22.0.0-2Initialize
0x000200822.0.0-2LoadCRR
0x000300422.0.0-2UnloadCRR
0x000402C22.0.0-2LoadCRO
0x000500C22.0.0-2UnloadCRO
0x000600422.0.0-2LinkCRO
0x000700422.0.0-2UnlinkCRO
0x000800422.0.0-2Shutdown
0x000902C27.2.0-17LoadCRO_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: CRO.

Error Codes #

Error CodeDescription
D9012FF1Address is misaligned
E0A12FF9Service is already Initialized
E1612FF7Provided Kernel Handle is invalid

Version history #

VersionChanges
v0Initial version.
v1024Removed 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.

v2049No changes.
v3074Added cmd9.
v4096No changes.
v5120No actual changes, just a rebuild with latest CTRSDK(only the CTRSDK version values in .code for ErrDisp were updated).

Category:Services