Kernel now waits only 5 seconds in order to deliver message to debugger. Fixed hd reservation and release. Changes from diamond.

git-svn-id: svn://kolibrios.org@63 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Andrey Halyavin (halyavin) 2006-03-21 11:46:13 +00:00
parent e9e0059192
commit 5db3c3adc1
3 changed files with 13 additions and 5 deletions

View File

@ -290,6 +290,8 @@ debugger_notify:
; interrupts remain disabled ; interrupts remain disabled
mov ebp, eax mov ebp, eax
shl eax, 8 shl eax, 8
mov edi, [timer_ticks]
add edi, 500 ; 5 sec timeout
.1: .1:
mov edx, [0x80000+eax+0xBC] mov edx, [0x80000+eax+0xBC]
test edx, edx test edx, edx
@ -313,6 +315,8 @@ debugger_notify:
pop ecx pop ecx
pop ecx pop ecx
pop ecx pop ecx
cmp [timer_ticks], edi
jae .ret
sti sti
call change_task call change_task
cli cli

View File

@ -1671,6 +1671,7 @@ file_read:
jnz fat_ok_for_reading jnz fat_ok_for_reading
xor ebx,ebx xor ebx,ebx
mov eax,ERROR_UNKNOWN_FS mov eax,ERROR_UNKNOWN_FS
mov [hd1_status], ebx
ret ret
fat_ok_for_reading: fat_ok_for_reading:

View File

@ -523,8 +523,6 @@ choice_necessity_partition_1:
jne fs_noharddisk jne fs_noharddisk
fs_yesharddisk: fs_yesharddisk:
call reserve_hd1
cmp dword [esp+20],8 ; LBA read cmp dword [esp+20],8 ; LBA read
jne fs_no_LBA_read jne fs_no_LBA_read
mov eax,[esp+16] ; LBA block to read mov eax,[esp+16] ; LBA block to read
@ -537,6 +535,7 @@ choice_necessity_partition_1:
cmp byte [edi+1+11],0 ; directory read cmp byte [edi+1+11],0 ; directory read
je fs_give_dir1 je fs_give_dir1
call reserve_hd1
fs_for_new_semantic: fs_for_new_semantic:
call choice_necessity_partition call choice_necessity_partition
@ -547,9 +546,13 @@ choice_necessity_partition_1:
neg eax neg eax
@@: mov ebx, [esp+24+24] @@: mov ebx, [esp+24+24]
cmp [hdpos],0 ; is hd base set? cmp [hdpos],0 ; is hd base set?
jz file_system_return ; no jz hd_err_return
cmp [fat32part],0 ; is partition set? cmp [fat32part],0 ; is partition set?
jz file_system_return ; no jnz @f
hd_err_return:
and [hd1_status], 0
jmp file_system_return
@@:
cmp dword [esp+20],0 ; READ cmp dword [esp+20],0 ; READ
jne fs_noharddisk_read jne fs_noharddisk_read
@ -899,7 +902,7 @@ LBA_read:
lbarl1: lbarl1:
; call reserve_hd1 call reserve_hd1
push eax push eax
push ecx push ecx