Changes

Jump to navigation Jump to search
194 bytes removed ,  12:32, 17 December 2016
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

Navigation menu