Line 14: |
Line 14: |
| |- | | |- |
| | 0x00010800 | | | 0x00010800 |
− | | ThrowFatalError(0x80-byte errorinfo) | + | | [[ERR:ThrowFatalError|ThrowFatalError]] |
| |- | | |- |
| | 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. | + | | [[ERR:SetUserString|SetUserString]] |
− | |}
| |
− | | |
− | = 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) >> 27) - 0x20 : *(u32*)(errinfo + 4) >> 27
| |
− | | 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
| |
− | | ?
| |
− | | ?
| |
− | |}
| |
− | | |
− | = output, where *((u8*)errinfo) == 4 =
| |
− | {| 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?
| |
− | |-
| |
− | | RSL
| |
− | | 0x%08X
| |
− | | *(u32*)(errinfo + 4)
| |
− | | Error code
| |
− | |-
| |
− | | Level
| |
− | | %d
| |
− | | *(u32*)(errinfo + 4) & 0x80000000 ? (*(u32*)(errinfo + 4) >> 27) - 0x20 : *(u32*)(errinfo + 4) >> 27
| |
− | | 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
| |
− | |-
| |
− | | ?
| |
− | | %.*s
| |
− | | 0x2E, for (int i = 0; i < 2; i++) errinfo + (i * 46) + 0x20
| |
− | | ?
| |
− | |-
| |
− | | Datetime
| |
− | | %04d/%02d/%02d %02d:%02d:%02d
| |
− | | ?
| |
− | | ? | |
| |} | | |} |