kernel: initialize handle table

git-svn-id: svn://kolibrios.org@5202 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2014-12-01 04:35:53 +00:00
parent e6265b4399
commit 2f6c0cead9
2 changed files with 12 additions and 2 deletions

View File

@ -472,7 +472,7 @@ proc create_process stdcall, app_size:dword,img_base:dword,img_size:dword
mov [process], eax
lea edi, [eax+PROC.heap_lock]
mov ecx, (4096-PROC.heap_lock)/4
mov ecx, (PROC.ht_next-PROC.heap_lock)/4
list_init eax
add eax, PROC.thr_list
@ -482,6 +482,14 @@ proc create_process stdcall, app_size:dword,img_base:dword,img_size:dword
cld
rep stosd
mov ecx, (PROC.pdt_0 - PROC.htab)/4
@@:
stosd
inc eax
cmp eax, ecx
jbe @B
mov [edi-4096+PROC.ht_next], 3 ;reserve handles for stdin stdout and stderr
mov eax, edi
call get_pg_addr
mov [edi-4096+PROC.pdt_0_phys], eax

View File

@ -111,7 +111,9 @@ struct PROC
io_map_0 rd 1
io_map_1 rd 1
unused rb 4096-$
ht_lock rd 1 ;htab[0] stdin
ht_next rd 1 ;htab[1] stdout
htab rd (4096-$)/4 ;htab[2] stderr
pdt_0 rd 1024
ends