20bb3332740c353d29c2a3c97cf2a56563e495f8
[my-code/arm.git] / betty / interrupts.h
1 /*
2  * interrupts.h - arm exception handling header file
3  *
4  * author: hackbard@hackdaworld.org
5  *
6  */
7
8 #ifndef INTERRUPTS_H
9 #define INTERRUPTS_H
10
11 #include "lpc2xxx.h"
12 #include "types.h"
13
14 /* defines */
15
16 #define INTERRUPT_MAX_VIC               16
17
18 #define INTERRUPT_EXT_MODE_EDGE         0
19 #define INTERRUPT_EXT_MODE_LEVEL        1
20 #define INTERRUPT_EXT_POLAR_LOW         0
21 #define INTERRUPT_EXT_POLAR_HIGH        1
22
23 /* type definitions */
24
25 typedef struct s_interrupt {
26         void *default_callback;
27         u8 default_mode;
28         void *callback[INTERRUPT_MAX_VIC];
29         u8 mode[INTERRUPT_MAX_VIC];
30 } t_interrupt;
31
32 /* function prototypes */
33
34 void interrupt_set_default_callback(t_interrupt *ir,void *callback);
35
36 void interrupt_ext_ir_conf(u8 pin,u8 mode,u8 polar,
37                            void (*ext_ir_callback)(t_interrupt *ir));
38
39 void interrupt_handler_reset(void);
40 void interrupt_handler_undef_instruction(void);
41 void interrupt_handler_soft_ir(void);
42 void interrupt_handler_prefetch_abort(void);
43 void interrupt_handler_data_abort(void);
44 void interrupt_handler_fiq(void);
45
46 #endif