X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Farm.git;a=blobdiff_plain;f=betty%2Finterrupts.h;h=c1a4f0461cbdf259935cee6c6efb53ef2f1d2af4;hp=ab93f8f1ab1c5a0e508bf6b43d4bb71dd4197842;hb=202c5cb4442b81aa5d0f7389b6dca62b2c121ac1;hpb=d01b3bb1e7565638e2275e6081dcb106c1fcdb41 diff --git a/betty/interrupts.h b/betty/interrupts.h index ab93f8f..c1a4f04 100644 --- a/betty/interrupts.h +++ b/betty/interrupts.h @@ -44,23 +44,24 @@ #define INTERRUPT_EXT_POLAR_HIGH 1 #define INTERRUPT_SET 0x00 -#define INTERRUPT_EINUSE 0x01 +#define INTERRUPT_USED 0x01 +#define INTERRUPT_PRIORITY_USED 0x02 /* type definitions */ typedef struct s_interrupt { - void *default_callback; - u8 default_mode; - void *callback[INTERRUPT_MAX_VIC]; - u8 mode[INTERRUPT_MAX_VIC]; + void (*default_soft_callback)(void); } 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_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);