Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 364 → Rev 365

/kernel/trunk/core/heap.inc
640,7 → 640,7
mov ecx, eax
sub eax, 4096
or ecx, FREE_BLOCK
mov [pages_tab+esi], ecx
mov [page_tabs+esi], ecx
ret
.exit:
xor eax, eax
666,7 → 666,7
 
mov ebx, esi
shr ebx, 12
mov eax, [pages_tab+ebx*4]
mov eax, [page_tabs+ebx*4]
test eax, FREE_BLOCK
jz test_used
and eax, 0xFFFFF000
679,16 → 679,16
sub eax, ecx;
or eax, FREE_BLOCK
shr edx, 12
mov [pages_tab+edx*4], eax
mov [page_tabs+edx*4], eax
 
@@:
or ecx, USED_BLOCK
mov [pages_tab+ebx*4], ecx
mov [page_tabs+ebx*4], ecx
shr ecx, 12
dec ecx
inc ebx
@@:
mov dword [pages_tab+ebx*4], 2
mov dword [page_tabs+ebx*4], 2
inc ebx
dec ecx
jnz @B
730,7 → 730,7
xor ebx, ebx
sub esi, 4096
shr esi, 12
mov eax, [pages_tab+esi*4]
mov eax, [page_tabs+esi*4]
test eax, USED_BLOCK
jz .not_used
 
737,7 → 737,7
and eax, not 4095
mov ecx, eax
or eax, FREE_BLOCK
mov [pages_tab+esi*4], eax
mov [page_tabs+esi*4], eax
inc esi
sub ecx, 4096
shr ecx, 12
744,7 → 744,7
mov ebx, ecx
.release:
xor eax, eax
xchg eax, [pages_tab+esi*4]
xchg eax, [page_tabs+esi*4]
test eax, 1
jz @F
call free_page
765,7 → 765,7
shr esi, 12
shr edi, 12
@@:
mov eax, [pages_tab+esi*4]
mov eax, [page_tabs+esi*4]
test eax, USED_BLOCK
jz .test_free
shr eax, 12
780,7 → 780,7
cmp edx, edi
jae .exit
 
mov ebx, [pages_tab+edx*4]
mov ebx, [page_tabs+edx*4]
test ebx, USED_BLOCK
jz .next_free
 
791,11 → 791,11
.next_free:
test ebx, FREE_BLOCK
jz .err
and dword [pages_tab+edx*4], 0
and dword [page_tabs+edx*4], 0
add eax, ebx
and eax, not 4095
or eax, FREE_BLOCK
mov [pages_tab+esi*4], eax
mov [page_tabs+esi*4], eax
jmp @B
.exit:
xor eax, eax