RetroArch
|
#include <stdlib.h>
#include <string.h>
#include "asm.h"
#include "cache.h"
#include "context.h"
#include "processor.h"
#include "lwp_threads.h"
#include "irq.h"
#include "console.h"
Classes | |
struct | irq_handler_s |
Macros | |
#define | CPU_STACK_ALIGNMENT 8 |
#define | CPU_MINIMUM_STACK_FRAME_SIZE 16 |
#define | _SHIFTL(v, s, w) ((u32) (((u32)(v) & ((0x01 << (w)) - 1)) << (s))) |
#define | _SHIFTR(v, s, w) ((u32)(((u32)(v) >> (s)) & ((0x01 << (w)) - 1))) |
Functions | |
void | __exception_load (u32, void *, u32, void *) |
void | c_irqdispatcher (frame_context *ctx) |
static u32 | __SetInterrupts (u32 iMask, u32 nMask) |
void | __UnmaskIrq (u32 nMask) |
void | __MaskIrq (u32 nMask) |
void | __irq_init () |
raw_irq_handler_t | IRQ_Request (u32 nIrq, raw_irq_handler_t pHndl, void *pCtx) |
Register an interrupt handler. More... | |
raw_irq_handler_t | IRQ_GetHandler (u32 nIrq) |
Get the handler from interrupt number. More... | |
raw_irq_handler_t | IRQ_Free (u32 nIrq) |
Free an interrupt handler. More... | |
u32 | IRQ_Disable () |
Disable the complete IRQ subsystem. No interrupts will be served. Multithreading kernel fully disabled. More... | |
void | IRQ_Restore (u32 level) |
Restore the IRQ subsystem with the given level. This is function should be used together with IRQ_Disable() More... | |
Variables | |
struct irq_handler_s | __attribute__ |
static u64 | spuriousIrq = 0 |
static u32 | prevIrqMask = 0 |
static u32 | currIrqMask = 0 |
static struct irq_handler_s | g_IRQHandler [32] |
static vu32 *const | _piReg = (u32*)0xCC003000 |
static vu16 *const | _memReg = (u16*)0xCC004000 |
static vu16 *const | _dspReg = (u16*)0xCC005000 |
static u32 const | _irqPrio [] |
s8 | irqhandler_start [] |
s8 | irqhandler_end [] |
u8 | __intrstack_addr [] |
u8 | __intrstack_end [] |
return | |
#define CPU_MINIMUM_STACK_FRAME_SIZE 16 |
#define CPU_STACK_ALIGNMENT 8 |
void c_irqdispatcher | ( | frame_context * | ctx | ) |
Disable the complete IRQ subsystem. No interrupts will be served. Multithreading kernel fully disabled.
raw_irq_handler_t IRQ_Free | ( | u32 | nIrq | ) |
Free an interrupt handler.
[in] | nIrq | interrupt number for which to free the handler |
raw_irq_handler_t IRQ_GetHandler | ( | u32 | nIrq | ) |
Get the handler from interrupt number.
[in] | nIrq | interrupt number for which to retrieve the handler |
raw_irq_handler_t IRQ_Request | ( | u32 | nIrq, |
raw_irq_handler_t | pHndl, | ||
void * | pCtx | ||
) |
Register an interrupt handler.
[in] | nIrq | interrupt number to which to register the handler |
[in] | pHndl | pointer to the handler callback function which to call when interrupt has triggered |
[in] | pCtx | pointer to user data to pass with, when handler is called |
Restore the IRQ subsystem with the given level. This is function should be used together with IRQ_Disable()
[in] | level | IRQ level to restore to. |
struct irq_handler_s __attribute__ |
u8 __intrstack_addr[] |
u8 __intrstack_end[] |
|
static |
|
static |
s8 irqhandler_end[] |
s8 irqhandler_start[] |
|
static |
return |
|
static |