From 139ea3d0eed51e8a38cbf7f9c0c033b53fa6e6e2 Mon Sep 17 00:00:00 2001 From: "Sergey Semyonov (Serge)" Date: Tue, 20 Mar 2007 04:33:41 +0000 Subject: [PATCH] fixed bug in fs_lfn, enable DMA IDE git-svn-id: svn://kolibrios.org@421 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/branches/flat_kernel/blkdev/hd_drv.inc | 56 +++++++++---------- kernel/branches/flat_kernel/core/sched.inc | 8 ++- kernel/branches/flat_kernel/kernel.asm | 2 +- 3 files changed, 35 insertions(+), 31 deletions(-) diff --git a/kernel/branches/flat_kernel/blkdev/hd_drv.inc b/kernel/branches/flat_kernel/blkdev/hd_drv.inc index f1e6950521..c1377ff2ed 100755 --- a/kernel/branches/flat_kernel/blkdev/hd_drv.inc +++ b/kernel/branches/flat_kernel/blkdev/hd_drv.inc @@ -605,20 +605,20 @@ hdd_irq14: mov dx, [IDEContrRegsBaseAddr] mov al, 0 out dx, al - call update_counters - mov ebx, [dma_process] - cmp [CURRENT_TASK], ebx - jz .noswitch - mov [dma_task_switched], 1 - mov edi, [dma_slot_ptr] - mov eax, [CURRENT_TASK] - mov [dma_process], eax - mov eax, [TASK_BASE] - mov [dma_slot_ptr], eax - mov [CURRENT_TASK], ebx - mov [TASK_BASE], edi - mov byte [DONT_SWITCH], 1 - call do_change_task +; call update_counters +; mov ebx, [dma_process] +; cmp [CURRENT_TASK], ebx +; jz .noswitch +; mov [dma_task_switched], 1 +; mov edi, [dma_slot_ptr] +; mov eax, [CURRENT_TASK] +; mov [dma_process], eax +; mov eax, [TASK_BASE] +; mov [dma_slot_ptr], eax +; mov [CURRENT_TASK], ebx +; mov [TASK_BASE], edi +; mov byte [DONT_SWITCH], 1 +; call do_change_task .noswitch: popad popfd @@ -636,20 +636,20 @@ hdd_irq15: add dx, 8 mov al, 0 out dx, al - call update_counters - mov ebx, [dma_process] - cmp [CURRENT_TASK], ebx - jz .noswitch - mov [dma_task_switched], 1 - mov edi, [dma_slot_ptr] - mov eax, [CURRENT_TASK] - mov [dma_process], eax - mov eax, [TASK_BASE] - mov [dma_slot_ptr], eax - mov [CURRENT_TASK], ebx - mov [TASK_BASE], edi - mov byte [DONT_SWITCH], 1 - call do_change_task +; call update_counters +; mov ebx, [dma_process] +; cmp [CURRENT_TASK], ebx +; jz .noswitch +; mov [dma_task_switched], 1 +; mov edi, [dma_slot_ptr] +; mov eax, [CURRENT_TASK] +; mov [dma_process], eax +; mov eax, [TASK_BASE] +; mov [dma_slot_ptr], eax +; mov [CURRENT_TASK], ebx +; mov [TASK_BASE], edi +; mov byte [DONT_SWITCH], 1 +; call do_change_task .noswitch: popad popfd diff --git a/kernel/branches/flat_kernel/core/sched.inc b/kernel/branches/flat_kernel/core/sched.inc index 0c993324a6..db71bd21d4 100644 --- a/kernel/branches/flat_kernel/core/sched.inc +++ b/kernel/branches/flat_kernel/core/sched.inc @@ -64,6 +64,9 @@ change_task: pushad call update_counters + +if 0 + ; \begin{Mario79} cmp [dma_task_switched], 1 jne .find_next_task @@ -77,6 +80,9 @@ change_task: jmp @f .find_next_task: ; \end{Mario79} + +end if + call find_next_task test eax, eax ; the same task -> skip switch jnz .return @@ -214,8 +220,6 @@ do_change_task: ; inc [context_counter] ;noname & halyavin ;ret - - align 4 updatecputimes: diff --git a/kernel/branches/flat_kernel/kernel.asm b/kernel/branches/flat_kernel/kernel.asm index aa7301a7f0..acf2cb4ef0 100644 --- a/kernel/branches/flat_kernel/kernel.asm +++ b/kernel/branches/flat_kernel/kernel.asm @@ -747,7 +747,7 @@ first_app_found: ; mov [dma_hdd],1 cmp [IDEContrRegsBaseAddr], 0 -; setnz [dma_hdd] + setnz [dma_hdd] stdcall init_uart_service, DRV_ENTRY