some interrupt stuff, now basketball ...
[my-code/arm.git] / betty / interrupts.c
index fa1fcc1..41945cf 100644 (file)
  * functions
  */
 
+void interrupt_set_default_callback(void *callback) {
+
+       VICDefVectAddr=(u32)callback;
+       
+}
+
+void interrupt_clear(u8 src_number) {
+
+}
+
+int interrupt_set(u8 src_number,u8 mode,u8 priority,void *callback) {
+
+       /* check whether this ir source is allready assigned */
+       if(VICSoftInt&(1<<src_number))
+               return INTERRUPT_EINUSE;
+       
+       /* force interrupt */
+       VICSoftInt|=(1<<src_number);
+       VICIntEnable|=(1<<src_number);
+
+       switch(mode) {
+               case INTERRUPT_FIQ:
+                       VICIntSelect|=(1<<src_number);
+                       break;
+               case INTERRUPT_VIRQ:
+               case INTERRUPT_IRQ:
+               case default:
+       }
+
+       return INTERRUPT_SET;
+}
+
 /*
  * the actual exception handlers (as defined in startup.s)
  */
@@ -35,10 +67,6 @@ void interrupt_handler_prefetch_abort(void) {
 void interrupt_handler_data_abort(void) {
 }
 
-// irq
-void interrupt_handler_irq(void) {
-}
-
 // fiq
 void interrupt_handler_fiq(void) {
 }