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.
+
|}
+
+
= output, where *((u8*)errinfo) == 0 or 1 =
+
{| class="wikitable" border="1"
+
|-
+
! Entry
+
! Format string
+
! Format args
+
! Description
+
|-
+
| PID
+
| 0x%08X_0x%08X
+
| *(u32*)(errinfo + 0x10), *(u32*)(errinfo + 0x14)
+
| Process ID
+
|-
+
| REV
+
| %d
+
| *(u16*)(errinfo + 2) <nowiki>|</nowiki> (*(u8*)(errinfo + 1) << 16)
+
| ?
+
|-
+
| AID
+
| 0x%08X_0x%08X
+
| *(u32*)(errinfo + 0x18), *(u32*)(errinfo + 0x1C)
+
| Application ID?
+
|-
+
| ADR
+
| 0x%08X
+
| *(u32*)(errinfo + 8)
+
| Address where the error was thrown from?
+
|-
+
| RSL
+
| 0x%08X
+
| *(u32*)(errinfo + 4)
+
| Error code
+
|-
+
| Level
+
| %d
+
| *(u32*)(errinfo + 4) & 0x80000000 ? (*(u32*)(errinfo + 4) >> 0x27) - 0x20 : *(u32*)(errinfo + 4) >> 0x27
+
| Error code level
+
|-
+
| Summary
+
| %d
+
| (*(u32*)(errinfo + 4) & 0x7E00000) >> 21
+
| Error code summary
+
|-
+
| Module
+
| %d
+
| (*(u32*)(errinfo + 4) & 0x3FC00) >> 10
+
| Error code module
+
|-
+
| Desc
+
| %d
+
| *(u32*)(errinfo + 4) & 0x3FF
+
| Error code description
+
|-
+
| Datetime
+
| %04d/%02d/%02d %02d:%02d:%02d
+
| ?
+
| ?
|}
|}