38 void (*__esos_IsrFcns[NUM_USER_IRQS])(void);
40 void esos_InitUserInterrupts(
void) {
44 for (i=0; i<NUM_USER_IRQS; i++) {
45 esos_UnregisterUserInterrupt(i);
47 _esos_hw_InitUserInterrupts();
50 void esos_UnregisterUserInterrupt(
uint8_t u8IrqIndex ) {
53 if (u8IrqIndex < NUM_USER_IRQS) {
54 esos_DisableUserInterrupt( u8IrqIndex );
55 __esos_IsrFcns[u8IrqIndex] = _esos_DoNothingIsr;
59 void esos_RegisterUserInterrupt(
uint8_t u8IrqIndex,
void (*p2f)(
void) ) {
62 if (u8IrqIndex < NUM_USER_IRQS) {
63 __esos_IsrFcns[u8IrqIndex] = p2f;
67 void esos_EnableVerifiedUserInterrupt(
uint8_t u8IrqIndex ) {
70 if ((__esos_IsrFcns[u8IrqIndex] !=
NULLPTR) && ( __esos_IsrFcns[u8IrqIndex] != _esos_DoNothingIsr))
71 _esos_hw_EnableUserInterrupt( u8IrqIndex );
74 void esos_ExecuteUserIsr(
uint8_t u8IrqIndex ) {
75 __esos_IsrFcns[u8IrqIndex]();
78 void _esos_DoNothingIsr(
void) {
79 _esos_hw_DoNothingIsr();
unsigned char uint8_t
An abbreviation for an 8-bit unsigned integer.