Changes

Jump to navigation Jump to search
1 byte removed ,  16:56, 24 December 2016
no edit summary
Line 39: Line 39:  
0: Bit0: reschedule.  Bit1: switch context. If non zero, and depending on <code>currentThread->shallTerminate</code>, send thread exit debug events after handling valid/authorized SVCs (except 0xFF). Cleared to zero after handling. Bit2: lock debug features
 
0: Bit0: reschedule.  Bit1: switch context. If non zero, and depending on <code>currentThread->shallTerminate</code>, send thread exit debug events after handling valid/authorized SVCs (except 0xFF). Cleared to zero after handling. Bit2: lock debug features
   −
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). Needed for svcGetThreadContext and svcSetThreadContext to work properly in contexts other than exception handling.
+
1: "Allow debug" flag from the process's exheader. If set, <code>{r0-r7, r12, lr_svc}</code> will be pushed (they'll always be when handling invalid/unauthorized SVCs/SVC 0xFF). Needed for svcGetThreadContext and svcSetThreadContext to work properly in contexts other than exception handling (incl. hardware breakpoints). If lr_svc is set to one in this frame, the registers are reloaded from it (used with svcBreak, svc 0xff, etc).
    
2: ?
 
2: ?
    
3: ID of the SVC being handled (reset to 0 when done).
 
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)

Navigation menu