Line 18:
Line 18:
| 0x00020042
| 0x00020042
| (size, <nowiki>(size<<14) | 2</nowiki>, errorinfoptr) This is similar to cmd1, except with this the input buffer is copied to final output errorinfo+0x80 instead of +0x0, via the ARM11 kernel. Max size is 0x100. ErrDisp doesn't do anything in the cmd-handler for this command at all, besides checking the command header and buffer header.
| (size, <nowiki>(size<<14) | 2</nowiki>, errorinfoptr) This is similar to cmd1, except with this the input buffer is copied to final output errorinfo+0x80 instead of +0x0, via the ARM11 kernel. Max size is 0x100. ErrDisp doesn't do anything in the cmd-handler for this command at all, besides checking the command header and buffer header.
+
|}
+
+
= errinfo =
+
Note: the following data is still only partly reliable
+
{| class="wikitable" border="1"
+
|-
+
! Type
+
! Name
+
! Info
+
|-
+
| 1 byte
+
| ?
+
| unknown
+
|-
+
| 1 byte
+
| ?
+
| unknown
+
|-
+
| 2 bytes
+
|
+
| The type of error info struct (??)
+
|-
+
| 4 bytes
+
|
+
| The return code of the errored function (?? - Inconsistent)
+
|-
+
| 4 bytes
+
| caller_ptr
+
| The contents of the LR register - where the error was called from
+
|-
+
| 4 bytes
+
| process_id
+
| The ID/Handle of the running process
|}
|}