Subversion Repositories Kolibri OS

Rev

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

Rev 2913 Rev 2935
Line 1040... Line 1040...
1040
;
1040
;
1041
; Currently only supports one descriptor per packet, if packet is fragmented
1041
; Currently only supports one descriptor per packet, if packet is fragmented
1042
; between multiple descriptors you will lose part of the packet
1042
; between multiple descriptors you will lose part of the packet
1043
;
1043
;
1044
;***************************************************************************
1044
;***************************************************************************
-
 
1045
 
1045
align 4
1046
align 4
1046
int_handler:
1047
int_handler:
Line -... Line 1048...
-
 
1048
 
-
 
1049
        DEBUGF  1,"\n%s int\n", my_service
1047
 
1050
 
1048
; find pointer of device which made IRQ occur
-
 
-
 
1051
; find pointer of device which made IRQ occur
1049
        mov     esi, device_list
1052
 
1050
        mov     ecx, [devices]
1053
        mov     ecx, [devices]
1051
        test    ecx, ecx
1054
        test    ecx, ecx
-
 
1055
        jz      .nothing
1052
        jz      .nothing
1056
        mov     esi, device_list
1053
  .nextdevice:
1057
  .nextdevice:
-
 
1058
        mov     ebx, [esi]
1054
        mov     ebx, [esi]
1059
 
1055
        set_io  0
1060
        set_io  0
1056
        set_io  isr
1061
        set_io  isr
1057
        in      eax, dx                 ; note that this clears all interrupts
1062
        in      eax, dx                 ; note that this clears all interrupts
1058
        test    ax, IE
1063
        test    ax, IE
-
 
1064
        jnz     .got_it
-
 
1065
  .continue:
-
 
1066
        add     esi, 4
1059
        jnz     .got_it
1067
        dec     ecx
1060
        loop    .nextdevice
1068
        jnz     .nextdevice
1061
  .nothing:
1069
  .nothing:
-
 
1070
        ret
1062
        ret
1071
 
Line 1063... Line 1072...
1063
  .got_it:
1072
  .got_it:
Line 1064... Line 1073...
1064
 
1073
 
1065
        DEBUGF  1,"IRQ! status=%x\n", ax
1074
        DEBUGF  1,"Device: %x Status: %x ", ebx, ax
Line 1066... Line 1075...
1066
 
1075