18 #if !defined(INTERRUPT_MANAGER_H)
19 #define INTERRUPT_MANAGER_H
50 #if FEATURE_MSCM_HAS_CPU_INTERRUPT_ROUTER
55 INTERRUPT_MANAGER_TARGET_SELF = -2,
56 INTERRUPT_MANAGER_TARGET_OTHERS = -1,
57 INTERRUPT_MANAGER_TARGET_NONE = 0,
58 INTERRUPT_MANAGER_TARGET_CP0 = 1,
59 INTERRUPT_MANAGER_TARGET_CP1 = 2,
60 INTERRUPT_MANAGER_TARGET_CP0_CP1 = 3
61 } interrupt_manager_cpu_targets_t;
65 #if FEATURE_INTERRUPT_MULTICORE_SUPPORT
72 INTERRUPT_CORE_DISABLED = 0U,
73 INTERRUPT_CORE_ENABLED = 1U
74 } interrupt_core_enable_t;
91 #if defined(__cplusplus)
113 const isr_t newHandler,
114 isr_t*
const oldHandler);
168 #if FEATURE_INTERRUPT_HAS_PENDING_STATE
201 #if FEATURE_INTERRUPT_HAS_ACTIVE_STATE
210 uint32_t INT_SYS_GetActive(
IRQn_Type irqNumber);
214 #if FEATURE_INTERRUPT_HAS_SOFTWARE_IRQ
223 void INT_SYS_SetSoftwareIRQRequest(
IRQn_Type irqNumber);
232 void INT_SYS_ClearSoftwareIRQRequest(
IRQn_Type irqNumber);
237 #if FEATURE_INTERRUPT_MULTICORE_SUPPORT
249 void INT_SYS_EnableIRQ_MC(
IRQn_Type irqNumber,
const uint8_t *coresIds, uint8_t coresCnt);
265 void INT_SYS_GetCoresForIRQ(
IRQn_Type irqNumber, interrupt_core_enable_t *cores);
277 void INT_SYS_DisableIRQ_MC(
IRQn_Type irqNumber,
const uint8_t *coresIds, uint8_t coresCnt);
287 void INT_SYS_DisableIRQ_MC_All(
IRQn_Type irqNumber);
292 #if FEATURE_MSCM_HAS_CPU_INTERRUPT_ROUTER
302 void INT_SYS_GenerateDirectedCpuInterrupt(
IRQn_Type irqNumber, interrupt_manager_cpu_targets_t cpu_target);
308 #if defined(__cplusplus)
void INT_SYS_SetPending(IRQn_Type irqNumber)
Set Pending Interrupt.
void DefaultISR(void)
Default ISR.
uint32_t INT_SYS_GetPending(IRQn_Type irqNumber)
Get Pending Interrupt.
void INT_SYS_DisableIRQ(IRQn_Type irqNumber)
Disables an interrupt for a given IRQ number.
void INT_SYS_DisableIRQGlobal(void)
Disable system interrupt.
IRQn_Type
Defines the Interrupt Numbers definitions.
void INT_SYS_SetPriority(IRQn_Type irqNumber, uint8_t priority)
Set Interrupt Priority.
void INT_SYS_ClearPending(IRQn_Type irqNumber)
Clear Pending Interrupt.
void INT_SYS_EnableIRQGlobal(void)
Enables system interrupt.
uint8_t INT_SYS_GetPriority(IRQn_Type irqNumber)
Get Interrupt Priority.
void INT_SYS_EnableIRQ(IRQn_Type irqNumber)
Enables an interrupt for a given IRQ number.
void(* isr_t)(void)
Interrupt handler type.
void INT_SYS_InstallHandler(IRQn_Type irqNumber, const isr_t newHandler, isr_t *const oldHandler)
Installs an interrupt handler routine for a given IRQ number.