Line 230: |
Line 230: |
| Setting write-only is not allowed either (bit1). | | Setting write-only is not allowed either (bit1). |
| | | |
− | == svcSetMemoryState == | + | == svcSetMemoryAttribute == |
| {| class=wikitable | | {| class=wikitable |
| ! State0 || State1 || Action | | ! State0 || State1 || Action |
| |- | | |- |
− | | 0 || 0 || Clear bit35 in [[#MemoryState]]. | + | | 0 || 0 || Clear bit35 in [[#MemoryAttribute]]. |
| |- | | |- |
− | | 8 || 0 || Clear bit35 in [[#MemoryState]]. | + | | 8 || 0 || Clear bit35 in [[#MemoryAttribute]]. |
| |- | | |- |
− | | 8 || 8 || Set bit35 in [[#MemoryState]]. | + | | 8 || 8 || Set bit35 in [[#MemoryAttribute]]. |
| |} | | |} |
| | | |
| This might used for switching between cached and non-cached mappings. | | This might used for switching between cached and non-cached mappings. |
| | | |
− | == svcMirrorStack == | + | == svcMapMemory == |
| Memory is only allowed to be mapped into a special region. | | Memory is only allowed to be mapped into a special region. |
| | | |
| Code can get the range of this region from [[#svcGetInfo]]. | | Code can get the range of this region from [[#svcGetInfo]]. |
| | | |
− | The source region gets reprotected to ---, and sets bit32 is set in [[#MemoryState]]. | + | The source region gets reprotected to ---, and sets bit32 is set in [[#MemoryAttribute]]. |
| | | |
| == svcCreateThread == | | == svcCreateThread == |
Line 256: |
Line 256: |
| Setting nano=0 means "yield thread". | | Setting nano=0 means "yield thread". |
| | | |
− | == svcCreateMemoryMirror == | + | == svcCreateTransferMemory == |
− | This one reprotects the src block with perms you give it. It also sets bit32 into [[#MemoryState]]. | + | This one reprotects the src block with perms you give it. It also sets bit32 into [[#MemoryAttribute]]. |
| | | |
| Executable bit perm not allowed. | | Executable bit perm not allowed. |
| | | |
− | Closing all handles automatically causes the bit32 in [[#MemoryState]] to clear, and the permission to reset. | + | Closing all handles automatically causes the bit32 in [[#MemoryAttribute]] to clear, and the permission to reset. |
| | | |
− | == svcWaitEvents == | + | == svcWaitSynchronization == |
| Works with num_handles <= 0x40, error on num_handles == 0. | | Works with num_handles <= 0x40, error on num_handles == 0. |
| | | |
| Does not accept 0xFFFF8001 or 0xFFFF8000 as handles. | | Does not accept 0xFFFF8001 or 0xFFFF8000 as handles. |
| | | |
− | == svcSendSyncRequestByBuf == | + | == svcSendSyncRequestWithUserBuffer == |
| Size must be 0x1000-aligned. | | Size must be 0x1000-aligned. |
| | | |
Line 311: |
Line 311: |
| |} | | |} |
| | | |
− | == svcMapMemoryMirror == | + | == svcMapTransferMemory == |
− | The newly mapped pages will have [[#MemoryState]] type 0xE. | + | The newly mapped pages will have [[#MemoryAttribute]] type 0xE. |
| | | |
| You must pass same size and permissions as given in svcCreateMemoryMirror, otherwise error. | | You must pass same size and permissions as given in svcCreateMemoryMirror, otherwise error. |
| | | |
− | == svcUnmapMemoryMirror == | + | == svcUnmapTransferMemory == |
| Size must match size given in map syscall, otherwise there's an invalid-size error. | | Size must match size given in map syscall, otherwise there's an invalid-size error. |
| | | |
− | == MemoryState == | + | == MemoryAttribute == |
| {| class=wikitable | | {| class=wikitable |
| ! Lower 8 bits || Type || Meaning | | ! Lower 8 bits || Type || Meaning |