diff --git a/kernel/trunk/core/taskman.inc b/kernel/trunk/core/taskman.inc index 51520328ed..910b25eb42 100644 --- a/kernel/trunk/core/taskman.inc +++ b/kernel/trunk/core/taskman.inc @@ -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 diff --git a/kernel/trunk/kernel32.inc b/kernel/trunk/kernel32.inc index fe23522c95..66f8815b55 100644 --- a/kernel/trunk/kernel32.inc +++ b/kernel/trunk/kernel32.inc @@ -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