fixed bug in fs_lfn, enable DMA IDE

git-svn-id: svn://kolibrios.org@421 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2007-03-20 04:33:41 +00:00
parent b1101aa868
commit 139ea3d0ee
3 changed files with 35 additions and 31 deletions

View File

@ -605,20 +605,20 @@ hdd_irq14:
mov dx, [IDEContrRegsBaseAddr] mov dx, [IDEContrRegsBaseAddr]
mov al, 0 mov al, 0
out dx, al out dx, al
call update_counters ; call update_counters
mov ebx, [dma_process] ; mov ebx, [dma_process]
cmp [CURRENT_TASK], ebx ; cmp [CURRENT_TASK], ebx
jz .noswitch ; jz .noswitch
mov [dma_task_switched], 1 ; mov [dma_task_switched], 1
mov edi, [dma_slot_ptr] ; mov edi, [dma_slot_ptr]
mov eax, [CURRENT_TASK] ; mov eax, [CURRENT_TASK]
mov [dma_process], eax ; mov [dma_process], eax
mov eax, [TASK_BASE] ; mov eax, [TASK_BASE]
mov [dma_slot_ptr], eax ; mov [dma_slot_ptr], eax
mov [CURRENT_TASK], ebx ; mov [CURRENT_TASK], ebx
mov [TASK_BASE], edi ; mov [TASK_BASE], edi
mov byte [DONT_SWITCH], 1 ; mov byte [DONT_SWITCH], 1
call do_change_task ; call do_change_task
.noswitch: .noswitch:
popad popad
popfd popfd
@ -636,20 +636,20 @@ hdd_irq15:
add dx, 8 add dx, 8
mov al, 0 mov al, 0
out dx, al out dx, al
call update_counters ; call update_counters
mov ebx, [dma_process] ; mov ebx, [dma_process]
cmp [CURRENT_TASK], ebx ; cmp [CURRENT_TASK], ebx
jz .noswitch ; jz .noswitch
mov [dma_task_switched], 1 ; mov [dma_task_switched], 1
mov edi, [dma_slot_ptr] ; mov edi, [dma_slot_ptr]
mov eax, [CURRENT_TASK] ; mov eax, [CURRENT_TASK]
mov [dma_process], eax ; mov [dma_process], eax
mov eax, [TASK_BASE] ; mov eax, [TASK_BASE]
mov [dma_slot_ptr], eax ; mov [dma_slot_ptr], eax
mov [CURRENT_TASK], ebx ; mov [CURRENT_TASK], ebx
mov [TASK_BASE], edi ; mov [TASK_BASE], edi
mov byte [DONT_SWITCH], 1 ; mov byte [DONT_SWITCH], 1
call do_change_task ; call do_change_task
.noswitch: .noswitch:
popad popad
popfd popfd

View File

@ -64,6 +64,9 @@ change_task:
pushad pushad
call update_counters call update_counters
if 0
; \begin{Mario79} ; \begin{Mario79}
cmp [dma_task_switched], 1 cmp [dma_task_switched], 1
jne .find_next_task jne .find_next_task
@ -77,6 +80,9 @@ change_task:
jmp @f jmp @f
.find_next_task: .find_next_task:
; \end{Mario79} ; \end{Mario79}
end if
call find_next_task call find_next_task
test eax, eax ; the same task -> skip switch test eax, eax ; the same task -> skip switch
jnz .return jnz .return
@ -214,8 +220,6 @@ do_change_task:
; inc [context_counter] ;noname & halyavin ; inc [context_counter] ;noname & halyavin
;ret ;ret
align 4 align 4
updatecputimes: updatecputimes:

View File

@ -747,7 +747,7 @@ first_app_found:
; mov [dma_hdd],1 ; mov [dma_hdd],1
cmp [IDEContrRegsBaseAddr], 0 cmp [IDEContrRegsBaseAddr], 0
; setnz [dma_hdd] setnz [dma_hdd]
stdcall init_uart_service, DRV_ENTRY stdcall init_uart_service, DRV_ENTRY