Line 79: |
Line 79: |
| | 0x28 || svcPanic || X0=error? || | | | 0x28 || svcPanic || X0=error? || |
| |- | | |- |
− | | 0x29 || svcGetHandleInfo || X1=info_id, X2=handle, X3=info_sub_id || W0=result, X1=out | + | | 0x29 || [[#svcGetHandleInfo]] || X1=info_id, X2=handle, X3=info_sub_id || W0=result, X1=out |
| |- | | |- |
| | .... || ? || ? || ? | | | .... || ? || ? || ? |
Line 143: |
Line 143: |
| | | |
| Does not accept 0xFFFF8001 or 0xFFFF8000 as handles. | | Does not accept 0xFFFF8001 or 0xFFFF8000 as handles. |
| + | |
| + | == svcGetHandleInfo == |
| + | {| class=wikitable |
| + | ! Handle type || Id0 || Id1 || Description |
| + | |- |
| + | | Process || 0 || 0 || Code available mask. Always 0xF meaning all 4 cores available. |
| + | |- |
| + | | Process || 1 || 0 || Always 0xfffffffff0000000. |
| + | |- |
| + | | Process || 2 || 0 || Randomized unknown base-address. |
| + | |- |
| + | | Process || 3 || 0 || Always 0x1000000000. |
| + | |- |
| + | | Process || 4 || 0 || Randomized heap base-address. |
| + | |- |
| + | | Process || 5 || 0 || Always 0x180000000. |
| + | |- |
| + | | Process || 6 || 0 || Total memory usage? |
| + | |- |
| + | | Process || 7 || 0 || Process heap size. |
| + | |- |
| + | | Zero || 8 || 0 || Always 0. |
| + | |- |
| + | | Zero || 9 || 0 || This creates and returns an unknown handle. |
| + | |- |
| + | | Zero || 10 || -1, 0 || ? |
| + | |- |
| + | | Zero || 11 || 0-3 || Returns random from TRNG. Used to seed usermode PRNGs. |
| + | |- |
| + | | Process || 12 || 0 || Always 0x8000000. |
| + | |- |
| + | | Process || 13 || 0 || Always 0x7ff8000000. |
| + | |- |
| + | | Process || 14 || 0 || Start of stack mirror region. |
| + | |- |
| + | | Process || 15 || 0 || Size of stack mirror region. |
| + | |} |
| | | |
| == svcMapMemoryMirror == | | == svcMapMemoryMirror == |