Subversion Repositories Kolibri OS

Rev

Rev 2934 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2934 Rev 2935
Line 680... Line 680...
680
;;;;;;;;;;;;;;;;;;;;;;;
680
;;;;;;;;;;;;;;;;;;;;;;;
681
;;                   ;;
681
;;                   ;;
682
;; Interrupt handler ;;
682
;; Interrupt handler ;;
683
;;                   ;;
683
;;                   ;;
684
;;;;;;;;;;;;;;;;;;;;;;;
684
;;;;;;;;;;;;;;;;;;;;;;;
-
 
685
 
685
align 4
686
align 4
686
int_handler:
687
int_handler:
687
        DEBUGF  2,"\nIRQ %x\n", eax:2   ; no, you cant replace 'eax:2' with 'al', this must be a bug in FDO
-
 
Line -... Line 688...
-
 
688
 
688
 
689
        DEBUGF  1,"\n%s int\n", my_service
689
;-------------------------------------------
690
;-------------------------------------------
Line 690... Line -...
690
; Find pointer of device wich made IRQ occur
-
 
691
 
691
; Find pointer of device wich made IRQ occur
692
        mov     esi, device_list
692
 
693
        mov     ecx, [devices]
693
        mov     ecx, [devices]
-
 
694
        test    ecx, ecx
694
        test    ecx, ecx
695
        jz      .nothing
695
        jz      .fail
696
        mov     esi, device_list
Line 696... Line 697...
696
  .nextdevice:
697
  .nextdevice:
-
 
698
        mov     ebx, [esi]
697
        mov     ebx, dword [esi]
699
 
-
 
700
        mov     edi, [device.mmio_addr]
-
 
701
        mov     eax, [edi + REG_ICR]
-
 
702
        test    eax, eax
-
 
703
        jnz     .got_it
698
 
704
  .continue:
-
 
705
        add     esi, 4
-
 
706
        dec     ecx
Line 699... Line -...
699
        mov     edi, [device.mmio_addr]
-
 
700
        test    edi, edi
707
        jnz     .nextdevice
Line 701... Line -...
701
        jz      .nextdevice
-
 
702
 
708
  .nothing:
Line 703... Line 709...
703
;--------------------
709
        ret
704
; Get interrupt cause
710
 
Line 705... Line 711...
705
 
711
  .got_it: