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.