Subversion Repositories Kolibri OS

Rev

Rev 213 | Rev 254 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 213 Rev 214
Line 678... Line 678...
678
           jz test_used
678
           jz test_used
679
           and eax, 0xFFFFF000
679
           and eax, 0xFFFFF000
680
           cmp eax, ecx    ;alloc_size
680
           cmp eax, ecx    ;alloc_size
681
           jb  m_next
681
           jb  m_next
682
           jz  @f
682
 
683
 
-
 
Line 684... Line 683...
684
           mov edx, esi
683
           mov edx, esi
685
           add edx, ecx
684
           add edx, ecx
686
           sub eax, ecx;
685
           sub eax, ecx;
687
           or eax, FREE_BLOCK
686
           or eax, FREE_BLOCK
688
           shr edx, 12
687
           shr edx, 12
689
           mov [pages_tab+edx*4], eax
688
           mov [pages_tab+edx*4], eax
690
@@:
689
 
691
           or ecx, USED_BLOCK
690
           or ecx, USED_BLOCK
692
           mov [pages_tab+ebx*4], ecx
691
           mov [pages_tab+ebx*4], ecx
693
           shr ecx, 12
692
           shr ecx, 12
694
           dec ecx
693
           dec ecx
695
           inc ebx
694
           inc ebx
Line 752... Line 751...
752
           mov ebx, [CURRENT_TASK]
751
           mov ebx, [CURRENT_TASK]
753
           shl ebx, 8
752
           shl ebx, 8
754
           mov esi, dword [ebx+PROC_BASE+APPDATA.heap_base]; heap_base
753
           mov esi, dword [ebx+PROC_BASE+APPDATA.heap_base]; heap_base
755
           mov edi, dword [ebx+PROC_BASE+APPDATA.heap_top]; heap_top
754
           mov edi, dword [ebx+PROC_BASE+APPDATA.heap_top]; heap_top
756
           add esi, new_app_base
755
           shr esi, 12
757
           add edi, new_app_base
-
 
758
           shr esi, 12
-
 
759
           shr edi, 12
756
           shr edi, 12
760
@@:
757
@@:
761
           mov eax, [pages_tab+esi*4]
758
           mov eax, [pages_tab+esi*4]
762
           test eax, USED_BLOCK
759
           test eax, USED_BLOCK
763
           jz .test_free
760
           jz .test_free
Line 824... Line 821...
824
           jnz .find
821
           jnz .find
825
           popf
822
           popf
826
           xor eax, eax
823
           xor eax, eax
827
           ret
824
           ret
828
 
825
.find:
829
.find:     btr [srv_map], eax
826
           btr [srv_map], eax
830
           popf
827
           popf
831
           shl eax,5
828
           shl eax,0x02
832
           add eax, srv_tab
829
           lea eax,[srv_tab+eax+eax*8]   ;srv_tab+eax*36
833
           ret
830
           ret
834
endp
831
endp
835
832