This loads a [[CRO0|CRO]], and maps virtual memory for it with the required memory-permissions. The address for cmdword[2] is calculated by the user-process like so: when cmdword[1](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 loads a [[CRO0|CRO]], and maps virtual memory for it with the required memory-permissions. The address for cmdword[2] is calculated by the user-process like so: when cmdword[1](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>); |