Subversion Repositories Kolibri OS

Rev

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

Rev 369 Rev 380
Line 614... Line 614...
614
proc init_heap
614
proc init_heap
615
 
615
 
Line 616... Line 616...
616
           mov ebx,[CURRENT_TASK]
616
           mov ebx,[CURRENT_TASK]
617
           shl ebx,8
617
           shl ebx,8
618
           mov eax, [PROC_BASE+APPDATA.heap_top+ebx]
618
           mov eax, [SLOT_BASE+APPDATA.heap_top+ebx]
619
           test eax, eax
619
           test eax, eax
620
           jz @F
620
           jz @F
621
           sub eax,[PROC_BASE+APPDATA.heap_base+ebx]
621
           sub eax,[SLOT_BASE+APPDATA.heap_base+ebx]
622
           sub eax, 4096
622
           sub eax, 4096
623
           ret
623
           ret
624
@@:
624
@@:
625
           mov esi, [PROC_BASE+APPDATA.mem_size+ebx]
625
           mov esi, [SLOT_BASE+APPDATA.mem_size+ebx]
626
           add esi, 4095
626
           add esi, 4095
627
           and esi, not 4095
627
           and esi, not 4095
628
           mov [PROC_BASE+APPDATA.mem_size+ebx], esi
628
           mov [SLOT_BASE+APPDATA.mem_size+ebx], esi
629
           mov eax, HEAP_TOP
629
           mov eax, HEAP_TOP
630
           mov [PROC_BASE+APPDATA.heap_base+ebx], esi
630
           mov [SLOT_BASE+APPDATA.heap_base+ebx], esi
631
           mov [PROC_BASE+APPDATA.heap_top+ebx], eax
631
           mov [SLOT_BASE+APPDATA.heap_top+ebx], eax
Line 632... Line 632...
632
 
632
 
633
           sub eax, esi
633
           sub eax, esi
634
           add esi, new_app_base
634
           add esi, new_app_base
635
           shr esi, 10
635
           shr esi, 10
Line 651... Line 651...
651
           and ecx, not 4095
651
           and ecx, not 4095
652
 
652
 
Line 653... Line 653...
653
           mov ebx, [CURRENT_TASK]
653
           mov ebx, [CURRENT_TASK]
654
           shl ebx, 8
654
           shl ebx, 8
655
           mov esi, dword [ebx+PROC_BASE+APPDATA.heap_base]; heap_base
655
           mov esi, dword [ebx+SLOT_BASE+APPDATA.heap_base]; heap_base
656
           mov edi, dword [ebx+PROC_BASE+APPDATA.heap_top]; heap_top
656
           mov edi, dword [ebx+SLOT_BASE+APPDATA.heap_top]; heap_top
657
           add esi, new_app_base
657
           add esi, new_app_base
658
           add edi, new_app_base
658
           add edi, new_app_base
659
l_0:
659
l_0:
660
           cmp esi, edi
660
           cmp esi, edi
661
           jae m_exit
661
           jae m_exit
Line 693... Line 693...
693
        shl     edx, 8
693
        shl     edx, 8
694
        mov     ebx, [alloc_size]
694
        mov     ebx, [alloc_size]
695
        add     ebx, 0xFFF
695
        add     ebx, 0xFFF
696
        and     ebx, not 0xFFF
696
        and     ebx, not 0xFFF
697
        add     ebx, [PROC_BASE+APPDATA.mem_size+edx]
697
        add     ebx, [SLOT_BASE+APPDATA.mem_size+edx]
698
        call    update_mem_size
698
        call    update_mem_size
699
 
699
 
Line 700... Line 700...
700
           mov eax, esi
700
           mov eax, esi
701
           add eax, 4096
701
           add eax, 4096
702
           sub eax, new_app_base
702
           sub eax, new_app_base
Line 750... Line 750...
750
           jnz .release
750
           jnz .release
751
.not_used:
751
.not_used:
752
           mov edx, [CURRENT_TASK]
752
           mov edx, [CURRENT_TASK]
753
           shl edx, 8
753
           shl edx, 8
754
           mov esi, dword [edx+PROC_BASE+APPDATA.heap_base]; heap_base
754
           mov esi, dword [edx+SLOT_BASE+APPDATA.heap_base]; heap_base
755
           mov edi, dword [edx+PROC_BASE+APPDATA.heap_top]; heap_top
755
           mov edi, dword [edx+SLOT_BASE+APPDATA.heap_top]; heap_top
756
           sub ebx, [edx+PROC_BASE+APPDATA.mem_size]
756
           sub ebx, [edx+SLOT_BASE+APPDATA.mem_size]
757
           neg ebx
757
           neg ebx
758
           call update_mem_size
758
           call update_mem_size
759
           add esi, new_app_base
759
           add esi, new_app_base
760
           add edi, new_app_base
760
           add edi, new_app_base
761
           shr esi, 12
761
           shr esi, 12
762
           shr edi, 12
762
           shr edi, 12