Line 11: |
Line 11: |
| | 0x4 || [[#svcMapMemory]] || X0=dstaddr, X1=srcaddr, X2=size || W0=result | | | 0x4 || [[#svcMapMemory]] || X0=dstaddr, X1=srcaddr, X2=size || W0=result |
| |- | | |- |
− | | 0x5 || svcUnmapMemory || X0=dstaddr, X1=srcaddr, X2=size || W0=result | + | | 0x5 || [[#svcUnmapMemory]] || X0=dstaddr, X1=srcaddr, X2=size || W0=result |
| |- | | |- |
| | 0x6 || svcQueryMemory || X0=meminfo_ptr, X2=addr || W0=result, W1=pageinfo | | | 0x6 || svcQueryMemory || X0=meminfo_ptr, X2=addr || W0=result, W1=pageinfo |
Line 255: |
Line 255: |
| | | |
| Destination range is enforced to be within a special region. Code can get the range of this region from [[#svcGetInfo]] id0=2,3. | | Destination range is enforced to be within a special region. Code can get the range of this region from [[#svcGetInfo]] id0=2,3. |
| + | |
| + | == svcUnmapMemory == |
| + | '''Description:''' Unmaps a region that was previously mapped with [[#svcMapMemory]]. |
| + | |
| + | It's possible to unmap ranges partially, you don't need to unmap the entire range "in one go". |
| + | |
| + | The srcaddr/dstaddr must match what was given when the pages were originally mapped. |
| | | |
| == svcCreateThread == | | == svcCreateThread == |
| + | '''Description:''' Create a thread in the current process. |
| + | |
| Processor_id must be 0,1,2,3 or -2, where -2 uses the default cpuid for process. | | Processor_id must be 0,1,2,3 or -2, where -2 uses the default cpuid for process. |
| | | |
| == svcSleepThread == | | == svcSleepThread == |
| + | '''Description:''' Sleep for a specified amount of time, or yield thread. |
| + | |
| Setting nano=0 means "yield thread". | | Setting nano=0 means "yield thread". |
| | | |