forked from KolibriOS/kolibrios
Work with small amount of physical memory corrected (bug #9, part 1)
git-svn-id: svn://kolibrios.org@1090 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
6c18c6d3a0
commit
0226898ca6
@ -138,8 +138,11 @@ proc init_kernel_heap
|
|||||||
mov [ebx+list_bk], eax
|
mov [ebx+list_bk], eax
|
||||||
mov [ebx+block_base], HEAP_BASE+4096*MEM_BLOCK_SIZE
|
mov [ebx+block_base], HEAP_BASE+4096*MEM_BLOCK_SIZE
|
||||||
|
|
||||||
mov ecx, [MEM_AMOUNT]
|
mov ecx, [pg_data.kernel_pages]
|
||||||
sub ecx, (HEAP_BASE - OS_BASE + 4096*MEM_BLOCK_SIZE)
|
shl ecx, 12
|
||||||
|
neg ecx
|
||||||
|
add ecx, [MEM_AMOUNT]
|
||||||
|
sub ecx, 4096*MEM_BLOCK_SIZE
|
||||||
mov [heap_size], ecx
|
mov [heap_size], ecx
|
||||||
mov [heap_free], ecx
|
mov [heap_free], ecx
|
||||||
mov [ebx+block_size], ecx
|
mov [ebx+block_size], ecx
|
||||||
|
@ -43,7 +43,6 @@ proc init_mem
|
|||||||
mov [pg_data.mem_amount-OS_BASE], eax
|
mov [pg_data.mem_amount-OS_BASE], eax
|
||||||
|
|
||||||
shr eax, 12
|
shr eax, 12
|
||||||
mov edx, eax
|
|
||||||
mov [pg_data.pages_count-OS_BASE], eax
|
mov [pg_data.pages_count-OS_BASE], eax
|
||||||
shr eax, 3
|
shr eax, 3
|
||||||
mov [pg_data.pagemap_size-OS_BASE], eax
|
mov [pg_data.pagemap_size-OS_BASE], eax
|
||||||
@ -52,15 +51,7 @@ proc init_mem
|
|||||||
and eax, not 4095
|
and eax, not 4095
|
||||||
mov [tmp_page_tabs], eax
|
mov [tmp_page_tabs], eax
|
||||||
|
|
||||||
cmp edx, (OS_BASE/4096)
|
mov edx, (((sys_pgmap-OS_BASE) + 0xFFFFFF) and not 0xFFFFFF) shr 12
|
||||||
jbe @F
|
|
||||||
mov edx, (OS_BASE/4096)
|
|
||||||
jmp .set
|
|
||||||
@@:
|
|
||||||
cmp edx, (HEAP_MIN_SIZE/4096)
|
|
||||||
jae .set
|
|
||||||
mov edx, (HEAP_MIN_SIZE/4096)
|
|
||||||
.set:
|
|
||||||
mov [pg_data.kernel_pages-OS_BASE], edx
|
mov [pg_data.kernel_pages-OS_BASE], edx
|
||||||
shr edx, 10
|
shr edx, 10
|
||||||
mov [pg_data.kernel_tables-OS_BASE], edx
|
mov [pg_data.kernel_tables-OS_BASE], edx
|
||||||
|
Loading…
Reference in New Issue
Block a user