From 3421ffa9997f75f9025e3eefa1bb0bb38ef9fa1d Mon Sep 17 00:00:00 2001 From: CleverMouse Date: Wed, 29 Jun 2011 11:57:56 +0000 Subject: [PATCH] allow hooks of IRQ15 git-svn-id: svn://kolibrios.org@1989 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/core/dll.inc | 29 +++++++++++++++++++++-------- kernel/trunk/core/sys32.inc | 29 +---------------------------- kernel/trunk/kernel.asm | 4 ++-- 3 files changed, 24 insertions(+), 38 deletions(-) diff --git a/kernel/trunk/core/dll.inc b/kernel/trunk/core/dll.inc index 6e0a48cb3c..feef3cf5d5 100644 --- a/kernel/trunk/core/dll.inc +++ b/kernel/trunk/core/dll.inc @@ -151,14 +151,14 @@ align 4 ; .irq_13: ; push 13 ; jmp .main -; align 4 -; .irq_14: -; push 14 -; jmp .main -; align 4 -; .irq_15: -; push 15 -; jmp .main +align 4 +.irq_14: + push 14 + jmp .main +align 4 +.irq_15: + push 15 + jmp .main align 16 .main: @@ -171,6 +171,19 @@ align 16 cmp [v86_irqhooks+eax*8], 0 jnz v86_irq + cmp al, 14 + jnz @f + push eax + call [irq14_func] + pop eax +@@: + cmp al, 15 + jnz @f + push eax + call [irq15_func] + pop eax +@@: + mov ebx, [irq_tab+eax*4] test ebx, ebx jz .exit diff --git a/kernel/trunk/core/sys32.inc b/kernel/trunk/core/sys32.inc index 64fbfe7c8b..92f1c7f641 100644 --- a/kernel/trunk/core/sys32.inc +++ b/kernel/trunk/core/sys32.inc @@ -47,7 +47,7 @@ iglobal end if dd irq_serv.irq_5, p_irq6, irq_serv.irq_7 dd irq_serv.irq_8, irq_serv.irq_9, irq_serv.irq_10 - dd irq_serv.irq_11, irq_serv.irq_12, irqD,p_irq14,p_irq15 + dd irq_serv.irq_11, irq_serv.irq_12, irqD, irq_serv.irq_14, irq_serv.irq_15 times 16 dd unknown_interrupt ;int_0x30..int_0x3F ;int_0x40 gate trap (for directly copied) @@ -259,33 +259,6 @@ p_irq6: iret -p_irq14: - save_ring3_context - mov ax, app_data ;os_data - mov ds, ax - mov es, ax - mov edi, 14 - cmp [v86_irqhooks+edi*8], 0 - jnz v86_irq2 -; mov byte [BOOT_VAR + 0x48E], 0xFF - call [irq14_func] - call ready_for_next_irq_1 - restore_ring3_context - iret -p_irq15: - save_ring3_context - mov ax, app_data ;os_data - mov ds, ax - mov es, ax - mov edi, 15 - cmp [v86_irqhooks+edi*8], 0 - jnz v86_irq2 -; mov byte [BOOT_VAR + 0x48E], 0xFF - call [irq15_func] - call ready_for_next_irq_1 - restore_ring3_context - iret - ready_for_next_irq: mov eax,5 mov [check_idle_semaphore],eax diff --git a/kernel/trunk/kernel.asm b/kernel/trunk/kernel.asm index 4918c37f09..845e3da7cf 100644 --- a/kernel/trunk/kernel.asm +++ b/kernel/trunk/kernel.asm @@ -3804,8 +3804,8 @@ f_irqs: dd p_irq11 dd 0x0 dd 0x0 - dd p_irq14 - dd p_irq15 + dd 0x0 + dd 0x0 endg