44 void (*__esos_IsrFcns[NUM_USER_IRQS])(void);
46 void esos_InitUserInterrupts(
void) {
50 for (i=0; i<NUM_USER_IRQS; i++) {
51 esos_UnregisterUserInterrupt(i);
53 _esos_hw_InitUserInterrupts();
56 void esos_UnregisterUserInterrupt( uint8_t u8IrqIndex ) {
59 if (u8IrqIndex < NUM_USER_IRQS) {
60 esos_DisableUserInterrupt( u8IrqIndex );
61 __esos_IsrFcns[u8IrqIndex] = _esos_DoNothingIsr;
65 void esos_RegisterUserInterrupt( uint8_t u8IrqIndex,
void (*p2f)(
void) ) {
68 if (u8IrqIndex < NUM_USER_IRQS) {
69 __esos_IsrFcns[u8IrqIndex] = p2f;
73 void esos_EnableVerifiedUserInterrupt( uint8_t u8IrqIndex ) {
76 if ((__esos_IsrFcns[u8IrqIndex] !=
NULLPTR) && ( __esos_IsrFcns[u8IrqIndex] != _esos_DoNothingIsr))
77 _esos_hw_EnableUserInterrupt( u8IrqIndex );
80 void esos_ExecuteUserIsr( uint8_t u8IrqIndex ) {
81 __esos_IsrFcns[u8IrqIndex]();
84 void _esos_DoNothingIsr(
void) {
85 _esos_hw_DoNothingIsr();