Line 1,255:
Line 1,255:
| Yes
| Yes
| No
| No
−
| Arguments: <code>u64 unk</code>
+
| Arguments: <code>u32 what, u64 val</code>
−
What this does depends of the value of the field that was stored in [[Configuration_Memory|0x1FF80015]].
+
[[Configuration_Memory|0x1FF80015]] ("is devmode enabled") needs to be true.
−
If this is 0 (Prod) or any invalid value, nothing is done. If it is 1 (Dev), <code>unk != 0</code> is written to some global variable; if this variable has bit0 clear, the regdump will be written when an exception occurs in a privileged mode (the destination depends on fields in the local storage of the current thread at the time of the exception).
+
If <code>what</code> is 0 or any invalid value, nothing is done.
−
If 2 (Debugger), it's written to the following byte.
+
If it is 1, <code>val != 0</code> is written to the global variable enabling register dumps on CPU exceptions (dumps that are fetched with svcGetDebugThre44adContext)
−
If 3 (Firm), this calls a scheduler-related function with <code>(u32)unk</code> which performs a context switch, and that value to a global variable if its contents are not equal to the arg, under certain conditions (returns error 0xC8A01414 otherwise).
+
If 2, kernelpanic will be called when svcBreak is used by a non-attached process
+
+
If 3, this changes the scheduling/preemption mode (when no threads are being preempted, otherwise returns error 0xC8A01414), see [[KResourceLimit]] for more details.
|-
|-
| 7
| 7