*
*/
+#ifndef INTERRUPTS_H
+#define INTERRUPTS_H
+
#include "lpc2xxx.h"
#include "types.h"
+/* defines */
+
+#define INTERRUPT_MAX_VIC 16
+
+#define INTERRUPT_WATCHDOG 0
+#define INTERRUPT_DBG_COMM_RX 2
+#define INTERRUPT_DBG_COMM_TX 3
+#define INTERRUPT_TIMER0 4
+#define INTERRUPT_TIMER1 5
+#define INTERRUPT_UART0 6
+#define INTERRUPT_UART1 7
+#define INTERRUPT_PWM 8
+#define INTERRUPT_I2C 9
+#define INTERRUPT_SPI0 10
+#define INTERRUPT_SPI1 11
+#define INTERRUPT_PLL 12
+#define INTERRUPT_RTC 13
+#define INTERRUPT_EINT0 14
+#define INTERRUPT_EINT1 15
+#define INTERRUPT_EINT2 16
+#define INTERRUPT_EINT3 17
+#define INTERRUPT_ADC 18
+
+#define INTERRUPT_IRQ 0
+#define INTERRUPT_VIRQ 1
+#define INTERRUPT_FIQ 2
+
+#define INTERRUPT_EXT_MODE_EDGE 0
+#define INTERRUPT_EXT_MODE_LEVEL 1
+#define INTERRUPT_EXT_POLAR_LOW 0
+#define INTERRUPT_EXT_POLAR_HIGH 1
+
+#define INTERRUPT_SET 0x00
+#define INTERRUPT_USED 0x01
+#define INTERRUPT_PRIORITY_USED 0x02
+
+/* type definitions */
+
+typedef struct s_interrupt {
+ void (*default_soft_callback)(void);
+} t_interrupt;
+
/* function prototypes */
+void interrupt_init(void);
+void interrupt_set_default_callback(u32 callback_addr);
+void interrupt_set_soft_callback(void (*callback)(void));
+void interrupt_soft_clear(u8 src_number);
+void interrupt_clear(u8 src_number);
+void interrupt_soft_enable(u8 src_number);
+int interrupt_enable(u8 src_number,u8 mode,u8 priority,u32 callback_addr);
+
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