Exports for Kernel.
More...
|
| enum | SceExcpKind {
SCE_EXCP_RESET = 0
, SCE_EXCP_UNDEF_INSTRUCTION = 1
, SCE_EXCP_SVC = 2
, SCE_EXCP_PABT = 3
,
SCE_EXCP_DABT = 4
, SCE_EXCP_UNUSED = 5
, SCE_EXCP_IRQ = 6
, SCE_EXCP_FIQ = 7
} |
| |
| enum | SceExcpHandlingCode {
SCE_EXCPMGR_EXCEPTION_HANDLED = 0
, SCE_EXCPMGR_EXCEPTION_NOT_HANDLED = 1
, SCE_EXCPMGR_EXCEPTION_HANDLING_CODE_2 = 2
, SCE_EXCPMGR_EXCEPTION_NOT_HANDLED_FATAL = 3
,
SCE_EXCPMGR_EXCEPTION_HANDLING_CODE_4 = 4
} |
| |
Exports for Kernel.
Using this library in your project
Include the header file in your project:
Link the library to the executable:
◆ SceExcpmgrData
| Data Fields |
|
int |
nestedExceptionCount[4] |
Number of times an exception handler has been entered on core - panic if > 1 on exception return. |
|
int |
unused[4] |
Seemingly unused. |
|
void * |
ExcpStackTop[4] |
Top of the exception stack (size is 0x1000) |
|
void * |
ExcpStackBottom[4] |
Bottom of the exception stack. |
◆ SceExcpmgrExceptionContext
| struct SceExcpmgrExceptionContext |
| Data Fields |
|
uint32_t |
r0 |
< Size is 0x400 on FW 3.60 |
|
uint32_t |
r1 |
|
|
uint32_t |
r2 |
|
|
uint32_t |
r3 |
|
|
uint32_t |
r4 |
|
|
uint32_t |
r5 |
|
|
uint32_t |
r6 |
|
|
uint32_t |
r7 |
|
|
uint32_t |
r8 |
|
|
uint32_t |
r9 |
|
|
uint32_t |
r10 |
|
|
uint32_t |
r11 |
|
|
uint32_t |
r12 |
|
|
uint32_t |
sp |
|
|
uint32_t |
lr |
|
|
uint32_t |
address_of_faulting_instruction |
|
|
SceExcpKind |
ExceptionKind |
|
|
uint32_t |
SPSR |
|
|
uint32_t |
CPACR |
|
|
uint32_t |
FPSCR |
|
|
uint32_t |
FPEXC |
|
|
uint32_t |
CONTEXTIDR |
|
|
uint32_t |
TPIDRURW |
|
|
uint32_t |
TPIDRURO |
|
|
uint32_t |
TPIDRPRW |
|
|
uint32_t |
TTBR1 |
|
|
uint32_t |
unused68 |
|
|
uint32_t |
DACR |
|
|
uint32_t |
DFSR |
|
|
uint32_t |
IFSR |
|
|
uint32_t |
DFAR |
|
|
uint32_t |
IFAR |
|
|
uint32_t |
PAR |
|
|
uint32_t |
TEEHBR |
|
|
uint32_t |
PMCR |
|
|
uint32_t |
PMCNTENSET |
|
|
uint32_t |
PMCNTENSET_2 |
|
|
uint32_t |
PMSELR |
|
|
uint32_t |
PMCCNTR |
|
|
uint32_t |
PMUSERENR |
|
|
uint32_t |
PMXEVTYPER0 |
|
|
uint32_t |
PMXEVCNTR0 |
|
|
uint32_t |
PMXEVTYPER1 |
|
|
uint32_t |
PMXEVCNTR1 |
|
|
uint32_t |
PMXEVTYPER2 |
|
|
uint32_t |
PMXEVCNTR2 |
|
|
uint32_t |
PMXEVTYPER3 |
|
|
uint32_t |
PMXEVCNTR3 |
|
|
uint32_t |
PMXEVTYPER4 |
|
|
uint32_t |
PMXEVCNTR4 |
|
|
uint32_t |
PMXEVTYPER5 |
|
|
uint32_t |
PMXEVCNTR5 |
|
|
uint32_t |
unusedD0 |
|
|
uint32_t |
unkD4 |
|
|
uint32_t |
DBGSCRext |
|
|
uint32_t |
unusedDC[9] |
|
|
uint64_t |
VFP_registers[32] |
|
|
uint32_t |
unk200[128] |
|
◆ SceExcpmgrExceptionHandler
◆ SceExcpKind
| Enumerator |
|---|
| SCE_EXCP_RESET | |
| SCE_EXCP_UNDEF_INSTRUCTION | |
| SCE_EXCP_SVC | |
| SCE_EXCP_PABT | |
| SCE_EXCP_DABT | |
| SCE_EXCP_UNUSED | |
| SCE_EXCP_IRQ | |
| SCE_EXCP_FIQ | |
◆ SceExcpHandlingCode
| Enumerator |
|---|
| SCE_EXCPMGR_EXCEPTION_HANDLED | Exception handled.
|
| SCE_EXCPMGR_EXCEPTION_NOT_HANDLED | Exception not handled - kills app with C2-12828-1.
|
| SCE_EXCPMGR_EXCEPTION_HANDLING_CODE_2 | |
| SCE_EXCPMGR_EXCEPTION_NOT_HANDLED_FATAL | Fatal exception - panics the kernel.
|
| SCE_EXCPMGR_EXCEPTION_HANDLING_CODE_4 | |
◆ VITASDK_BUILD_ASSERT_EQ() [1/2]
◆ VITASDK_BUILD_ASSERT_EQ() [2/2]
◆ ksceExcpmgrGetData()
Get a pointer to SceExcpmgr's internal data.
This is only used by exception handlers.
- Returns
- pointer to SceExcpmgrData structure
◆ ksceExcpmgrRegisterHandler()
| int ksceExcpmgrRegisterHandler |
( |
SceExcpKind |
kind, |
|
|
int |
priority, |
|
|
void * |
handler |
|
) |
| |
Register an exception handler.
handler must point to eight bytes of space followed by the handler code. The space will be used in the internal linked list structure.
- Parameters
-
| [in] | kind | The kind of exception |
| [in] | priority | The priority (must be 0 <= priority < 8), 0 highest |
| handler | The handler |
- Returns
- Error code or zero on success
◆ nestedExceptionCount
| int SceExcpmgrData::nestedExceptionCount[4] |
Number of times an exception handler has been entered on core - panic if > 1 on exception return.
◆ unused
| int SceExcpmgrData::unused[4] |
◆ ExcpStackTop
| void* SceExcpmgrData::ExcpStackTop[4] |
Top of the exception stack (size is 0x1000)
◆ ExcpStackBottom
| void* SceExcpmgrData::ExcpStackBottom[4] |
Bottom of the exception stack.
◆ r0
| uint32_t SceExcpmgrExceptionContext::r0 |
< Size is 0x400 on FW 3.60
◆ r1
| uint32_t SceExcpmgrExceptionContext::r1 |
◆ r2
| uint32_t SceExcpmgrExceptionContext::r2 |
◆ r3
| uint32_t SceExcpmgrExceptionContext::r3 |
◆ r4
| uint32_t SceExcpmgrExceptionContext::r4 |
◆ r5
| uint32_t SceExcpmgrExceptionContext::r5 |
◆ r6
| uint32_t SceExcpmgrExceptionContext::r6 |
◆ r7
| uint32_t SceExcpmgrExceptionContext::r7 |
◆ r8
| uint32_t SceExcpmgrExceptionContext::r8 |
◆ r9
| uint32_t SceExcpmgrExceptionContext::r9 |
◆ r10
| uint32_t SceExcpmgrExceptionContext::r10 |
◆ r11
| uint32_t SceExcpmgrExceptionContext::r11 |
◆ r12
| uint32_t SceExcpmgrExceptionContext::r12 |
◆ sp
| uint32_t SceExcpmgrExceptionContext::sp |
◆ lr
| uint32_t SceExcpmgrExceptionContext::lr |
◆ address_of_faulting_instruction
| uint32_t SceExcpmgrExceptionContext::address_of_faulting_instruction |
◆ ExceptionKind
◆ SPSR
| uint32_t SceExcpmgrExceptionContext::SPSR |
◆ CPACR
| uint32_t SceExcpmgrExceptionContext::CPACR |
◆ FPSCR
| uint32_t SceExcpmgrExceptionContext::FPSCR |
◆ FPEXC
| uint32_t SceExcpmgrExceptionContext::FPEXC |
◆ CONTEXTIDR
| uint32_t SceExcpmgrExceptionContext::CONTEXTIDR |
◆ TPIDRURW
| uint32_t SceExcpmgrExceptionContext::TPIDRURW |
◆ TPIDRURO
| uint32_t SceExcpmgrExceptionContext::TPIDRURO |
◆ TPIDRPRW
| uint32_t SceExcpmgrExceptionContext::TPIDRPRW |
◆ TTBR1
| uint32_t SceExcpmgrExceptionContext::TTBR1 |
◆ unused68
| uint32_t SceExcpmgrExceptionContext::unused68 |
◆ DACR
| uint32_t SceExcpmgrExceptionContext::DACR |
◆ DFSR
| uint32_t SceExcpmgrExceptionContext::DFSR |
◆ IFSR
| uint32_t SceExcpmgrExceptionContext::IFSR |
◆ DFAR
| uint32_t SceExcpmgrExceptionContext::DFAR |
◆ IFAR
| uint32_t SceExcpmgrExceptionContext::IFAR |
◆ PAR
| uint32_t SceExcpmgrExceptionContext::PAR |
◆ TEEHBR
| uint32_t SceExcpmgrExceptionContext::TEEHBR |
◆ PMCR
| uint32_t SceExcpmgrExceptionContext::PMCR |
◆ PMCNTENSET
| uint32_t SceExcpmgrExceptionContext::PMCNTENSET |
◆ PMCNTENSET_2
| uint32_t SceExcpmgrExceptionContext::PMCNTENSET_2 |
◆ PMSELR
| uint32_t SceExcpmgrExceptionContext::PMSELR |
◆ PMCCNTR
| uint32_t SceExcpmgrExceptionContext::PMCCNTR |
◆ PMUSERENR
| uint32_t SceExcpmgrExceptionContext::PMUSERENR |
◆ PMXEVTYPER0
| uint32_t SceExcpmgrExceptionContext::PMXEVTYPER0 |
◆ PMXEVCNTR0
| uint32_t SceExcpmgrExceptionContext::PMXEVCNTR0 |
◆ PMXEVTYPER1
| uint32_t SceExcpmgrExceptionContext::PMXEVTYPER1 |
◆ PMXEVCNTR1
| uint32_t SceExcpmgrExceptionContext::PMXEVCNTR1 |
◆ PMXEVTYPER2
| uint32_t SceExcpmgrExceptionContext::PMXEVTYPER2 |
◆ PMXEVCNTR2
| uint32_t SceExcpmgrExceptionContext::PMXEVCNTR2 |
◆ PMXEVTYPER3
| uint32_t SceExcpmgrExceptionContext::PMXEVTYPER3 |
◆ PMXEVCNTR3
| uint32_t SceExcpmgrExceptionContext::PMXEVCNTR3 |
◆ PMXEVTYPER4
| uint32_t SceExcpmgrExceptionContext::PMXEVTYPER4 |
◆ PMXEVCNTR4
| uint32_t SceExcpmgrExceptionContext::PMXEVCNTR4 |
◆ PMXEVTYPER5
| uint32_t SceExcpmgrExceptionContext::PMXEVTYPER5 |
◆ PMXEVCNTR5
| uint32_t SceExcpmgrExceptionContext::PMXEVCNTR5 |
◆ unusedD0
| uint32_t SceExcpmgrExceptionContext::unusedD0 |
◆ unkD4
| uint32_t SceExcpmgrExceptionContext::unkD4 |
◆ DBGSCRext
| uint32_t SceExcpmgrExceptionContext::DBGSCRext |
◆ unusedDC
| uint32_t SceExcpmgrExceptionContext::unusedDC[9] |
◆ VFP_registers
| uint64_t SceExcpmgrExceptionContext::VFP_registers[32] |
◆ unk200
| uint32_t SceExcpmgrExceptionContext::unk200[128] |