KThreadContext: Difference between revisions
No edit summary |
No edit summary |
||
Line 33: | Line 33: | ||
| u32[4] | | u32[4] | ||
| SVC access control data copied from KThread's owner process | | SVC access control data copied from KThread's owner process | ||
|- | |||
| 0xF48 (page_end - 0xB8) | |||
| u8[4] | |||
| Debug info (read by the SVC handler): | |||
0: Bit0: reschedule. Bit1: switch context. If non zero, and depending on <code>*((u8 *)currentThread + 0x36)</code>, send thread exit debug events after handling valid/authorized SVCs (except 0xFF). Cleared to zero after handling. | |||
1: "Allow debug" flag from the process's exheader. If set, <code>{r0-r7, r12, lr}</code> will be pushed (they'll always be when handling invalid/unauthorized SVCs/SVC 0xFF). | |||
2: ? | |||
3: ID of the SVC being handled (reset to 0 when done). | |||
|- | |||
| 0xF4C (page_end - 0xB4) | |||
| u32 | |||
| If non-zero, reloads <code>{r0-r7, r12, lr}</code> (otherwise skipped) from the stack after handling a SVC. | |||
|- | |- | ||
| 0xF50 (page_end - 0xB0) | | 0xF50 (page_end - 0xB0) |