Line 671:
Line 671:
| style="background: red" | No
| style="background: red" | No
| style="background: red" | No
| style="background: red" | No
−
| [[Multi-threading#GetDebugThreadParam|GetDebugThreadParam]](s64* unused, u32* out, Handle kdebug, u32 threadId, DebugThreadParam param)
+
| [[Multi-threading#GetDebugThreadParam|GetDebugThreadParameter]](s64* unused, u32* out, Handle kdebug, u32 threadId, DebugThreadParam param)
−
| Disabled on regular kernel.
+
|
|- style="border-top: double"
|- style="border-top: double"
| 0x70
| 0x70
Line 845:
Line 845:
== struct DebugEventInfo ==
== struct DebugEventInfo ==
+
Size: 0x28 bytes
+
When using svcGetProcessDebugEvent, the kernel fetches the first [[KEventInfo]] instance of the process's [[KDebug]]. The debug event is handled and parsed into this structure.
When using svcGetProcessDebugEvent, the kernel fetches the first [[KEventInfo]] instance of the process's [[KDebug]]. The debug event is handled and parsed into this structure.
Line 1,100:
Line 1,102:
! Field
! Field
|-
|-
−
| [[KThread]]*[nbCores]
+
| [[KThread]]*[4]
| Pointers to the attached process's that were running, on each core, at the time svcBreakDebugProcess was called
| Pointers to the attached process's that were running, on each core, at the time svcBreakDebugProcess was called
+
Only the first two entries are relevant on O3DS.
|}
|}
Line 1,192:
Line 1,195:
When setting CPSR, the following assignment is done: <code>ctx->cpsr = ctx->cpsr & 0x7F0FDFF | userCtx->cpuRegisters.cpsr & 0xF80F0200;</code>. This is to avoid obvious security issues.
When setting CPSR, the following assignment is done: <code>ctx->cpsr = ctx->cpsr & 0x7F0FDFF | userCtx->cpuRegisters.cpsr & 0xF80F0200;</code>. This is to avoid obvious security issues.
−
== enum DebugThreadParam ==
+
== enum DebugThreadParameter ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,201:
Line 1,204:
| 0
| 0
|-
|-
−
| SCHEDULE
+
| SCHEDULING_MASK_LOW
| 1
| 1
|-
|-