#ifndef __EVENTQ_H__
#define __EVENTQ_H__

#define EVENTQ_EVENT_NOEVENT   (0)
#define EVENTQ_EVENT_UART0RX   (1)
#define EVENTQ_EVENT_RTCTICK   (2)
#define EVENTQ_EVENT_TIMERTICK (3)
#define EVENTQ_EVENT_DATAPOLL  (4)
#define EVENTQ_EVENT_GFIPOLL   (5)
#define EVENTQ_EVENT_GFIPOLL0  (6)
#define EVENTQ_EVENT_GFIPOLL1  (7)
#define EVENTQ_EVENT_UART1RX   (8)
#define EVENTQ_EVENT_ADC12_KVH (9)
#define EVENTQ_EVENT_MAX       (EVENTQ_EVENT_ADC12_KVH)

typedef void (*eventHandler)(void);

int eventqInit(void);
void eventqPut(int);
void eventqUrgentPut(int);
int eventqGet(void);
int eventqRegisterHandler(int evType, eventHandler handler);
int eventqGetHandler(int evType, eventHandler *pHandler);
void eventqProcessEvents(void);

#endif /* __EVENTQ_H__ */
