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 |