Rev 2918 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2918 | Rev 2935 | ||
---|---|---|---|
Line 1111... | Line 1111... | ||
1111 | ;;;;;;;;;;;;;;;;;;;;;;; |
1111 | ;;;;;;;;;;;;;;;;;;;;;;; |
Line 1112... | Line 1112... | ||
1112 | 1112 | ||
1113 | align 4 |
1113 | align 4 |
Line 1114... | Line 1114... | ||
1114 | int_handler: |
1114 | int_handler: |
Line 1115... | Line 1115... | ||
1115 | 1115 | ||
Line 1116... | Line 1116... | ||
1116 | DEBUGF 1,"IRQ %x ",eax:2 |
1116 | DEBUGF 1,"\n%s int\n", my_service |
1117 | 1117 | ||
1118 | ; find pointer of device wich made IRQ occur |
1118 | ; find pointer of device wich made IRQ occur |
1119 | 1119 | ||
1120 | mov ecx, [devices] |
1120 | mov ecx, [devices] |
1121 | test ecx, ecx |
1121 | test ecx, ecx |
Line 1122... | Line 1122... | ||
1122 | jz .fail |
1122 | jz .nothing |
1123 | mov esi, device_list |
1123 | mov esi, device_list |
1124 | .nextdevice: |
1124 | .nextdevice: |
1125 | mov ebx, dword [esi] |
- | |
1126 | 1125 | mov ebx, [esi] |
|
1127 | set_io 0 |
1126 | |
1128 | set_io REG_IntrStatus |
- | |
1129 | in ax, dx |
1127 | set_io 0 |
1130 | 1128 | set_io REG_IntrStatus |
|
1131 | test ax, ax |
1129 | in ax, dx |
1132 | jnz .got_it |
1130 | test ax, ax |
1133 | 1131 | jnz .got_it |
|
1134 | .continue: |
1132 | .continue: |
Line 1135... | Line 1133... | ||
1135 | add esi, 4 |
1133 | add esi, 4 |
- | 1134 | dec ecx |
|
1136 | dec ecx |
1135 | jnz .nextdevice |
Line 1137... | Line 1136... | ||
1137 | jnz .nextdevice |
1136 | .nothing: |
1138 | 1137 | ret ; If no device was found, abort (The irq was probably for a device, not registered to this driver) |
|
Line 1139... | Line 1138... | ||
1139 | ret ; If no device was found, abort (The irq was probably for a device, not registered to this driver) |
1138 |