/kernel/trunk/core/irq.inc |
---|
143,22 → 143,7 |
ret |
endp |
align 4 |
proc enable_irq stdcall, irq_line:dword |
mov ebx, [irq_line] |
mov edx, 0x21 |
cmp ebx, 8 |
jb @F |
mov edx, 0xA1 |
sub ebx,8 |
@@: |
in al,dx |
btr eax, ebx |
out dx, al |
ret |
endp |
macro irq_serv_h [num] { |
forward |
align 4 |
246,15 → 231,22 |
.exit: |
mov [check_idle_semaphore],5 |
cmp bp, 8 |
mov al, 0x20 |
jb @f |
out 0xa0, al |
@@: |
out 0x20, al |
mov ecx, ebp |
call irq_eoi |
restore_ring3_context |
add esp, 4 |
iret |
align 4 |
irqD: |
push eax |
push ecx |
xor eax,eax |
out 0xf0,al |
mov cl, 13 |
call irq_eoi |
pop ecx |
pop eax |
iret |