SVC: Difference between revisions
No edit summary |
|||
Line 232: | Line 232: | ||
! State0 || State1 || Action | ! State0 || State1 || Action | ||
|- | |- | ||
| 0 || 0 || Clear | | 0 || 0 || Clear bit3 in [[#MemoryAttribute]]. | ||
|- | |- | ||
| 8 || 0 || Clear | | 8 || 0 || Clear bit3 in [[#MemoryAttribute]]. | ||
|- | |- | ||
| 8 || 8 || Set | | 8 || 8 || Set bit3 in [[#MemoryAttribute]]. | ||
|} | |} | ||
Line 246: | Line 246: | ||
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 | The source region gets reprotected to ---, and sets bit0 is set in [[#MemoryAttribute]]. | ||
== svcCreateThread == | == svcCreateThread == | ||
Line 258: | Line 258: | ||
== svcCreateTransferMemory == | == svcCreateTransferMemory == | ||
This one reprotects the src block with perms you give it. It also sets | This one reprotects the src block with perms you give it. It also sets bit0 into [[#MemoryAttribute]]. | ||
Executable bit perm not allowed. | Executable bit perm not allowed. | ||
Closing all handles automatically causes the | Closing all handles automatically causes the bit0 in [[#MemoryAttribute]] to clear, and the permission to reset. | ||
== svcWaitSynchronization == | == svcWaitSynchronization == | ||
Line 382: | Line 382: | ||
== svcMapTransferMemory == | == svcMapTransferMemory == | ||
The newly mapped pages will have [[# | The newly mapped pages will have [[#MemoryState]] 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. |