Changes

848 bytes added ,  23:40, 30 November 2016
Line 1,162: Line 1,162:     
= KernelSetState =
 
= KernelSetState =
 +
KernelSetState uses the 6th [[ARM11_Interrupts#Private_Interrupts|software-generated interrupt]] for any operation involving synchronization between cores.
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 1,209: Line 1,211:  
| Yes
 
| Yes
 
| No
 
| No
| Debug related?
+
| Arguments: <code>u64 unk</code>
 +
What this does depends of the value of the field that was stored in [[Configuration_Memory|0x1FF80015]]. 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 2 (Debugger), it's written to the following byte. 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).
 
|-
 
|-
 
| 7
 
| 7
Line 1,225: Line 1,228:  
| Yes, implemented at some point after system-version v4.5.
 
| Yes, implemented at some point after system-version v4.5.
 
| ?
 
| ?
| Unknown
+
| Argumens: <code>u64 unk</code>.
 +
Writes <code>unk</code> to some global variable, but the latter doesn't seem to be used anywhere else.
 
|-
 
|-
 
| 10
 
| 10