*
*/
+#ifndef INTERRUPTS_H
+#define INTERRUPTS_H
+
#include "lpc2xxx.h"
#include "types.h"
+/* defines */
+
+#define INTERRUPT_MAX_VIC 16
+
+#define INTERRUPT_EXT_MODE_EDGE 0
+#define INTERRUPT_EXT_MODE_LEVEL 1
+#define INTERRUPT_EXT_POLAR_LOW 0
+#define INTERRUPT_EXT_POLAR_HIGH 1
+
+/* type definitions */
+
+typedef struct s_interrupt {
+ void *default_callback;
+ u8 default_mode;
+ void *callback[INTERRUPT_MAX_VIC];
+ u8 mode[INTERRUPT_MAX_VIC];
+} t_interrupt;
+
/* function prototypes */
+void interrupt_set_default_callback(t_interrupt *ir,void *callback);
+
+void interrupt_ext_ir_conf(u8 pin,u8 mode,u8 polar,
+ void (*ext_ir_callback)(t_interrupt *ir));
+
void interrupt_handler_reset(void);
void interrupt_handler_undef_instruction(void);
void interrupt_handler_soft_ir(void);
void interrupt_handler_prefetch_abort(void);
void interrupt_handler_data_abort(void);
-void interrupt_handler_irq(void);
void interrupt_handler_fiq(void);
+#endif