forked from KolibriOS/kolibrios
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:
parent
b1101aa868
commit
139ea3d0ee
@ -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
|
||||||
|
@ -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:
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user