Handles System Exceptions. More...
#include <stdint.h>Go to the source code of this file.
Classes | |
| struct | exception_context_t |
| Pointer to the stack frame of the saved context during interrupts. More... | |
Macros | |
| #define | EXCEPTION_IRQ_COUNT 15 |
| Number of IRQ bits on the system. | |
| #define | EXCEPTION_PPC_IRQ (*(volatile uint32_t*)0xcd000030) |
| Access to Holywoods Interrupt Controller Flags. | |
| #define | EXCEPTION_PPC_IRQ_MASK (*(volatile uint32_t*)0xcd000034) |
Typedefs | |
| typedef void(* | exception_irq_handler_t) (exception_irq_type_t irq) |
| Function pointer to handle irq exceptions. | |
Enumerations | |
| enum | exception_irq_type_t { EXCEPTION_IRQ_TYPE_GP_RUNTIME , EXCEPTION_IRQ_TYPE_RESET_SWITCH , EXCEPTION_IRQ_TYPE_DVD , EXCEPTION_IRQ_TYPE_SERIAL , EXCEPTION_IRQ_TYPE_EXI , EXCEPTION_IRQ_TYPE_STREAMING , EXCEPTION_IRQ_TYPE_DSP , EXCEPTION_IRQ_TYPE_MEMORY , EXCEPTION_IRQ_TYPE_VIDEO , EXCEPTION_IRQ_TYPE_PE_TOKEN , EXCEPTION_IRQ_TYPE_PE_FINISH , EXCEPTION_IRQ_TYPE_FIFO , EXCEPTION_IRQ_TYPE_DEBUGGER , EXCEPTION_IRQ_TYPE_HSP , EXCEPTION_IRQ_TYPE_IPC } |
| Types of IRQs during external exceptions. More... | |
Functions | |
| void | exceptions_install_vector () |
| Installs the exception vector into the CPU. | |
| void | exceptions_install_irq (exception_irq_handler_t handler, exception_irq_type_t type) |
| Registers an interrupt handler for an IRQ. | |
| void | exception_reset (exception_context_t *context) |
| void | exception_machine_check (exception_context_t *context) |
| void | exception_dsi (exception_context_t *context) |
| void | exception_isi (exception_context_t *context) |
| void | exception_external (exception_context_t *context) |
| void | exception_alignment (exception_context_t *context) |
| void | exception_program (exception_context_t *context) |
| void | exception_fpu_unavailable (exception_context_t *context) |
| void | exception_decrementer (exception_context_t *context) |
| void | exception_syscall (exception_context_t *context) |
| void | exceptions_start_first_task () |
Variables | |
| int32_t | exception_isr_context_switch_needed |
| Call the context switch at the end of the ISR if true. | |
Handles System Exceptions.
Handles system exceptions interrupt vector table. This includes interrupts. (asynchronous exceptions)
| #define EXCEPTION_IRQ_COUNT 15 |
Number of IRQ bits on the system.
Number of IRQ bits on the system.
| #define EXCEPTION_PPC_IRQ (*(volatile uint32_t*)0xcd000030) |
Access to Holywoods Interrupt Controller Flags.
There appears to be another interrupt controller inside of hollywood added on the Wii.
This is needed for acknowledging interrupts through it.
| typedef void(* exception_irq_handler_t) (exception_irq_type_t irq) |
Function pointer to handle irq exceptions.
Function pointer to handle irq exceptions. Use exceptions_install_irq to set it.
| irq | The IRQ type its handling. |
| enum exception_irq_type_t |
Types of IRQs during external exceptions.
Types of IRQs during external exceptions retrievd from the processor interface. Also used to enable/disable interrupts.
|
extern |
Registers an interrupt handler for an IRQ.
Registers an interrupt handler using a IRQ type
|
extern |
Installs the exception vector into the CPU.
Installs the exception vector into the CPU. Called during system_initialize as part of start.s.
Assumes interrupts to be disabled when you do this.
|
extern |
Call the context switch at the end of the ISR if true.
Call the context switch at the end of the ISR if true. Usually used along side xSemaphoreGiveFromISR such that awoken task are switched into when a ISR wakes a task.